iptables防火墙的脚本

/sbin/modprobe ip_tables
/sbin/modprobe ip_nat_ftp
iptables -F
iptables -X
iptables -Z
# 默认规则
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
# 限制数据包数量
/sbin/iptables -A INPUT -f -m limit --limit 100/sec --limit-burst 100 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN -m limit --limit 20/sec
--limit-burst 200 -j ACCEPT
/sbin/iptables -A INPUT -p icmp -m limit --limit 12/min --limit-burst 2 -j DROP
#ssh 规则
iptables -t filter -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
iptables -t filter -A OUTPUT -o eth0 -p tcp --sport 22 -j ACCEPT
#www-ftp-mail-dns 规则
iptables -t filter -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
iptables -t filter -A OUTPUT -o eth0 -p tcp --sport 80 -j ACCEPT
#ICMP 规则
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT
防御DDOS***的脚本
#!/bin/bash
netstat -an|grep SYN_RECV|awk '{print$5}'|awk -F: '{print$1}'|sort|uniq -c|sort -rn|awk
'{if ($1>5) print$2}'>/tmp/dropip
for i in $(cat /tmp/dropip)
do
/sbin/iptables -I INPUT -s $i -j DROP
echo “$i kill at `date`” >>/var/log/ddos
done