如何使用firewall-cmd工具(new firewalld)创建防火墙规则,以便限制特定网络仅访问一个服务并允许一个区域中的所有服务.
例如:
我只有一个接口eno1,它与公共区域相关联.在该区域上启用了Http和https服务.我想在该区域启用ssh访问但是我想限制对网络的ssh访问(例如100.0.0.0/8)
做这个的最好方式是什么?
解决方法
我搜索了答案,但我发现很多与我自己有关的问题没有答案.
经过深入研究,我找到了一个解决方法.这就是我做的
我添加了公共区域的界面
然后
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,因此默认情况下将阻止ssh.富规则将仅为该源ip启用它.