在Ubuntu下测试,可以实现打开或者关闭80、3306、22等端口,还可以实现仅开放个别端口给个别IP地址,甚至可以限制服务器只能访问某些网址。
一、备份与恢复
操作前,我们需要先备份和恢复iptables。
/sbin/iptables-save > iptables.bak
cp iptables.bak iptables.new
vi iptables.new
/sbin/iptables-restore < iptables.new
二、开放和关闭个别端口
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 3306 -j DROP
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
修改数字即可指定端口,ACCEPT表示开放,DROP表示关闭。
三、禁用全部网络
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 80 -j ACCEPT
-A INPUT -s 1.1.1.1/32 -p tcp -m tcp --dport 3306 -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 3306 -j ACCEPT
-A INPUT -s 1.1.1.1/32 -p tcp -m tcp --dport 5911:5920 -j ACCEPT
-A INPUT -s 1.1.1.1/32 -p tcp -m tcp --dport 5900,5902,5905 -j ACCEPT-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
COMMIT
其中倒数第二行能让服务器访问外网,去掉则无法访问外网。
四、开放访问指定网站
-A OUTPUT -p tcp -d www.800m.net --dport 80 -j ACCEPT
-A OUTPUT -p tcp -d oi.jupyter.vip --dport 443 -j ACCEPT
-A OUTPUT -p tcp --dport 80 -j DROP
-A OUTPUT -p tcp --dport 443 -j DROP
80端口进允许访问www.800m.net,443端口进允许访问oi.jupyter.vip。