如何在 Firewalld 中为特定 IP 地址打开端口?


在当今互联互通的世界中,网络安全至关重要。保障网络安全的其中一个重要方面是管理系统上特定端口的访问权限。Firewalld 是一款动态防火墙管理工具,它为 CentOS 中的防火墙配置提供了一种灵活且用户友好的方法。

本指南将重点关注一个常见场景:在 Firewalld 中为特定 IP 地址打开端口。通过仅允许特定 IP 地址访问,您可以增强系统安全性并限制未经授权的访问。

在本文中,我们将探讨在 Firewalld 中为特定 IP 地址打开端口的分步过程。我们将介绍 Firewalld 区域和服务的 basics,确定特定 IP 地址,并提供有关如何打开所需端口的详细说明。

理解 Firewalld 区域和服务

在使用 Firewalld 管理网络安全时,掌握区域和服务的概念至关重要。这些组件在定义防火墙的行为和确保适当的保护级别方面发挥着至关重要的作用。

  • Firewalld 区域  Firewalld 将网络接口和连接分类到不同的区域,每个区域都有其特定的用途。这些预定义的区域(包括公共区域、内部区域和信任区域)决定了与特定网络段关联的信任级别。通过将接口分配到相应的区域,您可以控制访问权限并为每个区域设置不同的规则。

  • Firewalld 服务  Firewalld 中的服务代表与端口或端口范围关联的特定应用程序或协议。它们定义允许的网络流量,并且可以分配给特定区域。通过使用服务,您可以轻松管理和应用防火墙配置中常用服务的统一规则。

理解区域和服务之间的相互作用使您可以使用 Firewalld 创建量身定制的网络安全策略。掌握了这些知识后,让我们继续下一步:确定用于打开端口的特定 IP 地址。

确定特定 IP 地址

在 Firewalld 中为特定 IP 地址打开端口之前,您需要确定要授予访问权限的 IP 地址。请按照以下步骤获取 IP 地址 

  • 检查网络配置

$ ip addr show

查找与所需 IP 地址关联的网络接口。记下 IP 地址和接口名称。

  • 查看网络流量 

$ sudo tcpdump -i <interface> host <desired_ip>

将 <interface> 替换为上一步中网络接口的名称,并将 <desired_ip> 替换为所需的 IP 地址。分析捕获的数据包以识别 IP 地址。

  • 检查日志或系统信息 

$ cat /var/log/syslog | grep <desired_ip>

在系统日志中搜索与所需 IP 地址相关的条目。或者,检查可能包含有关访问您系统的 IP 地址的信息的相关配置文件。

通过按照这些步骤,您将能够确定要在 Firewalld 中为其打开端口的特定 IP 地址。获得 IP 地址后,您可以继续下一部分,其中介绍了打开端口的步骤。

在 Firewalld 中为特定 IP 地址打开端口

现在您已经确定了要授予访问权限的特定 IP 地址,您可以继续为 Firewalld 中该 IP 地址打开端口。请按照以下步骤操作 

  • 验证 Firewalld 状态  通过执行以下命令检查 Firewalld 是否在您的系统上运行 

$ sudo systemctl status firewalld

确保服务处于活动状态并正在运行。

  • 查找区域  确定与端口所属网络接口关联的 Firewalld 区域。运行以下命令以列出可用的区域 

$ sudo firewall-cmd --get-zones

为您的网络接口确定合适的区域。

  • 添加新规则  使用 --zone 选项以及区域名称为特定 IP 地址和端口添加新规则。执行以下命令 

$ sudo firewall-cmd --zone=<zone_name> --add-source=<specific_ip>/32 --permanent

将 <zone_name> 替换为上一步中获得的适当区域名称,并将 <specific_ip> 替换为已识别的 IP 地址。

  • 指定端口  使用 --add-port 选项将端口号添加到规则中 

$ sudo firewall-cmd --zone=<zone_name> --add-port=<port_number>/tcp --permanent

将 <zone_name> 替换为区域名称,并将 <port_number> 替换为所需的端口号。

  • 重新加载 Firewalld  通过重新加载 Firewalld 来应用更改 

$ sudo firewall-cmd --reload
  • 验证规则  为了确保现在已为特定 IP 地址打开了端口,请运行以下命令 

$ sudo firewall-cmd --zone=<zone_name> --list-all

验证 IP 地址和端口是否列在输出中。

现在,我们已经为 Firewalld 中的特定 IP 地址打开了端口。这允许指定的 IP 地址访问系统上指定的端口。

在下一节中,我们将探讨如何在需要时删除规则并关闭端口。

删除规则并关闭端口

如果需要撤销特定 IP 地址的访问权限或关闭 Firewalld 中的端口,您可以轻松删除规则。请按照以下步骤操作 

  • 确定规则  在删除规则之前,务必确定与特定 IP 地址和端口关联的规则编号。执行以下命令以列出规则:

$ sudo firewall-cmd --zone=<zone_name> --list-all

找到包含要删除的特定 IP 地址和端口的规则。记下规则编号。

  • 删除规则  使用 --remove-rich-rule 选项以及规则编号删除规则:

$ sudo firewall-cmd --zone=<zone_name> --remove-rich-rule='rule family="ipv4" source address="<specific_ip>/32" port port="<port_number>" protocol="tcp" accept' --permanent

将 <zone_name> 替换为相应的区域名称,将 <specific_ip> 替换为 IP 地址,并将 <port_number> 替换为端口号。使用您在上一步中记下的规则编号。

  • 重新加载 Firewalld  通过重新加载 Firewalld 来应用更改:

$ sudo firewall-cmd --reload

完成这些步骤后,允许特定 IP 地址访问指定端口的规则将被删除,从而有效地关闭该端口。

结论

管理网络安全对于任何系统都至关重要,而 Firewalld 为控制传入连接提供了强大的解决方案。在本博文中,我们讨论了如何在 Firewalld 中为特定 IP 地址打开特定端口。我们介绍了必要的步骤,包括确定区域、添加丰富规则和验证配置。通过遵循这些指南,您可以确保只有授权的 IP 地址才能访问特定端口,从而增强系统安全性。

更新于:2023年8月9日

3K+ 浏览量

开启您的职业生涯

通过完成课程获得认证

开始学习
广告