Iptables

有沒有辦法找到哪個 iptables 規則負責丟棄數據包?

  • July 31, 2021

我有一個帶有防火牆的系統。防火牆由 1000 多個 iptables 規則組成。其中一條規則是丟棄我不想丟棄的數據包。(我知道這一點,因為我確實iptables-save遵循iptables -F並且應用程序開始工作。)手動排序的規則太多了。我可以做些什麼來告訴我哪個規則正在丟棄數據包嗎?

您可以在鏈的早期添加一條 TRACE 規則來記錄數據包遍歷的每個規則。

我會考慮使用iptables -L -v -n | less讓您搜尋規則。我會看港口;地址; 和適用的介面規則。鑑於您有如此多的規則,您可能正在執行一個大部分關閉的防火牆,並且缺少流量的允許規則。

防火牆是如何建構的?查看建構器規則可能比建構規則更容易。

由於iptables -L -v -n有計數器,您可以執行以下操作。

iptables -L -v -n > Sample1
#Cause the packet that you suspect is being dropped by iptables
iptables -L -v -n > Sample2
diff Sample1 Sample2

這樣,您將只看到增加的規則。

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