CraigSD 2025-07-14 23:05 采纳率: 97.9%
浏览 0
已采纳

如何查看firewalld已配置的规则策略?

**问题:如何查看firewalld当前配置的防火墙规则策略?** 在Linux系统中,`firewalld` 是一个动态管理防火墙的服务,广泛用于CentOS、RHEL等发行版。为了排查网络连通性问题或进行安全审计,系统管理员常常需要查看当前 `firewalld` 已配置的规则策略。那么,如何通过命令行快速查看 `firewalld` 的当前区域、服务、端口、以及具体的iptables规则?常用命令如 `firewall-cmd --list-all` 和 `iptables -L -n` 是否能完整展示所有规则?是否存在更详细的查看方式或需要注意的事项?
  • 写回答

1条回答 默认 最新

  • 小小浏 2025-07-14 23:05
    关注

    一、firewalld基础概念与查看命令

    firewalld 是 Linux 系统中一个动态管理防火墙的工具,它支持区域(zones)和服务(services)的概念。管理员可以通过 firewall-cmd 命令行工具来查询和配置当前规则。

    • 查看默认区域: firewall-cmd --get-default-zone
    • 查看当前活动区域: firewall-cmd --get-active-zones
    • 查看指定区域的详细信息: firewall-cmd --zone=public --list-all

    这些命令可以快速获取当前防火墙的区域划分、服务开放情况以及端口策略等基本信息。

    二、深入理解 firewalld 的规则结构

    firewalld 实际上是基于 iptablesnftables 构建的一层抽象接口。因此,最终生效的规则仍由底层的 iptablesnftables 控制。

    命令描述
    firewall-cmd --list-all列出默认区域的所有配置项(服务、端口、伪装等)
    firewall-cmd --list-services仅列出当前区域允许的服务
    firewall-cmd --list-ports仅列出当前区域开放的端口
    iptables -L -n查看实际生成的 iptables 规则列表

    需要注意的是:firewall-cmd --list-all 并不能显示所有底层规则,例如通过直接规则(direct rules)或 rich rules 添加的复杂策略不会在此显示。

    三、查看更详细的防火墙规则方式

    为了获得更完整的规则信息,特别是那些非标准方式添加的规则,可使用以下方法:

    1. 查看所有区域的完整配置: firewall-cmd --get-zones | xargs -I {} firewall-cmd --zone={} --list-all
    2. 查看 rich rules: firewall-cmd --list-rich-rules
    3. 查看 direct 规则: firewall-cmd --direct --get-all-rules
    4. 查看运行时配置文件: 查看 /etc/firewalld/ 目录下的 XML 配置文件
    5. 使用 nftables 工具查看规则: nft list ruleset(适用于使用 nftables 后端的系统)
    # 示例:查看 rich rule
    firewall-cmd --list-rich-rules
    rule family="ipv4" source address="192.168.1.0/24" service name="ssh" accept

    四、注意事项与最佳实践

    在查看和分析 firewalld 防火墙规则时,需注意以下几点:

    • 确保你正在查看的是当前运行时的配置,而非静态配置文件。
    • 不同后端(iptables vs nftables)生成的底层规则格式不同,应根据系统环境选择合适的查看方式。
    • 使用 --permanent 参数查看持久化配置前,建议先执行 firewall-cmd --reload 来同步运行时与永久配置。
    • 对于安全审计,推荐结合日志分析(如 journalctl -u firewalld)来定位规则匹配情况。
    A[开始] --> B{是否启用 firewalld?} B -->|否| C[切换到其他防火墙工具] B -->|是| D[使用 firewall-cmd 查看区域配置] D --> E[查看 rich rules 和 direct rules] E --> F[必要时查看 iptables/nftables 规则] F --> G[分析日志与配置一致性]
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已采纳回答 10月23日
  • 创建了问题 7月14日