如何在 Linux 上配置 Firewalld 区域

LinuxLinuxBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

本教程全面介绍了 Linux 中的动态、基于区域的防火墙管理工具 Firewalld。我们将探讨使用 Firewalld 的基本概念和优势,随后是配置和管理 Firewalld 规则及服务的指南。最后,我们将深入探讨实际用例和示例,以帮助你在 Linux 环境中有效实施 Firewalld。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux(("Linux")) -.-> linux/RemoteAccessandNetworkingGroup(["Remote Access and Networking"]) linux/SystemInformationandMonitoringGroup -.-> linux/service("Service Managing") linux/RemoteAccessandNetworkingGroup -.-> linux/netstat("Network Monitoring") subgraph Lab Skills linux/service -.-> lab-398385{{"如何在 Linux 上配置 Firewalld 区域"}} linux/netstat -.-> lab-398385{{"如何在 Linux 上配置 Firewalld 区域"}} end

Firewalld 简介:概念与优势

Firewalld 是 Linux 中一个基于区域的动态防火墙管理工具,它提供了一种强大且灵活的方式来控制网络流量。它为管理网络安全提供了全面的解决方案,是 Linux 系统管理员和网络工程师的重要组件。

在本节中,我们将探讨在 Linux 环境中使用 Firewalld 的基本概念和优势。

了解 Firewalld

Firewalld 是 Linux 中传统 iptables 防火墙的替代品。它提供了一种更用户友好且动态的方式来管理防火墙规则,无需重启防火墙服务即可进行实时更新。

Firewalld 基于 “区域” 的概念运行,区域是为特定网络环境量身定制的预定义防火墙规则集。这些区域可以轻松分配给网络接口,使你能够根据网络的信任级别应用不同的安全策略。

graph TD A[网络接口] -->|分配到| B[Firewalld 区域] B -->|应用| C[防火墙规则]

使用 Firewalld 的优势

  1. 动态防火墙管理:Firewalld 允许你在不重启防火墙服务的情况下添加、删除或修改防火墙规则,确保对你的网络操作造成最小干扰。

  2. 基于区域的配置:基于区域的方法通过提供可轻松应用于网络接口的预定义安全配置文件,简化了防火墙管理。

  3. 丰富的功能集:Firewalld 支持广泛的功能,包括对 IPv4 和 IPv6 的支持、端口转发、丰富规则以及与其他网络服务的集成。

  4. 增强的安全性:Firewalld 的动态特性和基于区域的配置使你能够根据不断变化的网络条件快速调整防火墙规则,增强系统的整体安全性。

  5. 易于使用:Firewalld 提供了用户友好的命令行界面 (CLI) 并与图形工具集成,无论是经验丰富的还是新手系统管理员都可以使用。

graph TD A[Firewalld] -->|提供| B[动态防火墙管理] A -->|启用| C[基于区域的配置] A -->|支持| D[丰富的功能集] A -->|增强| E[增强的安全性] A -->|提供| F[易于使用]

在接下来的部分中,我们将更深入地探讨 Firewalld 的配置和实际用例,让你掌握有效管理 Linux 网络安全所需的知识。

配置 Firewalld:管理规则和服务

Firewalld 提供了一套全面的工具和命令,用于配置和管理防火墙规则及服务。在本节中,我们将探讨 Firewalld 配置的关键方面,以及如何使用这个动态防火墙解决方案有效地控制网络流量。

管理 Firewalld 规则

Firewalld 规则是防火墙功能的核心,决定了哪些网络流量被允许或阻止。你可以使用 firewall-cmd 命令行工具来管理这些规则。

要列出当前的防火墙规则,可以使用以下命令:

sudo firewall-cmd --list-all

这将显示活动区域、分配给它们的接口以及每个区域配置的规则。

要添加新规则,可以使用 --add-port--add-service 选项。例如,要在 public 区域允许 HTTP 流量(端口 80):

sudo firewall-cmd --zone=public --add-port=80/tcp --permanent

--permanent 选项可确保规则在系统重启后仍然有效。

与 iptables 集成

Firewalld 提供了与传统 iptables 防火墙的无缝集成。你可以使用以下命令查看 Firewalld 生成的底层 iptables 规则:

sudo iptables -L -n

这使你在需要时能够利用 Firewalld 的灵活性,同时仍然可以访问底层的 iptables 规则。

管理 Firewalld 服务

Firewalld 还允许你管理预定义的网络服务,这些服务是针对常见应用程序和协议的防火墙规则集合。你可以使用以下命令列出可用的服务:

sudo firewall-cmd --get-services

要在特定区域启用服务,可以使用 --add-service 选项:

sudo firewall-cmd --zone=public --add-service=http --permanent

这将添加必要的规则,以允许 public 区域中的 HTTP 流量。

graph TD A[firewall-cmd] -->|管理| B[Firewalld 规则] A -->|与……集成| C[iptables] A -->|管理| D[Firewalld 服务]

通过了解各种 Firewalld 配置选项和命令,你可以有效地控制和保护网络流量,以适应 Linux 环境不断变化的需求。

Firewalld 的实际应用:用例与示例

Firewalld 的灵活性和动态特性使其成为保护各种基于 Linux 的环境的强大工具。在本节中,我们将探讨 Firewalld 的一些实际用例及运行示例。

使用 Firewalld 强化服务器安全

Firewalld 的主要用例之一是强化服务器安全。通过利用 Firewalld 基于区域的配置,你可以轻松地为服务器的网络接口应用量身定制的安全策略。例如,你可以为服务器的内部网络创建一个专用的 “内部” 区域,并为面向外部的接口创建一个 “公共” 区域。

graph TD A[服务器] -->|内部网络| B[内部区域] A -->|外部网络| C[公共区域] B -->|应用严格规则| D[防火墙规则] C -->|应用宽松规则| E[防火墙规则]

这种方法使你能够为内部网络实施更严格的防火墙规则,同时为面向外部的接口保持更宽松的策略。

使用 Firewalld 进行网络分段

Firewalld 基于区域的配置还能够实现有效的网络分段,这对于在复杂网络环境中维护安全性至关重要。通过创建特定区域并将其分配给不同的网络段,你可以控制这些段之间的流量流动,确保仅允许授权通信。

graph TD A[网络] -->|分段为| B[区域 1] A -->|分段为| C[区域 2] A -->|分段为| D[区域 3] B -->|应用防火墙规则| E[防火墙规则] C -->|应用防火墙规则| F[防火墙规则] D -->|应用防火墙规则| G[防火墙规则]

这种网络分段方法在诸如分离生产和开发环境或隔离网络内特定服务或设备的场景中可能特别有用。

云环境和容器中的动态防火墙管理

Firewalld 的动态特性使其成为在云环境和基于容器的环境中管理防火墙的理想选择。随着你的基础架构扩展或缩减,Firewalld 可以快速适应不断变化的网络条件,确保你的防火墙规则始终是最新的。

graph TD A[云/容器环境] -->|扩展| B[Firewalld] B -->|动态适应| C[防火墙规则]

这种灵活性在基于云和容器的架构中至关重要,在这些架构中,网络配置可能迅速变化,能够快速更新防火墙规则对于维护安全性至关重要。

通过探索这些实际用例,你可以了解如何利用 Firewalld 的功能来增强基于 Linux 的基础架构的安全性和可管理性,无论它是传统的服务器设置还是现代的云原生环境。

总结

Firewalld 是一个功能强大且灵活的防火墙管理工具,它为控制网络流量和增强 Linux 系统的安全性提供了全面的解决方案。通过理解区域和动态规则管理的概念,你可以轻松配置 Firewalld 以满足特定的网络需求。本教程为你提供了有效查看和管理 Firewalld 规则的知识和技能,使你能够维护一个安全且防护良好的 Linux 环境。