firewalld防火墙
firewalld是Linux系统中基于动态区域管理的防火墙工具,相较于传统iptables,其核心优势在于动态规则更新和区域化策略管理。通过预定义的区域(如public、trusted、drop等),系统管理员可以快速切换网络接口的安全级别,而无需手动修改每条规则。
firewalld作为CentOS7系统的后台服务,可通过systemctl进行管理,常用管理命令如下:
- systemctl status firewalld:查看防火墙状态。
- systemctl start firewalld:启动防火墙。
- systemctl stop firewalld:关闭防火墙。
- systemctl restart firewalld:重启防火墙。
firewall−cmd是Linux系统中用于管理防火墙的命令行工具,是基于firewalld服务的前端工具,提供了简单而强大的方式来管理网络防火墙规则。
查看和设置区域
firewalld支持动态更新技术并加入了区域(zone)的概念。简单来说,区域就是firewalld预先准备了几套防火墙策略集合(策略模板),用户可以根据生产场景的不同而选择合适的策略集合,从而实现防火墙策略之间的快速切换。
firewalld内置了九个区域,常用的区域如下:
- 公共区域(public):用于不信任的公共网络,默认仅允许基本的传入流量,禁止大部分传出流量。
- 信任区域(trusted):允许所有传入和传出的流量,不进行任何过滤。适用于完全信任的网络(如本地回环)。
- 阻塞区域(block):默认阻止所有传入流量,适用于完全不信任的网络环境。除了允许通过的流量(如回送接口、ping),所有其他请求都会被拒绝。
- 丢弃区域(drop):最严格的区域,不回应传入请求,直接丢弃所有外部连接,甚至不发送响应。适用于完全不信任的网络环境。
命令格式
firewall−cmd 选项
命令详解
1、常用选项:
- −−set−default−zone:设置默认区域。
- −−get−default−zone:查看默认区域。
- −−get−active−zones:查看活跃区域(当前正在使用的区域)。
使用示例
1、firewall−cmd −−get−default−zone 区域:查看默认区域。

2、firewall−cmd −−get−active−zones:查看活跃区域。

3、firewall−cmd −−set−default−zone 区域:设置默认区域。

查看和设置规则
命令格式
firewall−cmd [选项]... 指令
命令详解
1、常用选项:
- −−zone:添加或移除规则的区域,不指明区域则使用默认区域,系统初始默认区域为public。
- −−permanent:规则是否永久有效,使用此选项后规则会被写入规则库且永久有效,否则规则仅本次有效,防火墙重启后失效。
2、常用指令:
2.1、查看规则:
- −−list−all:查看所有规则。
- −−list−ports:查看所有开放的端口。
- −−list−services:查看所有开放的服务。
2.2、添加规则:
- −−add−port:添加端口规则。
- −−add−service:添加服务规则。
2.3、删除规则:
- −−remove−port:移除端口规则。
- −−remove−service:移除服务规则。
2.4、加载规则:
- −−reload:重新加载防火墙规则。
使用示例
1、查看指定区域的规则。
1.1、firewall−cmd −−zone=区域 −−list−all:查看区域的所有规则。

1.2、firewall−cmd −−zone=区域 −−list−ports:查看区域所有开放的端口与协议。

1.3、firewall−cmd −−zone=区域 −−list−services:查看区域所有开放的服务。

2、在指定区域添加规则。
2.1、firewall−cmd −−zone=区域 −−add−port=端口/协议 −−permanent:永久开放区域中的端口。

2.2、firewall−cmd −−zone=区域 −−add−service=服务 −−permanent:永久开放区域中的服务。

3、从指定区域删除规则。
3.1、firewall−cmd −−zone=区域 −−remove−port=端口/协议 −−permanent:永久关闭区域中的端口。

3.2、firewall−cmd −−zone=区域 −−remove−service=服务 −−permanent:永久关闭区域中的服务。
