我正在尝试为记录消息编写防火墙规则,但它们似乎不起作用:
首先我添加了一个链 MY_LOG
-N MY_LOG
然后我写了一条规则,当我收到一条目的IP为192.168.1.132,目的端口为79,协议为UDP的消息时跳转到MY_LOG链:
-A 输入 -d 192.168.1.132/32 -p udp -m udp --dport 79 -j MY_LOG
最后我为 MY_LOG 链写了规则:
-A MY_LOG -m mark --mark 0x35 -j NFLOG --nflog-prefix "MY LOG" --nflog-group 30
然后我使用 Netcat 将消息发送到相应的 IP 和端口:
数控-u 192.168.1.132 79
但它没有记录任何东西。我究竟做错了什么?有什么建议么?
非常感谢您!
要记住的是防火墙规则是按照它们列出的顺序进行检查的。当触发允许或禁止数据包或连接的规则时,内核将停止处理链。
我认为新手防火墙管理员最常见的错误是他们按照正确的说明添加新规则,如下所示:
[sudo] iptables -A INPUT -d 192.168.1.132/32 -p udp -m udp --dport 79 -j MY_LOG
然后发现它不会生效。
这样做的原因是 -A 选项在所有现有规则之后添加了新规则,因为现有防火墙中的最终规则通常是阻止所有未明确允许的流量的规则,导致
并且永远不会达到新的规则/链。
通过使用 -I 插入规则,新规则将成为链中的第一个并且将起作用。