160 γραμμές
4,7 KiB
Text
160 γραμμές
4,7 KiB
Text
|
#!/bin/bash
|
|||
|
|
|||
|
if [ -z $1 ]; then
|
|||
|
# <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> command line argument, <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> SSH <20><> <20><><EFBFBD>.
|
|||
|
echo Disallowing SSH access...
|
|||
|
NOSSH=1
|
|||
|
else
|
|||
|
# <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IP address <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> <20><> SSH.
|
|||
|
echo Allowing SSH access for $1...
|
|||
|
fi
|
|||
|
|
|||
|
##############################
|
|||
|
#### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> #####
|
|||
|
##############################
|
|||
|
|
|||
|
## <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> ping.
|
|||
|
/bin/echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all
|
|||
|
|
|||
|
## <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> broadcasts.
|
|||
|
/bin/echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
|
|||
|
|
|||
|
## <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> source routed <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
/bin/echo "0" > /proc/sys/net/ipv4/conf/all/accept_source_route
|
|||
|
|
|||
|
## <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ICMP redirect.
|
|||
|
/bin/echo "0" > /proc/sys/net/ipv4/conf/all/accept_redirects
|
|||
|
|
|||
|
## <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
/bin/echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
|
|||
|
|
|||
|
## <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> reverse path filtering.
|
|||
|
for interface in /proc/sys/net/ipv4/conf/*/rp_filter; do
|
|||
|
/bin/echo "1" > ${interface}
|
|||
|
done
|
|||
|
|
|||
|
## <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> system logs (/var/log/messages by default) <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
/bin/echo "1" > /proc/sys/net/ipv4/conf/all/log_martians
|
|||
|
|
|||
|
## <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> router (<28><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>).
|
|||
|
/bin/echo "0" > /proc/sys/net/ipv4/ip_forward
|
|||
|
|
|||
|
##################
|
|||
|
#### FIREWALL ####
|
|||
|
##################
|
|||
|
|
|||
|
## <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> connection-tracking modules.
|
|||
|
/sbin/modprobe ipt_state
|
|||
|
/sbin/modprobe ip_conntrack
|
|||
|
/sbin/modprobe ip_conntrack_ftp #ports=2121
|
|||
|
#/sbin/modprobe ipt_owner
|
|||
|
|
|||
|
## <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> rules
|
|||
|
/sbin/iptables -F
|
|||
|
## <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> custom tables
|
|||
|
/sbin/iptables -X
|
|||
|
## <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
/sbin/iptables -Z
|
|||
|
|
|||
|
## By default <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DROP (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|||
|
/sbin/iptables -P INPUT DROP
|
|||
|
/sbin/iptables -P OUTPUT DROP
|
|||
|
|
|||
|
|
|||
|
#####################
|
|||
|
#### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ####
|
|||
|
#####################
|
|||
|
|
|||
|
## <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
/sbin/iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -i lo -j ACCEPT
|
|||
|
|
|||
|
## <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> rules, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|||
|
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
|
|||
|
|
|||
|
if [ $NOSSH ]; then
|
|||
|
# <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
echo
|
|||
|
else
|
|||
|
## <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SSH <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
/sbin/iptables -A INPUT -p tcp -s $1 --sport 1024: --dport 22 -j ACCEPT
|
|||
|
fi
|
|||
|
|
|||
|
######################
|
|||
|
##### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> #####
|
|||
|
######################
|
|||
|
|
|||
|
## <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
/sbin/iptables -A OUTPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
|
|||
|
|
|||
|
## SSH
|
|||
|
/sbin/iptables -A OUTPUT -p tcp --dport 22 -j ACCEPT
|
|||
|
|
|||
|
## HTTP
|
|||
|
/sbin/iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT
|
|||
|
|
|||
|
## HTTPS
|
|||
|
/sbin/iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT
|
|||
|
|
|||
|
## POP3
|
|||
|
/sbin/iptables -A OUTPUT -p tcp --dport 110 -j ACCEPT
|
|||
|
|
|||
|
## SMTP
|
|||
|
/sbin/iptables -A OUTPUT -p tcp --dport 25 -j ACCEPT
|
|||
|
|
|||
|
## DNS
|
|||
|
/sbin/iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
|
|||
|
|
|||
|
## FTP (command)
|
|||
|
/sbin/iptables -A OUTPUT -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
|
|||
|
|
|||
|
## FTP (data::Active)
|
|||
|
/sbin/iptables -A OUTPUT -p tcp --dport 20 -m state --state ESTABLISHED -j ACCEPT
|
|||
|
|
|||
|
## FTP (data::Passive)
|
|||
|
/sbin/iptables -A OUTPUT -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED,RELATED -j ACCEPT
|
|||
|
|
|||
|
if [ $NOSSH ]; then
|
|||
|
echo
|
|||
|
else
|
|||
|
## <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> SSH server <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
/sbin/iptables -A OUTPUT -p tcp --sport 22 --dport 1024: -m state --state ESTABLISHED,RELATED -j ACCEPT
|
|||
|
fi
|
|||
|
|
|||
|
## ICMP
|
|||
|
/sbin/iptables -A OUTPUT -p icmp -j ACCEPT
|
|||
|
|
|||
|
## dict.org:2628
|
|||
|
/sbin/iptables -A OUTPUT -p tcp -d 66.111.36.30 --dport 2628 -j ACCEPT
|
|||
|
|
|||
|
## Importing OpenPGP keys <20><><EFBFBD> pgp.mit.edu:11371
|
|||
|
/sbin/iptables -A OUTPUT -p tcp -d 18.7.14.139 --dport 11371 -j ACCEPT
|
|||
|
|
|||
|
## JETDIRECT printing
|
|||
|
/sbin/iptables -A OUTPUT -p tcp --dport 9100 -j ACCEPT
|
|||
|
|
|||
|
## Whois queries
|
|||
|
/sbin/iptables -A OUTPUT -p tcp --dport 43 -j ACCEPT
|
|||
|
|
|||
|
## NTP updates
|
|||
|
/sbin/iptables -A OUTPUT -p tcp -d 128.2.4.21/16 --dport 123 -j ACCEPT
|
|||
|
/sbin/iptables -A OUTPUT -p udp --sport 123 -d 128.2.4.21/16 --dport 123 -j ACCEPT
|
|||
|
|
|||
|
|
|||
|
#################
|
|||
|
#### LOGGING ####
|
|||
|
#################
|
|||
|
## <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> /var/log/messages
|
|||
|
# <20><> <20><><EFBFBD> tail -f /var/log/messages <20><><EFBFBD> root <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
## Log <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> TCP <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
/sbin/iptables -A INPUT -p tcp -j LOG --log-prefix "iptables:IN-TCP DROPPED:"
|
|||
|
|
|||
|
## Log <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> TCP <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
/sbin/iptables -A OUTPUT -p tcp -j LOG --log-prefix "iptables:OUT-TCP DROPPED:"
|
|||
|
|
|||
|
## Log <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
#/sbin/iptables -A INPUT -j LOG --log-prefix "iptables:INCOMING DROPPED:"
|
|||
|
/sbin/iptables -A OUTPUT -j LOG --log-prefix "iptables:OUTGOING DROPPED:"
|
|||
|
|
|||
|
## <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> iptables script
|