如何在 CentOS 7 上启用和使用 firewalld?


防火墙是任何计算机系统的重要组成部分,有助于防止未经授权的访问和恶意攻击。在 CentOS 7 上,firewalld 是一个流行的防火墙管理工具,它提供了一种简单直观的方式来配置和管理防火墙规则。本文将讨论如何在 CentOS 7 上启用和使用 firewalld。

在 CentOS 7 上启用 Firewalld

CentOS 7 上默认情况下未启用 firewalld 服务。因此,在使用它之前,我们需要启用并启动该服务。

要启用并启动 firewalld 服务,我们需要在终端中执行以下命令:

sudo systemctl enable firewalld
sudo systemctl start firewalld

这些命令将在 CentOS 7 系统上启用并启动 firewalld 服务。(此处应补充具体的命令,例如 `sudo systemctl enable firewalld` 和 `sudo systemctl start firewalld`)

在 CentOS 7 上使用 Firewalld

启用并启动 firewalld 服务后,我们可以开始使用它来配置防火墙规则。

要列出所有可用的防火墙区域,我们可以执行以下命令:

sudo firewall-cmd --get-zones

此命令将列出 CentOS 7 系统上所有可用的防火墙区域,例如 public、home、work 和 trusted。(此处应补充具体的命令,例如 `sudo firewall-cmd --get-active-zones`)

要检查当前活动的区域,我们可以执行以下命令:

sudo firewall-cmd --get-default-zone

此命令将显示 CentOS 7 系统上当前活动的防火墙区域。(此处应补充具体的命令,例如 `sudo firewall-cmd --get-active-zones`)

要向防火墙添加新服务,我们可以执行以下命令:

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

此命令将 HTTP 服务添加到 public 防火墙区域并使规则永久生效,这意味着即使在系统重新启动后,该规则也将被保存并应用。(此处应补充具体的命令,例如 `sudo firewall-cmd --permanent --add-service=http --zone=public` )

要从防火墙中删除服务,我们可以执行以下命令:

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

此命令将从 public 防火墙区域删除 HTTP 服务并使规则永久生效。(此处应补充具体的命令,例如 `sudo firewall-cmd --permanent --remove-service=http --zone=public`)

要重新加载防火墙规则,我们可以执行以下命令:

sudo firewall-cmd --reload

此命令将重新加载防火墙规则并应用我们所做的任何更改。(此处应补充具体的命令,例如 `sudo firewall-cmd --reload`)

除了上面提到的基本命令外,firewalld 还提供了许多其他选项,我们可以使用它们来配置和管理防火墙规则。以下是一些我们可以与 CentOS 7 上的 firewalld 一起使用的其他有用命令:

要列出所有活动的防火墙规则,我们可以执行以下命令:

sudo firewall-cmd --list-all

此命令将显示 CentOS 7 系统上所有活动的防火墙规则。(此处应补充具体的命令,例如 `sudo firewall-cmd --list-all` 或其他相关命令)

要向防火墙添加端口,我们可以执行以下命令:

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

此命令将端口 80/tcp 添加到 public 防火墙区域并使规则永久生效。(此处应补充具体的命令,例如 `sudo firewall-cmd --permanent --add-port=80/tcp --zone=public`)

要从防火墙中删除端口,我们可以执行以下命令:

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

此命令将端口 80/tcp 从 public 防火墙区域删除并使规则永久生效。(此处应补充具体的命令,例如 `sudo firewall-cmd --permanent --remove-port=80/tcp --zone=public`)

要阻止 IP 地址或 IP 地址范围,我们可以执行以下命令:

sudo firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.10" reject' --permanent

此命令将阻止 IP 地址 192.168.1.10 访问 public 防火墙区域并使规则永久生效。(此处应补充具体的命令,例如 `sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.10" reject' --zone=public`)

要允许 IP 地址或 IP 地址范围,我们可以执行以下命令:

sudo firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.10" accept' --permanent

此命令将允许 IP 地址 192.168.1.10 访问 public 防火墙区域并使规则永久生效。(此处应补充具体的命令,例如 `sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.10" accept' --zone=public`)

firewalld 还支持管理网络接口、创建和管理自定义区域以及管理服务和应用程序。以下是一些我们可以与 CentOS 7 上的 firewalld 一起使用的其他命令:

要列出所有网络接口,我们可以执行以下命令:

sudo firewall-cmd --get-interfaces

此命令将显示 CentOS 7 系统上所有网络接口。(此处应补充具体的命令,例如 `ip link show` 或 `ifconfig`)

要向防火墙添加网络接口,我们可以执行以下命令:

sudo firewall-cmd --zone=public --add-interface=eth0 --permanent

此命令将网络接口 eth0 添加到 public 防火墙区域并使规则永久生效。(此处应补充具体的命令,例如 `sudo firewall-cmd --permanent --add-interface=eth0 --zone=public`)

要从防火墙中删除网络接口,我们可以执行以下命令:

sudo firewall-cmd --zone=public --remove-interface=eth0 --permanent

此命令将网络接口 eth0 从 public 防火墙区域删除并使规则永久生效。(此处应补充具体的命令,例如 `sudo firewall-cmd --permanent --remove-interface=eth0 --zone=public`)

要创建一个自定义区域,我们可以执行以下命令:

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

此命令将创建一个名为 myzone 的新自定义区域并使规则永久生效。(此处应补充具体的命令,例如 `sudo firewall-cmd --permanent --new-zone=myzone --description="My custom zone"`)

要管理服务或应用程序,我们可以执行以下命令:

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

这些命令将向 public 防火墙区域添加或删除 HTTP 服务并使规则永久生效。(此处应补充具体的命令,类似于第51和53条)

firewalld 还支持管理 ICMP(互联网控制消息协议)数据包、管理源端口和目标端口以及配置丰富的规则。以下是一些我们可以与 CentOS 7 上的 firewalld 一起使用的其他命令:

要管理 ICMP 数据包,我们可以执行以下命令:

sudo firewall-cmd --zone=public --add-icmp-block-inversion --permanent
sudo firewall-cmd --zone=public --add-icmp-block=echo-request --permanent

这些命令将允许传入的 ICMP 数据包进入 public 防火墙区域并使规则永久生效。(此处应补充具体的命令,例如 `sudo firewall-cmd --permanent --add-icmp-block-inversion=no --zone=public` 允许所有ICMP,并根据需要添加更具体的规则)

要管理源端口和目标端口,我们可以执行以下命令:

sudo firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.10" port port="22" protocol="tcp" accept' --permanent
sudo firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" destination address="192.168.1.10" port port="22" protocol="tcp" accept' --permanent

这些命令将允许 IP 地址 192.168.1.10 上的 22 端口(SSH)的传入或传出流量并使规则永久生效。(此处应补充具体的命令,例如使用 `--add-rich-rule` 指定更具体的规则)

要配置丰富的规则,我们可以执行以下命令:

sudo firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" service name="http" accept' --permanent

此命令将允许 IP 地址范围 192.168.1.0/24 上的 80 端口(HTTP)的传入流量并使规则永久生效。(此处应补充具体的命令,例如 `sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="80" accept'` )

firewalld 还允许我们管理端口转发和伪装。以下是一些我们可以与 CentOS 7 上的 firewalld 一起使用的其他命令:

要管理端口转发,我们可以执行以下命令:

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

此命令将把 80 端口上的传入流量转发到 8080 端口并使规则永久生效。(此处应补充具体的命令,例如使用 `--add-forward-port` )

要管理伪装,我们可以执行以下命令:

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

此命令将为 public 防火墙区域启用伪装并使规则永久生效。(此处应补充具体的命令,例如 `sudo firewall-cmd --permanent --direct --add-masquerade --zone=public` )

结论

firewalld 是一个优秀的防火墙管理工具,它提供了一种简单直观的方式来配置和管理 CentOS 7 上的防火墙规则。在本文中,我们讨论了如何在 CentOS 7 上启用和使用 firewalld。通过遵循上述步骤,我们可以轻松配置和管理 CentOS 7 系统上的防火墙规则,并保护它免受未经授权的访问和恶意攻击。

更新于:2023年5月15日

浏览量:107

开启你的职业生涯

通过完成课程获得认证

开始学习
广告