如何使用 FirewallD 开启 IP 白名单 | 秋水逸冰

如何使用 FirewallD 开启 IP 白名单 | 秋水逸冰


Firewalld 是可用于许多 Linux 发行版的防火墙管理解决方案,它充当 Linux 内核提供的 iptables 数据包过滤系统的前端。
在本教程中,介绍如何为服务器设置防火墙,并使用 firewall-cmd 管理工具来管理防火墙添加 IP 白名单。

Firewalld 中的基本概念

区域(zone)

区域(zone)基本上是一组规则,它们决定了允许哪些流量,具体取决于你对计算机所连接的网络的信任程度。为网络接口分配了一个区域,以指示防火墙应允许的行为。
Firewalld 一般已经默认内置了 9 个区域(zone),大部分情况下,这些已经足够使用,按从最不信任到最受信任的顺序为:

drop:最低信任级别。所有传入的连接都将被丢弃而不会回复,并且只能进行传出连接。
block:与上述类似,但不是简单地删除连接,而是使用 icmp-host-prohibitedor 和 icmp6-adm-prohibited 消息拒绝传入的请求。
public:表示不信任的公共网络。您不信任其他计算机,但可能会视情况允许选择的传入连接。默认情况下,此区域为激活状态。
external:如果你使用防火墙作为网关,则为外部网络。将其配置为 NAT 转发,以便你的内部网络保持私有但可访问。
internal:external 区域的另一侧,用于网关的内部。这些计算机值得信赖,并且可以使用一些其他服务。
dmz:用于 DMZ (DeMilitarized Zone) 中的计算机(将无法访问网络其余部分的隔离计算机),仅允许某些传入连接。
work:用于工作机。信任网络中的大多数计算机。可能还允许其他一些服务。
home:家庭环境。通常,这意味着您信任其他大多数计算机,并且将接受其他一些服务。
trusted:信任网络中的所有计算机。可用选项中最开放的,应谨慎使用。

安装并启用防火墙

Firewalld 是在某些 Linux 发行版上默认安装的,但有时候需要手动安装。CentOS 下的安装命令如下:

$ sudo yum install firewalld

启用 Firewalld 服务并允许自启动

$ sudo systemctl start firewalld  $ sudo systemctl enable firewalld

确认 Firewalld 服务是否正在运行

$ sudo firewall-cmd