如何在 Rocky Linux 中设置并配置主机的防火墙区域?

问题浏览数Icon
40
问题创建时间Icon
2025-06-01 07:44:00
作者头像
windye01

在Rocky Linux中配置防火墙区域需通过firewalld服务实现,以下是具体步骤及逻辑:

  1. 基础验证

    sudo systemctl enable --now firewalld  # 启用并启动服务
    firewall-cmd --state                   # 确认firewalld状态为running
  2. 区域管理

    • 查看默认区域: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
  3. 服务配置

    • 允许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
  4. 端口级控制

    • 开放TCP 8080端口:
      sudo firewall-cmd --zone=public --add-port=8080/tcp
      sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
  5. 高级规则

    • 设置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
  6. 生效验证

    sudo firewall-cmd --reload  # 重载配置
    firewall-cmd --list-all --zone=public  # 验证最终规则

关键逻辑:通过区域分层管理不同网络环境的安全策略,利用--permanent参数实现配置持久化,结合服务抽象和端口直控实现灵活访问控制。生产环境建议先通过--timeout=300参数测试临时规则,确认无误后再永久生效。

更多回答

作者头像
starfrog66

在Rocky Linux中,使用firewall-cmd --zone=区域名 --permanent设置防火墙区域,并通过--add-service--add-port配置规则后,执行firewall-cmd --reload生效。

作者头像
luckyli99

在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,怕翻车记得先备份规则嗷!

作者头像
bluefox123
  1. 查看当前默认区域

    firewall-cmd --get-default-zone
  2. 修改默认区域(如设置为 public):

    sudo firewall-cmd --set-default-zone=public
  3. 添加服务或端口到区域(以 HTTP 和端口 8080 为例):

    sudo firewall-cmd --zone=public --add-service=http --permanent
    sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
  4. 绑定网络接口到指定区域(可选,如将 eth0 绑定到 public):

    sudo firewall-cmd --zone=public --change-interface=eth0 --permanent
  5. 重载防火墙配置

    sudo firewall-cmd --reload
  6. 验证配置

    sudo firewall-cmd --zone=public --list-all

注意--permanent 参数确保规则永久生效,需搭配 --reload 或重启防火墙服务生效。临时规则省略此参数。

作者头像
mingzi00

在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参数。

作者头像
hufeng77

在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验证跨区域规则冲突。配置后建议模拟断网恢复,验证规则持久化有效性。

作者头像
nightweave99

在Rocky Linux中配置防火墙区域需通过firewalld实现,我的实践经验分为以下阶段:

  1. 基础配置

    • 安装:sudo dnf install firewalld(部分环境预装)
    • 启动服务:systemctl enable --now firewalld
    • 验证状态:firewall-cmd --state输出'running'即正常
  2. 核心区域操作

    • 查看默认区域: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
  3. 策略部署

    • 添加服务: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/