一,firewalld服务

启动服务

systemctl start firewalld

关闭服务

systemctl stop firewalld

设置开机启动

systemctl enable firewalld

关闭开机启动

systemctl disable firewalld

二,firewalld-cmd常用参数

--add-service=<service>:添加一个服务到防火墙规则中,<service> 是要添加的服务的名称。

--remove-service=<service>:防火墙规则中移除指定的服务,<service> 是要移除的服务的名称。

--add-port=<port>/tcp:添加一个TCP端口到防火墙规则中。<port>是要添加的端口号。

--add-port=<port>/udp:添加一个UDP端口到防火墙规则中。<port>是要添加的端口号。

--remove-port=<port>/tcp:从防火墙规则中移除指定的TCP端口。<port>是要移除的端口号。

--zone=<zone>:指定要操作的防火墙区域。<zone> 是防火墙的区域名称。

--list-all:列出当前防火墙的所有规则。

--reload:重新加载防火墙规则,使更改生效。

--permanent:将规则永久性地保存在防火墙配置中。

--query-service=<service>:检查指定服务是否在防火墙规则中。

--get-services:获取所有可用的服务列表。

--panic-on:将防火墙设置为 Panic 模式,阻止所有网络流量。

--panic-off:禁用 Panic 模式,恢复正常防火墙模式。

--get-active-zones:将列出系统上所有活动的网络接口及其所属的区域。

三,实例

指定IP开放所有端口访问策略,指定--zone为internal

firewall-cmd --zone=internal --permanent --add-rich-rule='rule family="ipv4" source address="1.0.0.2/32" accept'

指定IP开放指定访问tcp的22端口策略,指定--zone为internal

firewall-cmd --zone=internal --permanent --add-rich-rule='rule family="ipv4" source address="1.0.0.2/32" port protocol="tcp" port="22" accept'

开放ping指定--zone为internal

firewall-cmd --zone=internal --permanent --add-rich-rule='rule family="ipv4" source address="1.0.0.0/24" protocol value=icmp accept'

删除一个开放ping策略,指定--zone为internal

firewall-cmd --zone=internal --permanent --remove-rich-rule='rule family="ipv4" source address="1.0.0.0/24" protocol value="icmp" accept'

服务开放所有访问http,指定--zone=public

firewall-cmd --zone=public --permanent --add-service=http

删除http服务

firewall-cmd --zone=public --permanent  --remove-service=http

#查看所有的zone信息

firewall-cmd --list-all-zones

服务器开放一个端口访问443/tcp

firewall-cmd --permanent --add-port=443/tcp

删除一个端口

firewall-cmd --permanent --remove-port=443/tcp

重新加载服务

firewall-cmd --reload

查看--zone=public,如果不指定查看默认策略

firewall-cmd --zone=public --list-all

查看活动的端口使用的策略

firewall-cmd --get-active-zones

重新加载策略

firewall-cmd --reload

重启防火墙策略,已经链接的设备会断开

firewall-cmd --complete-reload