如何在 Firewalld 中允许 IGMP 流量?

如何在 Firewalld 中允许 IGMP 流量?

根据指南,作者使用以下行允许 IPtables 进行 IGMP 流量:

sudo iptables -I INPUT -p igmp -j ACCEPT

但我的老板希望我用 Firewalld 来做这件事。

答案1

作为直接规则的替代方案,IGMP 流量也可以通过以下任一方式接受--add-protocol=igmp(如果您的firewall-cmd版本已经支持)或借助丰富的规则

对于firewall-cmd已经支持的版本--add-protocol=protocol

firewall-cmd --permanent \
             --zone=YOUR-ZONE \
             --add-protocol=igmp

firewall-cmd --reload

实际上,这将行添加<protocol value="igmp"/>到.也可以看看。/etc/firewalld/zones/YOUR-ZONEman 5 firewalld.zone

firewall-cmd对于不支持的以前版本--add-protocol=protocol

firewall-cmd --permanent \
             --zone=YOUR-ZONE \
             --add-rich-rule='rule protocol value="igmp" accept'

firewall-cmd --reload

这会产生以下 iptables/netfiler 规则:

-A IN_YOUR-ZONE_allow -p igmp -m conntrack --ctstate NEW -j ACCEPT

答案2

因此,我一直在追寻这个完全相同的问题,并且偶然发现了一份针对 firewalld 提交的错误报告,用于在应用程序安装期间启用 IGMP。 (此处归功于OP:https://bugzilla.redhat.com/show_bug.cgi?id=1048947

作者很友善地提供了一种解决方法来满足我们的需要:

firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -p igmp -j ACCEPT

直到(或如果)添加以另一种方式启用 IGMP 通信的功能之前,Direct 接口似乎是应用此类规则更改的最佳方式。

直接接口官方文档: https://fedoraproject.org/wiki/FirewallD#Direct_options

相关内容