#/bin/bash
sshport=`netstat -lnp|awk -F"[ ]+|[:]" '/sshd/{print$5}'`
iptables -F #清除自带规则
iptables -X
iptables -P INPUT DROP #进入本机数据包默认拒绝
iptables -P OUTPUT ACCEPT #本起外出数据包允许
iptables -A INPUT -i lo -j ACCEPT #允许本地环回
iptables -A INPUT -m state --state INVALID -j LOG --log-prefix "INVALID" --log-ip-options
#记录无效的数据包并丢弃
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#允许已建立连接与出相关的数据包进入
iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT
#允许目标端口为80的新连接进入
iptables -A INPUT -m state --state NEW -p tcp --dport $sshdport -j ACCEPT
#允许目标端口为22的新连接进入
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 5/s --limit-burst 20 -j ACCEPT
#允许ping回应,每秒5个,最多20个。
service iptables save #保存规则
注意:勿一条条执行,最好保存为脚本并运行,避免将自己关外面,也可设置定时任务5分钟后关闭Iptables防火墙,防止万一。