Linux
Firewalld - 啟用記錄被拒絕的數據包 - 不記錄
我正在使用 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