这是我的规则乌洛格德和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
假设一些(匹配)规则应该共享相同的日志前缀。