配置 iptables 以删除 NetBIOS 广播的防火墙命令是什么?

配置 iptables 以删除 NetBIOS 广播的防火墙命令是什么?

我在局域网中有一个 CentOS 7 服务器和一些 Windows 机器。

我已经使用以下方法打开了“被拒绝”或“被丢弃”数据包的 iptables 日志记录:

firewall-cmd --set-log-denied=all

这将添加适当的 iptables 日志记录规则。例如,在 FORWARD 链的末尾:

LOG        all  --  0.0.0.0/0            0.0.0.0/0            ctstate INVALID LOG flags 0 level 4 prefix "STATE_INVALID_DROP: "
DROP       all  --  0.0.0.0/0            0.0.0.0/0            ctstate INVALID
LOG        all  --  0.0.0.0/0            0.0.0.0/0            LOG flags 0 level 4 prefix "FINAL_REJECT: "
REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

但是,现在内核日志(或者更确切地说是日志)记录了来自各种 Windows 机器的被拒绝的大量数据包,更准确地说是 NetBIOS 广播(子网广播地址上的端口 137 和 138 的 UDP),而 Linux 机器上的任何服务都不对此感兴趣。

我想在这些数据包被记录之前就将其丢弃,而不做进一步的处理。

FINAL_REJECT: IN=ens160 OUT= MAC=ff:ff:ff:ff:ff:ff:XX:XX:XX:XX:XX:XX:08:00 SRC=10.10.2.74 DST=10.10.2.255 LEN=78 TOS=0x00 PREC=0x00 TTL=128 ID=32306 PROTO=UDP SPT=137 DPT=137 LEN=58

如何firewall-cmd正确地做到这一点?

答案1

您可以将firewalld配置为不记录广播或多播数据包(例如您在问题中给出的示例),而不是记录每个丢失的数据包。

为此,请使用--set-log-denied=unicast

firewall-cmd --set-log-denied=unicast

现在日志将仅包含指向您主机的被拒绝的流量。

从手册页中:

--set-log-denied=value
在默认规则的 INPUT、FORWARD 和 OUTPUT 链中的拒绝和丢弃规则之前添加日志记录规则,并在配置的链路层数据包类型的区域中添加最终的拒绝和丢弃规则。可能的值包括:全部单播播送多播离开。默认设置为离开,禁用日志记录。

这是一个运行时和永久性的改变,并且还将重新加载防火墙以便能够添加日志记录规则。

相关内容