#! /bin/bash ipt="/sbin/iptables" ##清空防火墙的规则 $ipt -F ##定义进来的数据全部拒绝,出去和转发的数据则允许 $ipt -P INPUT DROP $ipt -P OUTPUT ACCEPT $ipt -P FORWARD ACCEPT ##定义连接后的边缘数据连接(注:此条规则不写进来,会导致数据一进来后会马上中断,对22等开放的端口造成错误) $ipt -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT ##定义要开放的防火墙规则 ##允许我的公网IP可以远程连接22端口! $ipt -A INPUT -s 116.255.157.81 -p tcp --dport 22 -j ACCEPT $ipt -A INPUT -s 123.59.194.60 -p tcp --dport 22 -j ACCEPT $ipt -A INPUT -s 121.201.74.79 -p tcp --dport 22 -j ACCEPT $ipt -A INPUT -s 123.1.187.221 -p tcp --dport 22 -j ACCEPT $ipt -A INPUT -s 61.28.172.11 -p tcp --dport 22 -j ACCEPT $ipt -A INPUT -s 61.164.252.40 -p tcp --dport 22 -j ACCEPT ##允许所有的IP访问我的80端口和443端口 $ipt -A INPUT -p tcp --dport 443 -j ACCEPT $ipt -A INPUT -p tcp --dport 80 -j ACCEPT ##禁ping,但本机能ping出去(如果有需要ping到本机的机器,可以在禁ping前面插入几条允许ping的规则) iptables -A INPUT -p icmp --icmp-type 8 -j DROP ##最后保存现在的规则,如果有需要改动,可以远程上来修改你所需要的防火墙规则 ##service iptables save (注意:如果是在真实服务器上,测试成功后再保存规则,因为出错了可以让机房的人帮你重启一下服务器,那你的防火墙规则就消掉了)