centos7默认的firewall防火墙基本上能够满足大多数人的需求,但是遇到大量自定义管理的业务时,原本的管理域略显不足。如何创建新域呢?添加新域后如何让你生效呢,添加完成后必须将其添加到永久防火墙配置中。带着这些问题,我们查找了一些文档。
例如,您可能要为Web服务器创建一个名为“ publicweb”的区域。但是,您可能希望为您在专用网络上提供的DNS服务配置另一个区域。您可能需要一个名为“ privateDNS”的区域。
sudo firewall-cmd --permanent --new-zone=publicweb //创建新域
sudo firewall-cmd --permanent --new-zone=privateDNS
sudo firewall-cmd --permanent --get-zones//查询写入的域
output
block dmz drop external home internal privateDNS public publicweb trusted work
如前所述,这些在当前的防火墙实例中尚不可用:
firewall-cmd --get-zones
output
block dmz drop external home internal public trusted work
重新加载防火墙以使这些新区域进入活动配置:
sudo firewall-cmd --reload
firewall-cmd --get-zones
output
block dmz drop external home internal privateDNS public publicweb trusted work
现在,您可以开始为您的区域分配适当的服务和端口。通常,最好先调整活动实例,然后在测试后将这些更改转移到永久配置中。例如,对于“ publicweb”区域,您可能想要添加SSH,HTTP和HTTPS服务:
sudo firewall-cmd --zone=publicweb --add-service=ssh
sudo firewall-cmd --zone=publicweb --add-service=http
sudo firewall-cmd --zone=publicweb --add-service=https
sudo firewall-cmd --zone=publicweb --list-all
output
publicweb
target: default
icmp-block-inversion: no
interfaces:
sources:
services: ssh http https
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
privateDNS 同样操作。
在永久应用了这些规则之后,您可以重新启动网络并重新加载防火墙服务:
sudo systemctl restart network
sudo systemctl reload firewalld
firewall-cmd --get-active-zones
output
privateDNS
interfaces: eth1
publicweb
interfaces: eth0
sudo firewall-cmd --zone=publicweb --list-services
output
http https ssh
sudo firewall-cmd --zone=privateDNS --list-services
output
dns
您已经成功设置了自己的区域!如果要将这些区域之一设为其他接口的默认区域,请记住使用以下--set-default-zone=参数配置该行为:
sudo firewall-cmd --set-default-zone=publicweb
基于centos7.9二进制部署kubernetes1.25.4