Linux netfilter / iptables:如何在RHEL 8+上使用nf_log_syslog启用iptables TRACE链处理?

yacmzcpb  于 2023-06-29  发布在  Linux
关注(0)|答案(1)|浏览(119)

在Linux RHEL 8系统上,我启用了这些iptables规则,我相信这些规则应该在接口ingress和egress上启用ICMP数据包syslog日志记录:

# iptables -L -t raw
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
TRACE      icmp --  anywhere             anywhere            

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
TRACE      icmp --  anywhere             anywhere

如下所述:https://access.redhat.com/solutions/2313671我已经做了:

# modprobe  nf_log_ipv4
# sysctl -w net.netfilter.nf_log.2=nf_log_ipv4

我也做到了:

# modprobe nf_log_syslog

我相信它取代了现代(RHEL 8 4.18.x)内核中所有以前的nf_log* 或ipt_LOG模块。
但是,当我'ping'一个NAT'd(使用iptables)IP地址时,没有TRACE日志消息出现在'dmesg-c'输出或syslog(使用systemd.journald)中。
我错过了什么?非常感谢任何信息的答复。
到目前为止,我在网上找到的关于这个问题的最全面的讨论是:
https://backreference.org/2010/06/11/iptables-debugging/(感谢waldner!)
但是这已经很老了(2010-06-11),显然不适用于内核4.18(RHEL)。
我已经在Fedora-36(kernel-6.2.16)系统上精确地重复了上面的步骤,并且它确实有效,生成了TRACE日志消息:

# iptables -t raw -A PREROUTING -p icmp -j TRACE
# iptables -t raw -A OUTPUT -p icmp -j TRACE
# modprobe nf_log_ipv4
# echo nf_log_ipv4 > /proc/sys/net/netfilter/nf_log/2

但是,这些步骤,当在RHEL 8内核4.18.0-477.13.1主机上重复时,不起作用/在日志中产生任何包TRACE输出-这就是我试图解决的问题。

x9ybnkn6

x9ybnkn61#

Redhat从RHEL8开始迁移到nftable。即使iptables命令仍然可以在RHEL8上工作并将规则转换为nftable格式,您也可以尝试使用本机nft命令来创建规则。
以下是更多详细信息https://developers.redhat.com/blog/2020/08/18/iptables-the-two-variants-and-their-relationship-with-nftables#

相关问题