firewall-cmd命令的功能是管理防火墙策略,是firewalld服务的配置工具。使用firewall-cmd命令修改的防火墙策略会立即生效,但重启后失效,因此在使用时推荐加上permanent参数。
。 关于firewalld服务及firewall-cmd命令详细的使用方法,请参阅《Linux就该这么学(第2版)》第8章节的内容。
语法格式:firewall-cmd 参数 对象
常用参数:
--add-interface | 将指定网卡的所有流量都导向某区域 | --list-ports | 显示所有正在运行的端口 | |
--add-port | 设置允许的端口 | --panic-off | 关闭紧急模式 | |
--add-service | 设置允许的服务 | --panic-on | 开启紧急模式 | |
--add-source | 将指定IP地址的所有流量都导向某区域 | --permanent | 将策略写入永久生效表 | |
--change-interface | 设置网卡与区域进行关联 | --query-panic | 显示是否被拒绝 | |
--get-active-zones | 显示当前正在使用的区域与网卡名称 | --reload | 立即加载永久生效策略,不重启服务 | |
--get-default-zone | 显示默认的区域名称 | --remove-port | 设置默认区域不再允许指定端口的流量 | |
--get-services | 显示预先定义的服务 | --remove-source | 不要将指定IP地址的所有流量导向某区域 | |
--get-zones | 显示可用的区域列表 | --remove-service | 设置默认区域不再允许指定服务的流量 | |
--list-all | 显示当前区域的网卡配置参数、资源、端口及服务 | --set-default-zone | 设置默认的区域 | |
--list-all-zones | 显示区域信息情况 | --state | 显示当前服务运行状态 |
参考示例
查看当前防火墙状态:
[root@linuxcool ~]# firewall-cmd --state running
查看防火墙当前放行端口号列表:
[root@linuxcool ~]# firewall-cmd --zone=public --list-ports
重新加载防火墙策略,立即生效:
[root@linuxcool ~]# firewall-cmd --reload success
查看当前防火墙默认使用的区域名称:
[root@linuxcool ~]# firewall-cmd --get-default-zone public
设置当前防火墙默认使用的区域名称:
[root@linuxcool ~]# firewall-cmd --set-default-zone=dmz success
开启紧急模式,随后关闭:
[root@linuxcool ~]# firewall-cmd --panic-on success [root@linuxcool ~]# firewall-cmd --panic-off success
设置8080-8081为防火墙允许放行的端口号:
[root@linuxcool ~]# firewall-cmd --zone=public --add-port=8080-8081/tcp
查看防火墙当前放行端口号列表:
[root@linuxcool ~]# firewall-cmd --zone=public --list-ports 8080-8081/tcp
查询指定服务的流量是否被防火墙允许放行:
[root@linuxcool ~]# firewall-cmd --zone=public --query-service=ssh yes [root@linuxcool ~]# firewall-cmd --zone=public --query-service=https no