Linux

Firewalld - 啟用記錄被拒絕的數據包 - 不記錄

  • May 6, 2021

我正在使用 Firewalld,並且放置區是預設區域,並為該區域分配了一個介面。

然後,我有豐富的規則來允許一些流量通過放置區,並且我啟用了firewall-cmd --set-log-denied=all. 我認為這會記錄任何嘗試連接到伺服器但不是來自白名單富規則的東西……但它不會記錄。我對伺服器進行了埠掃描,而 /var/log/messages 沒有顯示任何被拒絕的埠日誌。

但是,當我將預設區域設置為公共並將介面分配給公共時,它會在我執行另一個埠掃描時記錄被拒絕的數據包。

為什麼?

如評論中所述,該問題似乎與錯誤有關。但是,對於那些仍然無法記錄防火牆拒絕數據包的人,以下方法對我有用:

以下與firewalld+一起使用rsyslogd

編輯和更新to/etc/sysconfig/firewalld的值(或根據需要)LogDenied``all

LogDenied=all

重啟防火牆

sudo systemctl restart firewalld

或者,使用命令行,可以執行以下命令:

sudo firewall-cmd --set-log-denied all

這通常會在防火牆中的拒絕/刪除規則之前添加日誌記錄規則,例如:

LOG  all  --  anywhere   anywhere  LOG level warning prefix "IN_drop_DROP: "
LOG  all  --  anywhere   anywhere  LOG level warning prefix "FINAL_REJECT: "

創建一個名為的文件/etc/rsyslog.d/custom_iptables.conf並向其中添加以下語句:

:msg,contains,"_DROP" /var/log/iptables.log
& stop
:msg,contains,"_REJECT" /var/log/iptables.log
& stop

重啟 rsyslog

sudo systemctl restart rsyslog   

現在丟棄和拒絕的數據包將被記錄到/var/log/iptables.log

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