800M

16 object(s)
 

使用iptables开放、拦截指定域名网址或端口

在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。