在Rocky Linux中,使用firewall-cmd --zone=区域名 --permanent
设置防火墙区域,并通过--add-service
或--add-port
配置规则后,执行firewall-cmd --reload
生效。
如何在 Rocky Linux 中设置并配置主机的防火墙区域?
在Rocky Linux中配置防火墙区域时,建议优先使用firewalld工具,因其与RHEL生态深度整合。关键步骤:1.通过firewall-cmd --get-zones
确认可用区域,根据业务场景选择(如public/internal);2.使用--set-default-zone
设定默认区域后,务必用--runtime-to-permanent
固化配置;3.对Web/Database等业务组件,采用--add-service
优先于直接开放端口;4.多网卡环境应为不同接口分配独立区域。注意:生产环境中需结合--add-rich-rule
实现IP白名单,并通过--list-all-zones
验证跨区域规则冲突。配置后建议模拟断网恢复,验证规则持久化有效性。
更多回答
在Rocky Linux里用自带的firewalld搞防火墙区域,简单说就是:1.查状态firewall-cmd --state
;2.看当前区域firewall-cmd --get-default-zone
;3.改默认区域比如sudo firewall-cmd --set-default-zone=public --permanent
;4.加允许的服务比如sudo firewall-cmd --zone=public --add-service=http --permanent
;5.最后sudo firewall-cmd --reload
生效。记不住命令就多敲两次--help,怕翻车记得先备份规则嗷!
-
查看当前默认区域:
firewall-cmd --get-default-zone
-
修改默认区域(如设置为
public
):sudo firewall-cmd --set-default-zone=public
-
添加服务或端口到区域(以 HTTP 和端口 8080 为例):
sudo firewall-cmd --zone=public --add-service=http --permanent sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
-
绑定网络接口到指定区域(可选,如将
eth0
绑定到public
):sudo firewall-cmd --zone=public --change-interface=eth0 --permanent
-
重载防火墙配置:
sudo firewall-cmd --reload
-
验证配置:
sudo firewall-cmd --zone=public --list-all
注意:
--permanent
参数确保规则永久生效,需搭配--reload
或重启防火墙服务生效。临时规则省略此参数。
在Rocky Linux中配置防火墙区域需基于firewalld服务实现。1. 确认firewalld状态:systemctl enable --now firewalld
。2. 查看可用区域:firewall-cmd --get-zones
,默认区域通过firewall-cmd --get-default-zone
获取。3. 修改默认区域:firewall-cmd --set-default-zone=internal --permanent
(以internal为例)。4. 添加服务到区域:firewall-cmd --zone=public --add-service=http --permanent
。5. 开放自定义端口:firewall-cmd --zone=public --add-port=8080/tcp --permanent
。6. 创建自定义区域:firewall-cmd --new-zone=custom_zone --permanent
,完成后必须重载:firewall-cmd --reload
。关键操作需结合网络接口绑定区域,通过firewall-cmd --zone=work --change-interface=eth0
实现。最后通过firewall-cmd --list-all
验证规则,生产环境建议通过临时规则测试后再应用--permanent参数。
在Rocky Linux中配置防火墙区域需通过firewalld实现,我的实践经验分为以下阶段:
-
基础配置
- 安装:
sudo dnf install firewalld
(部分环境预装) - 启动服务:
systemctl enable --now firewalld
- 验证状态:
firewall-cmd --state
输出'running'即正常
- 安装:
-
核心区域操作
- 查看默认区域:
firewall-cmd --get-default-zone
- 创建自定义区域(如web-server):
sudo firewall-cmd --permanent --new-zone=web-server sudo firewall-cmd --reload
- 绑定网卡接口:
sudo firewall-cmd --zone=web-server --change-interface=eth0
- 查看默认区域:
-
策略部署
- 添加服务:
sudo firewall-cmd --zone=web-server --add-service=http --permanent
- 开放端口:
sudo firewall-cmd --zone=web-server --add-port=8080/tcp --permanent
- 拒绝特定IP:
sudo firewall-cmd --zone=web-server --add-rich-rule='rule family=ipv4 source address=192.168.1.100 reject'
- 添加服务:
实践挑战:
- 区域优先级冲突:当接口同时属于多个区域时,通过
firewall-cmd --get-active-zones
排查覆盖关系 - 服务未定义异常:需在
/usr/lib/firewalld/services/
创建自定义服务XML文件(如myapp.xml) - 动态环境适配:云主机重启后网卡名称变化导致区域绑定失效,通过udev规则固定网卡名称解决
- 生产环境断连:误操作封锁SSH端口时,通过IPMI控制台执行
firewall-cmd --runtime-to-permanent
回滚配置
高阶技巧:
- 使用
--timeout
参数临时开放调试端口(如300秒:--add-port=4411/tcp --timeout=300
) - 通过
nft list ruleset
直接查看Netfilter底层规则 - 配置备份:
cp /etc/firewalld/zones/* ~/firewall_backup/
在Rocky Linux中配置防火墙区域需通过firewalld
服务实现,以下是具体步骤及逻辑:
-
基础验证
sudo systemctl enable --now firewalld # 启用并启动服务 firewall-cmd --state # 确认firewalld状态为running
-
区域管理
- 查看默认区域:
firewall-cmd --get-default-zone
- 列出所有区域:
firewall-cmd --get-zones
- 修改默认区域(如切换为internal):
sudo firewall-cmd --set-default-zone=internal --permanent sudo firewall-cmd --reload
- 绑定接口到区域(将eth0绑定至internal):
sudo firewall-cmd --zone=internal --add-interface=eth0 --permanent
- 查看默认区域:
-
服务配置
- 允许HTTP服务(临时+永久):
sudo firewall-cmd --zone=public --add-service=http sudo firewall-cmd --zone=public --add-service=http --permanent
- 拒绝SSH访问(区域级控制):
sudo firewall-cmd --zone=public --remove-service=ssh --permanent
- 允许HTTP服务(临时+永久):
-
端口级控制
- 开放TCP 8080端口:
sudo firewall-cmd --zone=public --add-port=8080/tcp sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
- 开放TCP 8080端口:
-
高级规则
- 设置IP白名单(允许192.168.1.0/24):
sudo firewall-cmd --zone=trusted --add-source=192.168.1.0/24 --permanent
- 删除无效规则:
sudo firewall-cmd --list-all --zone=public # 查看规则 sudo firewall-cmd --remove-rich-rule='rule [...]' --permanent
- 设置IP白名单(允许192.168.1.0/24):
-
生效验证
sudo firewall-cmd --reload # 重载配置 firewall-cmd --list-all --zone=public # 验证最终规则
关键逻辑:通过区域分层管理不同网络环境的安全策略,利用--permanent
参数实现配置持久化,结合服务抽象和端口直控实现灵活访问控制。生产环境建议先通过--timeout=300
参数测试临时规则,确认无误后再永久生效。