什麼是適合我的桌面的可靠 iptables 配置?

什麼是適合我的桌面的可靠 iptables 配置?

在我的桌面上,我想非常嚴格地配置 iptables。我認為除了我發起的網路流量之外,沒有任何理由需要允許任何事情。甚至可能僅限於少數幾個連接埠。可以關閉我的桌面的基本規則是什麼?我只需要:

  • 瀏覽網路
  • 下載電子郵件

有什麼推薦的規則嗎?

答案1

以下規則將允許所有傳出連接,但阻止任何傳入連接。 INPUT 和 FORWARD 鏈預設為拒絕資料包,OUTPUT 鏈預設為接受資料包,最後一條規則允許作為現有連接一部分的傳入資料包(在本例中只能是傳出連接)。

iptables --policy INPUT DROP
iptables --policy FORWARD DROP
iptables --policy OUTPUT ACCEPT
iptables --append INPUT --match state --state ESTABLISHED,RELATED --jump ACCEPT
iptables --append INPUT --jump REJECT
iptables --append FORWARD --jump REJECT

如果要限制傳出流量,您需要將 OUTPUT 政策變更為拒絕,並新增規則以接受某些連接埠上的流量。例如:

iptables --policy OUTPUT DROP
iptables --append OUTPUT --protocol udp --match multiport --dports domain,bootps --jump ACCEPT
iptables --append OUTPUT --protocol tcp --match multiport --dports domain,http,https,ssh,pop3s,imaps,submission --jump ACCEPT
iptables --append OUTPUT --jump REJECT

答案2

以下iptables-restore腳本應該足以滿足您的需求:

*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -m state ! --state NEW -j DROP
-A INPUT -i lo -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
COMMIT

透過刪除允許 ICMP ping 的規則,可以使腳本變得更短,但我不建議這樣做。 IMO,回應 ping 不會對安全性造成太大影響(如果有的話),並且它有助於網路故障排除。

如果您想要允許特定 TCP 連接埠上的傳入連線(例如允許ssh連線),您可以在腳本中新增規則,如下所示,位於語句的正上方COMMIT

-A INPUT -p tcp -m tcp --dport 22 --syn -j ACCEPT

相關內容