在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输出-这就是我试图解决的问题。
1条答案
按热度按时间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#