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 
 
Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。