Linux

nftables 不寫入系統日誌

  • April 14, 2022

在 LXC 容器上執行 Debian 10:

# apt-get -y install nftables
# nft --version
nftables v0.7 (Scrooge McDuck)
# nft flush ruleset
# nft add table inet filter
# nft add chain inet filter input
# nft add rule inet filter input log
# nft list ruleset
table inet filter { 
   chain input {
       log
   }
}

然後,我去/var/log/syslog,創建一些網路流量,然後……我根本看不到來自nftables的消息。

我也嘗試(不成功)以這種方式定義規則:

nft add rule inet filter input log prefix \"FINDME \" counter

更多測試:

# logger test && tail -1 /var/log/syslog
Aug 18 20:39:53 my-server root: test
# echo "test2" | systemd-cat && tail -1 /var/log/syslog
Aug 18 20:40:52 my-server cat[1907]: test2
# uname -v
#1 SMP PVE 5.4.34-2 (Thu, 07 May 2020 10:02:02 +0200)

為什麼nftables不寫入我的系統日誌

作為一個額外的問題:當比賽發生時有什麼方法可以觸發動作嗎?例如,將被阻止的 IP 儲存在數據庫中。

嗯…感謝@anx 的線索,我發現顯然netfilter將數據發送到**rsyslog有一些困難。

這可能與主機是一個沒有自己的核心和管理程序中的cgroup的 LXC 容器有關……(Buff,我正在進入黑暗領域)……好吧……隨便。

無論如何,如果有人碰巧有類似的問題,我設法通過將數據發送到ulogd來獲取一些日誌。這些是使基本範例正常工作的步驟:

# apt-get -y install nftables ulogd2
# nft flush ruleset
# nft add table inet filter
# nft add chain inet filter input '{ type filter hook input priority 0 ; }'
# nft add rule inet filter input log prefix "FINDME" group 0 accept
# nft list ruleset
table inet filter {
   chain input {
       type filter hook input priority 0; policy accept;
       log prefix "FINDME" group 0 accept
   }
}
# tail -f /var/log/ulog/syslogemu.log

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