详解firewall-cmd防火墙规则管理工具
firewall-cmd
是一个用于管理防火墙规则的命令行工具, 它是firewalld
服务的主要命令行接口, 用于配置和控制防火墙规则
firewall-cmd
允许系统管理员动态地添加、删除和修改防火墙规则, 以保护系统的网络安全
基本用法
firewall-cmd 的基本语法如下
1 2 3 4
| firewall-cmd [选项] 命令
选项: 控制 firewall-cmd 的行为 命令: 要执行的操作, 如添加、删除、查询规则等
|
常用选项
1 2 3 4 5 6 7 8
| --permanent: 使配置永久生效(重启后仍然有效) --zone: 指定要操作的区域(如 public、trusted 等) --add-service: 添加服务到区域 --remove-service: 从区域中移除服务 --add-port: 添加端口到区域 --remove-port: 从区域中移除端口 --list-all: 列出区域的所有规则 --reload: 重新加载防火墙配置
|
具体示例
1、 列出所有区域
1 2 3 4 5 6 7 8 9 10 11 12
| [root@localhost ~]# firewall-cmd --get-zones block: 用于阻止特定流量或访问 dmz: 常用于放置对外提供服务的服务器, 与内部网络隔离 drop: 通常用于丢弃不符合安全策略的数据包 external: 表示外部网络, 可能是互联网或其他外部连接 home: 适用于家庭网络环境 internal: 用于内部网络, 保护敏感信息和资源 nm-shared: 可能用于共享网络资源的区域 public: 提供公共访问的区域, 如网站等 trusted: 表示信任的区域, 通常包含受信任的设备或用户 work: 适用于工作场所的网络区域
|
2、 列出某个区域的所有规则
1 2 3
| [root@localhost ~]# firewall-cmd --zone=public --list-all
public主要提供公共访问, 如暴露端口或服务给外部访问
|
3、 添加服务到区域
1 2 3 4 5 6
| # public主要提供公共访问, 如暴露端口或服务给外部访问 # 临时添加, 不需要重新防火墙配置
[root@localhost ~]# firewall-cmd --zone=public --list-all ### 列出public区域的所有规则 [root@localhost ~]# firewall-cmd --zone=public --add-service=http ### 临时将http服务添加到public区域 [root@localhost ~]# firewall-cmd --zone=public --list-all ### 列出public区域的所有规则
|
4、 永久添加服务到区域
1 2 3 4 5 6 7
| # public主要提供公共访问, 如暴露端口或服务给外部访问 # 永久添加, 需要重新加载防火墙配置
[root@localhost ~]# firewall-cmd --zone=public --list-all ### 列出public区域的所有规则 [root@localhost ~]# firewall-cmd --zone=public --add-service=http --permanent ### 永久将http服务添加到public区域 [root@localhost ~]# firewall-cmd --reload ### 重新加载防火墙配置 [root@localhost ~]# firewall-cmd --zone=public --list-all ### 列出public区域的所有规则
|
5、 重新加载防火墙配置
1 2 3 4 5 6
| # public主要提供公共访问, 如暴露端口或服务给外部访问 # 永久添加, 需要重新加载防火墙配置 [root@localhost ~]# firewall-cmd --zone=public --list-all ### 列出public区域的所有规则 [root@localhost ~]# firewall-cmd --zone=public --add-service=http --permanent ### 永久将http服务添加到public区域 [root@localhost ~]# firewall-cmd --reload ### 重新加载防火墙配置 [root@localhost ~]# firewall-cmd --zone=public --list-all ### 列出public区域的所有规则
|
6、 从区域中移除服务
1 2 3 4 5 6
| # public主要提供公共访问, 如暴露端口或服务给外部访问 # 永久移除, 需要重新加载防火墙配置 [root@localhost ~]# firewall-cmd --zone=public --list-all ### 列出public区域的所有规则 [root@localhost ~]# firewall-cmd --zone=public --remove-service=http --permanent ### 永久将http服务从public区域移除 [root@localhost ~]# firewall-cmd --reload ### 重新加载防火墙配置 [root@localhost ~]# firewall-cmd --zone=public --list-all ### 列出public区域的所有规则
|
7、 添加端口到区域
1 2 3 4 5
| # public主要提供公共访问, 如暴露端口或服务给外部访问 # 临时添加, 不需要重新防火墙配置 [root@localhost ~]# firewall-cmd --zone=public --list-all ### 列出public区域的所有规则 [root@localhost ~]# firewall-cmd --zone=public --add-port=8080/tcp ### 临时将TCP的8080端口添加到public区域 [root@localhost ~]# firewall-cmd --zone=public --list-all ### 列出public区域的所有规则
|
8、 永久添加端口到区域
1 2 3 4 5 6
| # public主要提供公共访问, 如暴露端口或服务给外部访问 # 永久添加, 需要重新加载防火墙配置 [root@localhost ~]# firewall-cmd --zone=public --list-all ### 列出public区域的所有规则 [root@localhost ~]# firewall-cmd --zone=public --add-port=8080/tcp --permanent ### 永久将TCP的8080端口添加到public区域 [root@localhost ~]# firewall-cmd --reload ### 重新加载防火墙配置 [root@localhost ~]# firewall-cmd --zone=public --list-all ### 列出public区域的所有规则
|
9、 永久从区域中移除端口
1 2 3 4 5 6
| # public主要提供公共访问, 如暴露端口或服务给外部访问 # 永久移除, 需要重新加载防火墙配置 [root@localhost ~]# firewall-cmd --zone=public --list-all ### 列出public区域的所有规则 [root@localhost ~]# firewall-cmd --zone=public --remove-port=8080/tcp --permanent ### 永久将TCP的8080端口从public区域移除 [root@localhost ~]# firewall-cmd --reload ### 重新加载防火墙配置 [root@localhost ~]# firewall-cmd --zone=public --list-all ### 列出public区域的所有规则
|