如何配置 Firewalld 以针对特定源制定规则?

如何配置 Firewalld 以针对特定源制定规则?

我在数据中心有一台服务器,用作 IPA 主服务器和 VPN 服务器。为简单起见,假设我需要为 VPN 启用“ipsec”服务,为 IPA 启用“kerberos”服务。

我想要:1) 允许来自任何地方的流量访问 ipsec 端口。2) 仅允许来自私有 IP 空间的流量访问 kerberos 端口。

这似乎很容易;将源 IP 空间添加到“工作”区域,在“工作”区域中打开“kerberos”,在“公共”区域中打开“ipsec”。但是,我的接口“eth0”仅连接到“公共”区域。似乎接口仅适用于单个区域。

所以我有两个问题。首先,我想做的事情合理吗?其次,使用防火墙实现目标的正确使用模式是什么?例如,我知道我可以通过丰富的规则实现我的目标,但这听起来像是应该使用区域来完成的事情。

答案1

相信我,zone 的使用率比防火墙开发人员最初想象的要低。他们想从 Windows 复制安全区域概念,这在笔记本电脑上切换办公室和自助餐厅的 wifi 时很有用。

基本上,服务器没有这样的需求,除了 NAT 路由器,一个网卡用于外部,另一个用于内部。但是虚拟服务器在云上通常只有一个接口,云服务器将使用您租用的公共 IP 为其执行 NAT。公共 IP 连接到云服务器,客户端不需要在虚拟服务器上配置两个网卡。除此之外,您在云上有一个防火墙,可以在其网站上轻松操作。所以现在你有双重防火墙 - 一个在云端,一个在您的虚拟服务器上。

因此,您可以在云防火墙、虚拟服务器防火墙或两者上打开特定于 IP 的端口。以下是将虚拟服务器防火墙设置为仅接受来自网络 192.168.0.0/16 的 TCP 端口 5555 的一个示例:

firewall-cmd --permanent --add-rich-rule 'rule family="ipv4" \
source address="192.168.0.0/16" port port="5555" protocol="tcp" accept'

service firewalld restart

相关内容