Iptables

我的防火牆規則不起作用

  • October 11, 2021

我正在嘗試為記錄消息編寫防火牆規則,但它們似乎不起作用:

首先我添加了一個鏈 MY_LOG

-N MY_LOG

然後我寫了一條規則,當我收到一條目的IP為192.168.1.132,目的埠為79,協議為UDP的消息時跳轉到MY_LOG鏈:

-A 輸入 -d 192.168.1.132/32 -p udp -m udp –dport 79 -j MY_LOG

最後我為 MY_LOG 鏈寫了規則:

-A MY_LOG -m mark –mark 0x35 -j NFLOG –nflog-prefix “MY LOG” –nflog-group 30

然後我使用 Netcat 將消息發送到相應的 IP 和埠:

數控-u 192.168.1.132 79

但它沒有記錄任何東西。我究竟做錯了什麼?有什麼建議麼?

非常感謝您!

要記住的是防火牆規則是按照它們列出的順序進行檢查的。當觸發允許或禁止數據包或連接的規則時,核心將停止處理鏈。

我認為新手防火牆管理員最常見的錯誤是他們按照正確的說明添加新規則,如下所示:

$$ sudo $$iptables -A INPUT -d 192.168.1.132/32 -p udp -m udp –dport 79 -j MY_LOG 然後發現它不會生效。

這樣做的原因是 -A 選項在所有現有規則之後添加了新規則,因為現有防火牆中的最終規則通常是阻止所有未明確允許的流量的規則,導致

sudo  iptables-save
...
iptables -A INPUT  -j REJECT
iptables -A INPUT -d 192.168.1.132/32 -p udp -m udp --dport 79 -j MY_LOG

並且永遠不會達到新的規則/鏈。

通過使用 -I 插入規則,新規則將成為鏈中的第一個並且將起作用。

引用自:https://serverfault.com/questions/1080006