如何在 Debian 12、11 或 10 上安装 Firewalld

Firewalld 以其动态的防火墙管理方法脱颖而出。它提供实时适应性,这一功能使其有别于 iptables 和 ufw 等传统工具。这种实时灵活性使 Firewalld 成为重视安全性和易用性的用户的首选。

Firewalld 的主要优点:

  • 分区管理:Firewalld 采用基于区域的系统,专注于以用户为中心的连接管理,与 iptables 的每个数据包操作不同。
  • 即时更新:使用 Firewalld,更改会立即生效,而无需重新启动,而 iptables 则通常需要重新加载服务,从而可能会中断活动连接。
  • 用户友好命令:Firewalld 的命令结构比 ufw 更直观,对于防火墙配置的新手来说非常友好。
  • 全面的文档:Firewalld 拥有详尽的文档和活跃的用户社区,确保用户获得充足的支持和资源。
  • 与 Debian 无缝集成:将 Firewalld 的动态功能与 Debian 著名的稳定性相结合,为桌面用户和服务器管理员提供无与伦比的体验。

通过基础知识,本指南将指导您将 Firewalld 无缝集成到您的 Debian 系统中。

通过终端命令安装 Firewalld

在安装 Firewalld 之前更新 Debian

在开始安装任何新软件之前,使用以下命令更新 Debian 系统包数据库至关重要:

sudo apt update

此命令指示系统从所有配置的存储库中获取最新的包数据。

通过 APT 命令继续安装 Firewalld

使用系统更新的软件包信息,您现在可以安装 Firewalld。Debian 软件包管理器(也称为 APT)简化了此任务。要启动安装,请运行以下命令:

sudo apt install firewalld

此命令告诉包管理器下载并安装 Firewalld 软件包。

确认 Firewalld 安装

安装 Firewalld 后,请检查以确保正确安装并设置正确运行。要查看系统上的 Firewalld 版本,请使用:

firewall-cmd --version

此命令显示 Firewalld 版本号,确认其已安装。

现在,启动 Firewalld 并将其设置为在系统启动时运行。使用此命令:

sudo systemctl enable --now firewalld

了解防火墙区域

在防火墙的“区域”中,网络流量规则根据所连接网络的可信度制定,范围从公共不受信任的设置到私人家庭网络。

让我们回顾一下其中的一些以及它们的具体含义:

Firewalld 中区域的作用:

  • Firewalld 使用“区域”的概念进行运行。
  • Firewalld 中的“区域”本质上是一组预定义的规则。这些规则根据计算机所在网络的可信度决定允许或拒绝的网络流量类型。

区域运作方式的示例:

  • 公共区域: 此区域专为公共场所(例如咖啡馆或机场)的网络而设计。在这些设置中,您无法信任大多数其他设备,因此规则更加严格,以保护您的系统。
  • 主区: 此区域假设环境更安全,例如您的家。在这里,您可能熟悉所有设备,因此规则不太严格,允许设备之间进行更多通信。

Firewalld 中一些常见的预定义区域列表:

  • 降低: 丢弃所有传入数据包而不提供任何响应。限制性最强。
  • 堵塞: 与‘Drop’类似,但会向源发送拒绝响应。
  • 民众: 适用于公共的、不受信任的网络。
  • 外部的: 当您的系统充当网关或防火墙时使用。
  • DMZ(非军事区): 对于 DMZ 中的计算机,提供从互联网到隔离计算机的有限访问权限。
  • 工作: 对于您信任许多用户但仍需要保护措施的工作环境。
  • 家: 放宽家庭环境规则。
  • 内部的: 适用于公共或私有网络的内部部分。
  • 值得信赖: 接受所有网络连接。限制最少。

常用 Firewalld 命令

在本节中,我们将深入研究最常用的 Firewalld 命令。这些命令对于管理和配置 Firewalld 设置至关重要,使您能够有效地保护 Debian 环境。

Firewalld 命令语法和选项

Firewalld 命令的一般语法相对简单。下面,我们将讨论语法和选项,以便您更好地理解它们是什么。

首先,firewalld 命令的语法如下:

firewall-cmd [options] command

以下是语法成分的简单解释:

  • firewall-cmd:这是Firewalld操作使用的主要命令。
  • options:这些修改命令的行为。它们是可选的,可以省略。
  • command:这指定您想要执行的操作。

说到选项,Firewalld 提供了多种选择。一些常用的选项包括:

  • --zone=zone:指定要操作的区域。如果没有指定区域,则使用默认区域。
  • --add-service=service:将指定服务添加到区域。更改立即生效,但不会保留在重新启动后,除非 --permanent 被添加。
  • --get-active-zones:列出所有当前活动区域及其关联接口。
  • --get-services:列出 Firewalld 已知的所有可用服务。
  • --reload:重新加载 Firewalld 配置,实施使用 --permanent 无需重启系统。

要获取更多详细信息,您可以随时通过运行以下方式查阅 Firewalld 手册页: man firewall-cmd 在你的终端。

列出所有活动的防火墙区域

了解 Firewalld 安装中哪些区域处于活动状态,为管理防火墙配置提供了坚实的基础。您可以使用以下命令检索此信息:

sudo firewall-cmd --get-active-zones

此命令提示 Firewalld 列出所有活动区域,每个区域都附有其相关的网络接口。

显示默认区域

要查看 Firewalld 中配置的默认区域,请执行以下命令:

sudo firewall-cmd --get-default-zone

此命令的输出指定默认区域,这对于理解应用于传入网络连接的默认安全策略和服务至关重要。

更改默认区域

要更改默认区域,请使用以下命令:

sudo firewall-cmd --set-default-zone=your_zone_name

通过更换 your_zone_name 使用实际区域名称,您可以更改 Firewalld 安装的默认区域。

列出区域中的服务

您经常需要知道特定区域允许哪些服务。您可以使用以下方法实现此目的:

sudo firewall-cmd --zone=your_zone_name --list-services

只需更换 your_zone_name 使用您要列出允许服务的区域的名称。

向区域添加服务

要向区域添加新服务,请使用以下命令:

sudo firewall-cmd --zone=your_zone_name --add-service=your_service_name

使用此命令, your_service_name 被添加到 your_zone_name。请务必将这些占位符替换为您的实际服务和区域名称。

高级 Firewalld 命令和场景

Firewalld 提供了一套全面的高级命令和功能,可对防火墙设置进行精细控制。让我们深入研究这些命令,让您掌握必要的知识,以处理网络管理任务中可能出现的复杂情况。

使用 Firewalld 进行高级防火墙管理

定义新服务

如果您在预定义服务中未列出的特定端口上运行自定义应用程序,则可以自行定义该服务。

使用以下命令执行此操作:

sudo firewall-cmd --permanent --new-service=myservice

随后,您可以为自定义服务添加设置。例如,为服务设置一个简短且描述性的名称:

sudo firewall-cmd --permanent --service=myservice --set-short="My Custom Service"

调整默认区域

当传入连接未定义特定区域时,系统将使用默认区域。您可以修改默认区域以满足您的需求。

sudo firewall-cmd --set-default-zone=home

此命令将默认区域设置为 '家'. 确保更换 '家' 根据您的网络环境和安全要求,选择所需区域。

创建自定义区域

如果预定义区域不能满足您的需求,您可以创建自定义区域:

sudo firewall-cmd --permanent --new-zone=customzone

创建区域后,您可以通过添加或删除服务、端口等来修改它,以符合您的规范。

启用伪装

当您的系统充当网络中其他系统的网关或路由器时,通常会使用伪装。要在特定区域中启用伪装,请使用:

sudo firewall-cmd --zone=public --add-masquerade

请记住,将“公共”替换为您要启用伪装的区域。

转发端口

Firewalld 还允许您将特定端口转发到另一个端口。这在许多情况下都很有用,例如在非标准端口上运行服务时:

sudo firewall-cmd --zone=public --add-forward-port=port=5000:proto=tcp:toport=80

此命令将“公共”区域中的所有传入 TCP 连接从端口 5000 转发到端口 80。

这些示例仅代表 Firewalld 高级功能的一小部分。根据您的特定网络和安全需求,还有更多命令和选项可用。有关更多信息,请参阅 Firewalld 的官方文档或使用“man”命令。

防火墙问题疑难解答

管理防火墙有时可能很复杂,您可能会遇到问题。但是,Firewalld 提供了一套全面的故障排除工具和技术来帮助解决此类挑战。本节将指导您诊断和修复常见的防火墙问题。

调查防火墙问题

检查防火墙状态

要诊断任何 Firewalld 问题,首先使用以下命令检查服务状态:

sudo systemctl status firewalld

此命令提供有关 Firewalld 服务状态的信息,包括它是否处于活动状态以及在启动期间是否遇到任何错误。

查看 Firewalld 日志

解决问题时,您可以在 Firewalld 日志中找到宝贵的信息。默认情况下,Firewalld 将事件记录到系统日志中,您可以使用以下方式访问:

sudo journalctl -u firewalld

此命令将输出与 Firewalld 相关的日志,帮助您查明错误或异常行为。

验证配置

Firewalld 在 /etc/firewalld/ 目录。如果遇到问题,最好验证这些配置文件是否存在任何错误或差异:

sudo less /etc/firewalld/firewalld.conf

此命令允许您查看主 Firewalld 配置文件。

解决常见的 Firewalld 问题

问题:Firewalld 不响应命令

有时,Firewalld 可能不会对您的命令做出反应。一个很好的初始操作是重新加载 Firewalld。您可以使用以下命令执行此操作:

sudo firewall-cmd --reload

此命令会从磁盘重新加载 Firewalld 配置并丢弃所有未保存的临时更改。但是,它不会删除所有防火墙规则。

问题:需要将 Firewalld 重置为默认值

如果要将所有设置重置为默认设置并删除所有自定义规则,则应使用 --complete-reload 选项。请注意,使用此选项将删除所有运行时和永久配置,并将其替换为默认规则集。

sudo firewall-cmd --complete-reload

问题:需要删除特定规则

要删除特定规则,您需要使用 --remove 命令。例如,如果您想从永久配置中的公共区域中删除 HTTP 服务,则命令为:

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

问题:防火墙规则不起作用

如果防火墙规则似乎不起作用,通常是因为有人没有将规则设置为永久规则。非永久规则仅适用于当前会话。一旦有人重新启动系统,规则就会消失。为了确保规则保持不变,请包括 --permanent 创建规则时的标记。

问题:区域配置未按预期工作

在使用 Firewalld 时,了解区域以及它们如何与接口和服务交互至关重要。以下是可能发生的几种情况以及如何解决它们。

场景:您没有将接口分配给正确的区域

假设您为内部网络创建了一个名为“内部”的新区域,并为其设置了特定的规则和服务。但系统并未应用这些规则。一个可能的原因是,您没有将预期的接口分配给“内部”区域。

要查看哪些接口与区域关联,请使用以下命令:

sudo firewall-cmd --zone=internal --list-interfaces

如果输出不包含您想要的接口,您可以使用以下命令分配它:

sudo firewall-cmd --zone=internal --add-interface=eth1

此命令将“eth1”接口添加到“内部”区域。

场景:区域未启用该服务

想象一下你有一个 ‘非军事区’ 区域并希望允许 HTTP 流量。但是,流量没有通过。如果您没有在 ‘非军事区’ 区。

要查看区域是否启用了服务,请输入:

sudo firewall-cmd --zone=dmz --query-service=http

如果服务未激活,请使用以下命令激活它:

sudo firewall-cmd --zone=dmz --add-service=http

此命令打开 ‘非军事区’ 区。

在命令中包含 –permanent 标志,以使这些修改在重新启动后仍然有效。始终将您的接口与适当的区域链接并激活必要的服务。

结论

在本综合指南中,我们引导您完成在 Debian 上安装 Firewalld,包括版本 12、11 和 10。我们探讨了 Firewalld 的基础知识、其区域和服务配置,并为您提供了基本和高级命令示例。此外,我们还解决了您在使用 Firewalld 时可能遇到的一些常见故障排除场景。按照本指南,您应该能够充分利用 Firewalld 来有效地管理和保护服务器的防火墙设置。我们鼓励您不断尝试和完善您的知识,因为掌握 Firewalld 将为您提供一套强大的工具来维护安全且井然有序的网络环境。

有用的链接

以下是一些与使用 Firewalld 相关的有价值的链接:

  • Firewalld 官方网站:访问 Firewalld 官方网站,了解有关动态防火墙管理器、其功能和下载选项的信息。
  • Firewalld 文档:访问综合文档,获取有关安装、配置和使用 Firewalld 的详细指南。
  • Firewalld 社区:加入 Firewalld 社区,与其他用户联系,参与讨论并获得支持。
  • Firewalld GitHub 存储库:探索 Firewalld GitHub 存储库以查看源代码、报告问题并为开发做出贡献。
Joshua James
跟我来
Joshua James 的最新帖子 (查看全部)

发表评论


zh_CN简体中文