firewall−cmd命令
firewall−cmd是Linux系统中用于管理防火墙的命令行工具,是基于firewalld服务的前端工具,提供了简单而强大的方式来管理网络防火墙规则。firewalld支持动态更新技术并加入了区域(zone)的概念。简单来说,区域就是firewalld预先准备了几套防火墙策略集合(策略模板),用户可以根据生产场景的不同而选择合适的策略集合,从而实现防火墙策略之间的快速切换。
- 信任区域(trusted):允许所有传入和传出的流量,不进行任何过滤。适用于完全信任的网络(如本地回环)。
- 家庭区域(home):适用于家庭环境,信任级别较高,允许常见服务(如SSH、DHCP)的使用。
- 工作区域(work):适用于工作环境,类似于家庭区域,但信任级别稍低,允许使用的服务较少。
- 内部区域(internal):适用于内部网络,信任级别较高,允许内部网络流量,但对外部连接有限制。
- 公共区域(public):用于不信任的公共网络,默认仅允许基本的传入流量,禁止大部分传出流量。
- 外部区域(external):用于外部连接,通常用于路由器或网关,启用网络伪装(NAT)以保护内部网络。
- 隔离区域(DMZ):适用于放置在网络隔离区的系统,限制外部访问,只允许特定服务。通常用于需要受限外部访问的服务器(如Web服务器)。
- 阻塞区域(block):默认阻止所有传入流量,适用于完全不信任的网络环境。除了允许通过的流量(如回送接口、ping),所有其他请求都会被拒绝。
- 丢弃区域(drop):最严格的区域,不回应传入请求,直接丢弃所有外部连接,甚至不发送响应。适用于完全不信任的网络环境。
添加和移除规则
命令格式
firewall−cmd [选项] 命令
选项列表
- −−zone:添加或移除规则的区域,不指明区域则使用默认区域,系统初始默认区域为public。
- −−permanent:规则是否永久有效,使用此选项后规则会被写入规则库且永久有效,否则规则仅本次有效,防火墙重启后失效。
命令列表
- −−add−port:添加端口规则。
- −−add−service:添加服务规则。
- −−remove−port:移除端口规则。
- −−remove−service:移除服务规则。
- −−reload:重新加载防火墙规则。
使用示例
1、firewall−cmd −−zone=区域 −−add−port=端口/协议 −−permanent:永久开放指定区域中的指定端口。
2、firewall−cmd −−zone=区域 −−add−service=服务 −−permanent:永久开放指定区域中的指定服务。
3、firewall−cmd −−zone=区域 −−remove−port=端口/协议 −−permanent:永久关闭指定区域中的指定端口。
4、firewall−cmd −−zone=区域 −−remove−service=服务 −−permanent:永久关闭指定区域中的指定服务。
5、firewall−cmd −−reload:重新加载防火墙规则,用于规则修改后的规则刷新。
查看规则
命令格式
firewall−cmd [选项] 命令
选项列表
- −−zone:添加或移除规则的区域,不指明区域则使用默认区域,系统初始默认区域为public。
命令列表
- −−list−all:查看所有规则。
- −−list−ports:查看所有开放的端口。
- −−list−services:查看所有开放的服务。
使用示例
1、firewall−cmd −−zone=区域 −−list−all:查看指定区域的所有规则。
2、firewall−cmd −−zone=区域 −−list−ports:查看指定区域所有开放的端口与协议。
3、firewall−cmd −−zone=区域 −−list−services:查看指定区域所有开放的服务。
查看和设置区域
命令格式
firewall−cmd 命令
命令列表
- −−set−default−zone:设置默认区域。
- −−get−default−zone:查看默认区域。
- −−get−active−zones:查看活跃区域(当前正在使用的区域)。
使用示例
1、firewall−cmd −−set−default−zone 区域:设置默认区域。
2、firewall−cmd −−get−default−zone 区域:查看默认区域。
3、firewall−cmd −−get−active−zones:查看活跃区域。