维护一个服务器其中重要的一步就是管理好端口的开放与关闭,以避免因为服务一直运行着,而外部恶意攻击利用这些服务所占用的端口。
首先是能够查看iptables的情况:
sudo iptables -L
会列出每一条规则,标有ACCEPT的规则是指这条规则指示的通信可以成功,标有DROP的规则是指阻断所表示的通信。要注意,在系统运行中,会从开始到结束一条一条去匹配规则,所以最后一条规则是DROP,表示结束,而中间不能有DROP,否则其后的ACCEPT会不起作用。
添加规则:
# iptables -A INPUT -p tcp -i eth0 --dport ssh -j ACCEPT
-A表示追加,-p tcp表示tcp协议,-i eth0表示网卡,--dport ssh表示端口ssh(也就是22),-j ACCEPT表示这条规则是ACCEPT。如果我们想开放9001端口,就把ssh换成9001.
删除规则:
# iptables -D INPUT 3
3是指第三条规则,就是上面用iptables -L列出的表中,第一行就是第一条规则。
我们最后一条是DROP,所以要阻断通信:
# iptables -A INPUT -j DROP