确保网络安全是 Fedora Linux 用户的首要任务。实现此目标的一种有效方法是使用 Firewalld,这是一个为 Linux 系统(包括 Fedora)量身定制的动态防火墙管理器。
Firewalld 提供了几个突出的功能:
- 动态管理:Firewalld 允许用户实时更改防火墙设置,而无需重新启动服务。
- 分区管理:用户可以将网络接口分组到不同的区域,每个区域都有特定的防火墙规则,以允许不同级别的信任。
- 丰富的语言规则:此功能提供对防火墙设置的详细控制,可适应不同网络需求的复杂规则和例外。
- 服务特定配置:Firewalld 允许用户为单个服务或应用程序设置特定的防火墙规则,增加另一层自定义功能。
- IPv6 支持:通过兼容 IPv6,Firewalld 可确保您的系统在互联网过渡到下一代 IP 地址时保持安全。
对于桌面和服务器 Fedora 用户来说,Firewalld 都是无价之宝。在桌面端,它控制传入和传出流量,确保更安全的浏览体验、更好的隐私以及降低恶意软件或数据泄露风险。对于通常更多地暴露在互联网上的服务器,Firewalld 对不同网络区域服务和特定防火墙配置的管理对于减少漏洞至关重要。
现在,让我们继续安装firewalld。在本指南结束时,您将能够增强 Fedora 系统的安全性并确保安全高效的网络环境。
验证防火墙的存在
在安装 Firewalld 之前,检查它是否已安装在您的系统上至关重要。此初始验证有助于避免后续安装过程中出现潜在的冲突或冗余。完成此操作的命令很简单:
firewall-cmd --version
执行此命令时,如果系统上安装了防火墙,则应返回防火墙版本。如果缺少 Firewalld,您将收到一条错误消息,指出它不存在。
通过 DNF 命令安装 Firewalld
如果你的系统没有安装 Firewalld,下一步需要安装它。我们通过 dnf
包管理器,用于管理 Fedora Linux 中的软件的可靠工具。要安装 Firewalld,请执行以下命令:
sudo dnf install firewalld
此命令指示 dnf
安装 Firewalld 包,从 Fedora 存储库中拉取。这一步对于您实现强化网络安全和有效流量管理至关重要。
启用Firewalld
安装成功后,下一步是确保启用 Firewalld。这意味着每次系统启动时,Firewalld 都会自动启动,为您的网络保持一致的安全防护。启用 Firewalld 的命令是:
sudo systemctl enable firewalld
此命令使用 systemctl
工具来启用 Firewalld 服务。每次启动 Fedora 系统时,Firewalld 也会启动,以保护您的网络。
验证 Firewalld 服务运行
本节的最后一步是验证 Firewalld 是否正常工作。这一关键步骤确认前面的步骤已成功执行并且 Firewalld 可以运行。要验证 Firewalld 服务,请使用以下命令:
sudo systemctl status firewalld
此命令返回 Firewalld 服务的状态。如果 Firewalld 正常运行,您将看到一个输出,表明该服务处于活动状态并正在运行。否则,您必须重新执行上述步骤以纠正遇到的任何问题。
基本 Firewalld 命令
理解 Firewalld 命令的语法对于正确使用它们至关重要。基本语法采用以下形式:
firewall-cmd [options] command
firewall-cmd
是 Firewalld 的命令行客户端。options
是可以修改行为的附加参数firewall-cmd
.一些常见的选择包括--zone
(指定防火墙区域),--permanent
(使更改在重启后保持不变),以及--reload
(立即应用更改)。command
是执行特定操作的命令,例如添加或删除服务。
了解了语法后,我们现在将探讨十个最常用的基本 Firewalld 命令。
使用 Firewalld 显示所有区域
此命令允许您查看 Firewalld 内所有现有区域。
firewall-cmd --list-all-zones
使用 Firewalld 获取默认区域
使用此命令,您可以检索默认区域的名称。
firewall-cmd --get-default-zone
使用 Firewalld 设置默认区域
您可以使用以下命令设置新的默认区域,将“zone_name”替换为您首选区域的名称。
firewall-cmd --set-default-zone=zone_name
使用 Firewalld 列出区域中的服务
您可以使用此命令列出特定区域内的所有服务,将“zone_name”替换为您区域的名称。
firewall-cmd --zone=zone_name --list-services
使用 Firewalld 将服务添加到区域
此命令使向区域添加服务变得简单。将“zone_name”替换为您的区域的名称,将“service_name”替换为您要添加的服务。
firewall-cmd --zone=zone_name --add-service=service_name
使用 Firewalld 从区域中删除服务
如果您需要从特定区域中删除服务,请使用此命令。将“zone_name”替换为您的区域名称,将“service_name”替换为您要删除的服务。
firewall-cmd --zone=zone_name --remove-service=service_name
重新加载Firewalld
此命令允许您应用更改而不中断现有连接。
firewall-cmd --reload
使用 Firewalld 列出区域中的所有规则
要查看区域内的所有规则,请使用以下命令,将“zone_name”替换为您的区域的名称。
firewall-cmd --zone=zone_name --list-all
使用 Firewalld 将端口添加到区域
使用此命令可以很直接地向区域添加特定端口。将“zone_name”替换为您的区域,“port_number”替换为端口号,“protocol”替换为协议(tcp 或 udp)。
firewall-cmd --zone=zone_name --add-port=port_number/protocol
使用 Firewalld 从区域中删除端口
相反,如果您需要从区域中删除端口,请使用以下命令。将“zone_name”替换为您的区域,“port_number”替换为端口号,“protocol”替换为协议。
firewall-cmd --zone=zone_name --remove-port=port_number/protocol
高级 Firewalld 命令和场景
要了解 Firewalld 的高级功能,需要了解更复杂的命令和场景。让我们探索五个这样的场景,以进一步加深您对 Firewalld 的了解。
场景 1:使用 Firewalld 将端口添加到区域
要将特定端口添加到区域,请使用:
sudo firewall-cmd --zone=your_zone --add-port=your_port/protocol
将“your_zone”、“your_port”和“protocol”替换为您的区域名称、所需端口和协议(tcp 或 udp)。
场景 2:使用 Firewalld 从区域中删除端口
要从区域中删除端口:
sudo firewall-cmd --zone=your_zone --remove-port=your_port/protocol
再次,“your_zone”、“your_port”和“protocol”应该替换为您的具体详细信息。
场景 3:使用 Firewalld 创建新区域
要创建新区域:
sudo firewall-cmd --new-zone=your_zone --permanent
将“your_zone”替换为您想要的新区域的名称。
场景 4:使用 Firewalld 删除区域
要删除区域:
sudo firewall-cmd --delete-zone=your_zone --permanent
这里,“your_zone”应该替换为您要删除的区域的名称。
场景 5:使用 Firewalld 阻止 IP 地址
最后,要阻止特定的 IP 地址:
sudo firewall-cmd --zone=your_zone --add-source=ip_address
sudo firewall-cmd --zone=your_zone --add-rich-rule='rule family="ipv4" source address="ip_address" reject'
在这些命令中,“your_zone”和“ip_address”应替换为区域名称和您希望阻止的 IP 地址。第一个命令将 IP 地址添加到区域,而第二个命令拒绝来自该 IP 的所有流量。
关于 Firewalld 的总结
在本指南中,我们提供了在 Fedora Linux 上安装和管理 Firewalld 的全面概述。从安装到执行基本命令和处理高级场景,所概述的步骤应该能够让任何用户(无论其专业水平如何)熟练地使用 Firewalld。为了持续成功,建议继续探索这个强大的防火墙解决方案的功能,并使用官方资源进行持续学习和故障排除。