@
fangdingjun @
ryd994 @
GNiux @
adrianzhang 把 INPUT 鏈的默認 policy 設置為 DROP ,哪天手一抽在 SSH 下執行了 iptables -F 分分鐘教做人。可以在 INPUT 鏈的最後加一條 DROP 或 REJECT 。
我的習慣是:
第一條規則先放行所有已建立的連接,這樣有利於性能:
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
然後放行 lo :
-A INPUT -i lo -j ACCEPT
接著放行開放的服務:
-A INPUT -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW -j ACCEPT #SSH
-A INPUT -p tcp -m tcp --dport 443 -m conntrack --ctstate NEW -j ACCEPT #HTTPS
-A INPUT -p tcp -m tcp --dport 80 -m conntrack --ctstate NEW -j ACCEPT #HTTP
然後放行 ICMP :
-A INPUT -p icmp -j ACCEPT
丢棄無效的包:
-A INPUT -m conntrack --ctstate INVALID -j DROP
最後一條用於禁止所有其他的包:
-A INPUT -j REJECT --reject-with icmp-host-prohibited
還可以把所有開放的服務放在一條自定義的鏈中,這樣在以後開放新服務的時候可以直接往那條鏈插而不用擔心插入的位置。