Http

IPtables - 新的與新的、已建立的、相關的

  • November 25, 2018

舉個例子,假設我只允許傳出 HTTP

$$ S $$流量通過防火牆。我知道我還需要在現實世界場景中允許傳出 DNS 流量,但這只是一個範例。我會像這樣編寫 iptable 規則:

:INPUT DROP
:FORWARD DROP
:OUTPUT DROP

-A INPUT -p tcp -m multiport --sports 80,443 -m state --state ESTABLISHED,RELATED -j ACCEPT
-A OUTPUT -p tcp -m multiport --dports 80,443 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

它是否正確?我想知道,因為我見過有人寫過這樣的相同防火牆規則:

:INPUT DROP
:FORWARD DROP
:OUTPUT DROP

-A INPUT -p tcp -m multiport --sports 80,443 -m state --state ESTABLISHED,RELATED -j ACCEPT
-A OUTPUT -p tcp -m multiport --dports 80,443 -m state --state NEW -j ACCEPT

NEW傳出規則和傳出規則有什麼區別NEW,ESTABLISHED,RELATED?僅僅編寫NEW並讓防火牆做一些神秘的魔法就足夠了嗎?還是有必要寫NEW,ESTABLISHED,RELATED

第二個配置將不起作用(試試吧!)。由於你的預設策略是DROPOUTPUT鏈上,TCP 三次握手的第三個包會被防火牆阻止,因為那個包不屬於NEW,所以連接永遠不會建立。

如果您的預設OUTPUT策略是ACCEPT,或者您之後有其他OUTPUT允許ESTABLISHEDRELATED聲明的規則,它將起作用。

總之,如果您想將其DROP作為預設策略,第一個規則集是正確的。

引用自:https://unix.stackexchange.com/questions/215757