在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,创建一些网络流量.我根本没有看到来自nftable的任何信息。
我还试图(没有成功)用这种方式定义规则:
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)为什么nftable不写信给我的syslog?
作为一个额外的问题:在发生匹配时,是否有任何方法触发一个动作?例如,在数据库中存储阻塞的IP。
发布于 2020-08-20 19:01:48
好吧..。由于@anx的提示,我发现netfilter很难将数据发送到rsyslog。
这可能与主机是一个没有自己内核的LXC容器和虚拟机管理程序中的cgroup有关.(伙计,我要进入黑暗的领域了).好吧..。管他呢。
无论如何,如果有人碰巧有类似的问题,我通过将数据发送到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发布于 2022-04-14 13:06:22
我遇到了一个非常类似的问题:nftable在网络命名空间中运行时没有登录。朱伦的解决办法对我没有用。
由于我没有运行任何容器,所以我可以使用
echo 1 >/proc/sys/net/netfilter/nf_log_all_netns更多细节:https://blog.raymond.burkholder.net/index.php?/archives/787-nftables-network-namespace-logging.html
https://serverfault.com/questions/1030671
复制相似问题