law*_* Da 5 linux fedora linux-networking firewalld centos7
如何使用 firewall-cmd 工具(新的 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
Run Code Online (Sandbox Code Playgroud)
注意:源地址可以是一个范围。只需指定网络掩码
由于没有为公共区域添加 ssh,因此默认情况下它将被阻止。丰富的规则将只为该源 ip 启用它。
任何更好的解决方案请补充。