如何在 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 系统上的防火墙规则,并保护它免受未经授权的访问和恶意攻击。