iptables 无法识别 --log-prefix

iptables 无法识别 --log-prefix

我无法让 iptables 进行日志记录。以下是相关命令:

/usr/sbin/iptables -N LOG_DROP
/usr/sbin/iptables -A LOG_DROP -m limit --limit 2/min -j LOG --log-prefix "iptables drop: " --log-level 7
/usr/sbin/iptables -A LOG_DROP -j DROP

输入这些命令,结果为:

iptables v1.4.21:未知选项“--log-prefix”

我相信以下模块很重要,因此它们在我的内核中处于活跃状态:

`nf_log_common
 nf_log_ipv4
 nf_log_ipv6`

有什么建议可以解决这个问题吗?

答案1

我必须以 root 权限运行所有命令(sudo)。显然用户执行的iptables命令并不知道root创建的通道。

答案2

在 Centos 7 中可以使用以下命令

iptables -N SIPDOS

mkdir -p /var/log/firewall/

touch /var/log/firewall/iptables.log

chmod 600 /var/log/firewall/iptables.log

chown root:adm /var/log/firewall/iptables.log

touch /etc/rsyslog.d/firewall.conf

echo -e ":msg, contains, «iptables: » -/var/log/firewall/iptables.log\n& ~ " >>/etc/rsyslog.d/firewall.conf

touch /etc/logrotate.d/firewall

echo -e "/var/log/firewall/iptables.log\n{\nrotate 7\ndaily\nsize 10M\ndateext\nmissingok\ncreate 600 root adm\nnotifempty\ncompress\ndelaycompress\npostrotate\ninvoke-rc.d rsyslog reload > /dev/null\nendscript\n} " >>/etc/logrotate.d/firewall

service rsyslog restart

iptables -A SIPDOS -j LOG --log-prefix "firewall-sipdos:" --log-level 6

答案3

您可以了解您的设备内核是否支持这样的目标:

zcat /proc/config.gz | grep CONFIG_NETFILTER_XT_TARGET_LOG

参考:https://forum.sailfishos.org/t/iptables-log-target-missing/4537

答案4

您错过了一个内核模块:

modprobe nfnetlink_log

相关内容