nftables 不寫入 syslog

nftables 不寫入 syslog

在 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 儲存在資料庫中。

答案1

嗯...多虧了@anx 的線索,我顯然發現了這一點網路過濾器發送資料有一些困難系統日誌

這可能與主機是一個沒有自己核心的 LXC 容器以及cgroups在虛擬機器管理程式中...(Buff,我正在進入黑暗領域)...好吧...無論如何。

無論如何,如果有人碰巧遇到類似的問題,我可以透過將資料發送到中來獲取一些日誌烏洛格德。以下是使基本範例正常運作的步驟:

# 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

答案2

我遇到了一個非常相似的問題:nftables 在網路命名空間內運行時沒有記錄。 Julen 的解決方案對我來說不起作用。

由於我沒有運行任何容器,我可以使用解決我的問題

echo 1 >/proc/sys/net/netfilter/nf_log_all_netns

更多細節: https://blog.raymond.burkholder.net/index.php?/archives/787-n​​ftables-network-namespace-logging.html

相關內容