| 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 | }}} |