
我有以下規則iptables
:
-A OUTPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT
這樣,未分類為已建立的傳出連線將被記錄。有時,防火牆出口日誌會擷取此類資料包:
09:56:48 DST=a.b.167.208 TTL=64 SPT=80 DPT=25960 WINDOW=119 ACK URGP=0
09:48:48 DST=a.b.166.231 TTL=64 SPT=80 DPT=29861 WINDOW=119 ACK PSH URGP=0
09:29:57 DST=a.b.167.244 TTL=64 SPT=80 DPT=58244 WINDOW=119 ACK URGP=0
經過進一步檢查,Web伺服器存取日誌顯示,之前有與上述IP位址75-100對應的傳入連線。
為什麼上述連接沒有被歸類為由 conntrack 模組建立的?怎樣才能濾除噪音呢?
答案1
根據我的理解,TCP連線只進入ESTABLISHED
狀態後已經ACK
完成了,這些ACK
包正是您在那裡記錄(和阻止)的內容。
http://www.iptables.info/en/connection-state.html#TCPCONNECTIONS
你有沒有嘗試過--ctstate ESTABLISHED,RELATED
?
正如您所說,僅“偶爾”記錄: dmesg/syslog 不會捕獲所有資料包。如果出現太多類似的訊息,它們將被丟棄以避免日誌氾濫。這是可配置的,但超出了這個問題的範圍。