Firewalld
查看防火墙状态
systemctl status firewalld
开启防火墙
systemctl start firewalld
关闭防火墙
systemctl stop firewalld
添加新规则
firewall-cmd --zone=public --add-source=172.43.0.0/16 --permanent
添加指定端口规则
firewall-cmd --zone=public --add-port=80/tcp --permanent
移除指定端口规则
firewall-cmd --zone=public --remove-port=80/tcp --permanent
重新加载Firewalld
firewall-cmd --reload
查看防火墙规则
firewall-cmd --zone=public --list-all
直接编辑配置文件
vi /etc/firewalld/zones/public.xml
<port port="80" protocol="tcp"/>
<rule family="ipv4">
<source address="172.43.12.1"/>
<accept/>
</rule>
<rule family="ipv4">
<source address="172.43.12.1"/>
<port port="80" protocol="tcp"/>
<reject/>
</rule>
有时添加的IP很多,则可以通过IP段来配置
创建一个 ipset 集合并添加两个 IP 段
# 创建名为"trusted_ips"的集合(类型为hash:net,支持IP范围)
sudo firewall-cmd --permanent --new-ipset=trusted_ips --type=hash:net --option=family=inet
# 向集合添加第一个IP段:172.43.32.66-172.43.32.113
sudo firewall-cmd --permanent --ipset=trusted_ips --add-entry=172.43.32.66-172.43.32.113
# 向集合添加第二个IP段:172.43.80.131-172.43.80.169
sudo firewall-cmd --permanent --ipset=trusted_ips --add-entry=172.43.80.131-172.43.80.169
添加防火墙规则允许集合中的所有 IP 访问
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source ipset="trusted_ips" accept'
重新加载防火墙使配置生效
sudo firewall-cmd --reload
验证配置
# 查看集合中的所有IP段
sudo firewall-cmd --ipset=trusted_ips --get-entries
# 查看已生效的规则
sudo firewall-cmd --list-rich-rules
如需删除配置
# 移除富规则
sudo firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source ipset="trusted_ips" accept'
# 删除ipset集合
sudo firewall-cmd --permanent --delete-ipset=trusted_ips
# 重新加载
sudo firewall-cmd --reload