Http
IPtables - 新的與新的、已建立的、相關的
舉個例子,假設我只允許傳出 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
?
第二個配置將不起作用(試試吧!)。由於你的預設策略是
DROP
在OUTPUT
鏈上,TCP 三次握手的第三個包會被防火牆阻止,因為那個包不屬於NEW
,所以連接永遠不會建立。如果您的預設
OUTPUT
策略是ACCEPT
,或者您之後有其他OUTPUT
允許ESTABLISHED
並RELATED
聲明的規則,它將起作用。總之,如果您想將其
DROP
作為預設策略,第一個規則集是正確的。