在 CentOS 7 中使用 Firewall-cmd 创建特定地址限制

在 CentOS 7 中使用 Firewall-cmd 创建特定地址限制

如何使用firewall-cmd工具(新firewalld)创建防火墙规则,以便限制特定网络仅访问一项服务并允许一个区域内的所有服务。

例如:

我只有一个接口 eno1,它与公共区域关联。该区域启用了 Http 和 https 服务。我想在该区域启用 ssh 访问,但我想将 ssh 访问限制到网络(例如 100.0.0.0/8)

做这个的最好方式是什么?

答案1

我寻找答案,但发现许多与我自己相关的问题都没有答案。

经过大量研究,我想到了一个解决方法。以下是我所做的

我将接口添加到公共区域

然后

sudo firewall-cmd --permanent --zone=public --add-service=http 
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="x.x.x.x/x" service name="ssh" log prefix="ssh" level="info" accept' 
sudo firewall-cmd --reload

注意:源地址可以是范围。只需指定网络掩码即可

由于公共区域未添加 ssh,因此默认情况下它将被阻止。 rich 规则将仅为该源 ip 启用它。

有任何更好的解决方案请添加。

相关内容