我有一个连接到外部世界的系统,用例是我需要阻止外部访问,并且只允许此系统使用特定子网,而无需添加任何外部接口。我可以使用firewall-cmd 执行此操作吗
我需要允许访问特定子网。其余所有到此/来自此节点的连接都应被阻止。任何建议都非常感谢。因此,在我对此进行编辑之前,我读到这firewall-cmd
只能用于阻止外部流量,对于我的用例,我需要将其用于来自我的主机的外部访问,并且仅允许访问特定主机
磷:
- 阻止所有传出流量,包括 ping/icmp
- 仅允许我的流量到达具有代理的特定子网(例如:10.8.180.0/24)以到达外部服务
我已经阅读了丰富的规则来做同样的事情,但无法得到结果
firewall-cmd --permanent --zone=public --add-rich-rule 'rule family="ipv4" source address="10.10.10.189" port port=5000 protocol=tcp accept'
但我不确定如何阻止其他端口,该系统应该只联系10.10.10.189
而不联系其他任何端口,任何帮助都值得感激。
答案1
您可以通过创建防火墙来允许来自特定子网的流量区然后添加您想要允许的子网和端口。
例如:
firewall-cmd --permanent --new-zone=<name>
firewall-cmd --reload # to make the zone available in the running config
firewall-cmd --zone=<name> --add-source=<subnet>/<cidr>
firewall-cmd --zone=<name> --add-port=<number>/{tcp|udp} # and/or
firewall-cmd --zone=<name> --add-service=<name>
一旦您对它的工作感到满意,您就可以保存它:
firewall-cmd --runtime-to-permanent
请注意,firewalld 主要用于入口防火墙,对于出口防火墙几乎没有或根本没有功能(大多数人不需要,而需要它的地方通常由外部防火墙处理)。