我可以在一条 iptables 规则中使用 nflog 记录和丢弃数据包吗?

我可以在一条 iptables 规则中使用 nflog 记录和丢弃数据包吗?

这是我的规则乌洛格德iptables,记录存储在/var/log/ulog/sysloemu.log

iptables -A INPUT -p tcp --sport 1234 -j NFLOG --nflog-prefix 'example block'
iptables -A INPUT -p tcp --sport 1234 -j DROP

我想简化这个规则。我已经尝试过这个但它不起作用:

iptables -A INPUT -p tcp --sport 1234 --nflog-prefix 'example block' -j DROP

出去:

iptables v1.8.4 (legacy): unknown option "--nflog-prefix"
Try `iptables -h' or 'iptables --help' for more information"

ebtables接受它(至少它不会给出错误):

ebtables -A INPUT --protocol ipv4 --ip-proto tcp --ip-sport 1234 --nflog-prefix 'example block' -j DROP

有什么办法可以放神经网络日志( --nflog-prefix) 在 iptables 规则中只剩下一行?

PD:或者其他一些替代方案来简化这些规则,除了 nftables

PD:我的 iptables 脚本中有很多类似的规则,所以我想要一个适用于任何规则的解决方案

PD:有一个类似的问题这里,但解决方案不是我正在寻找的

更新:

我已经尝试过这个(感谢@Tom Yan):

# variable prefix
A='block A'
B='block B' # in this case i need to repeat the loop (and increase the number of lines)

iptables -N NFLOG_AND_DROP
iptables -A NFLOG_AND_DROP -j NFLOG --nflog-prefix "$A"
iptables -A NFLOG_AND_DROP -j DROP
# rules
iptables -A INPUT -p tcp --sport 1234 -j NFLOG_AND_DROP
iptables -A FORWARD -p tcp --dport 1234 -j NFLOG_AND_DROP

但我无法添加不同的行--nflog-prefix,因为我必须重复该序列和我的 iptables 脚本而不是减少它,它会增加行数(除非有人提出一些循环来解决这个问题)

答案1

我想你最多可以做这样的事情:

-N log_and_drop
-A log_and_drop -j NFLOG --nflog-prefix "shared prefix"
-A log_and_drop -j DROP
-A INPUT -p tcp --sport 1234 -g log_and_drop
-A INPUT -p udp --sport 4321 -g log_and_drop

假设一些(匹配)规则应该共享相同的日志前缀。

相关内容