1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | #/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防火墙,防止万一。