| | 31 | * 彙整以上的規則,寫一隻 script 來當做開機時啟用安全防護的機制。 |
| | 32 | {{{ |
| | 33 | #!sh |
| | 34 | echo "clear rules" |
| | 35 | iptables -F |
| | 36 | iptables -X |
| | 37 | iptables -Z |
| | 38 | iptables -t nat -F |
| | 39 | echo "drop ping and traceroute" |
| | 40 | iptables -A INPUT -i eth0 -p icmp -s any/0 --icmp-type 8 -j DROP |
| | 41 | iptables -A OUTPUT -o eth0 -p icmp --icmp-type 3 -d any/0 -j DROP |
| | 42 | iptables -A OUTPUT -o eth0 -p icmp --icmp-type 11 -d any/0 -j DROP |
| | 43 | echo "drop abuse IP connections" |
| | 44 | iptables -A INPUT -s 124.254.15.50 -j DROP |
| | 45 | iptables -A INPUT -s 222.191.249.106 -j DROP |
| | 46 | iptables -A INPUT -s 121.235.30.92 -j DROP |
| | 47 | echo "drop connect more than 10 times in 10 seconds ..." |
| | 48 | iptables -A INPUT -p tcp -m tcp --dport 80 -m state --state NEW -m recent --set --name DEFAULT --rsource |
| | 49 | iptables -A INPUT -p tcp -m tcp --dport 80 -m state --state NEW -m recent --update --seconds 10 --hitcount 10 --name DEFAULT --rsource -j DROP |
| | 50 | echo "decrease TCP socket TIME_WAIT time" |
| | 51 | echo 10 > /proc/sys/net/ipv4/tcp_fin_timeout |
| | 52 | sysctl net.ipv4.tcp_tw_reuse=1 |
| | 53 | sysctl net.ipv4.tcp_tw_recycle=1 |
| | 54 | }}} |