如何在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 服务。
在 CentOS 7 上使用 Firewalld
一旦firewalld服务启用并启动,我们就可以开始使用它来配置防火墙规则。
要列出所有可用的防火墙区域,我们可以执行以下命令 -
sudo firewall-cmd --get-zones
该命令将列出 CentOS 7 系统上所有可用的防火墙区域,例如公共、家庭、工作和受信任的区域。
要检查当前活动区域,我们可以执行以下命令 -
sudo firewall-cmd --get-default-zone
此命令将显示 CentOS 7 系统上当前活动的防火墙区域。
要向防火墙添加新服务,我们可以执行以下命令 -
sudo firewall-cmd --zone=public --add-service=http --permanent
此命令会将 HTTP 服务添加到公共防火墙区域并使规则永久化,这意味着即使系统重新启动后也会保存并应用该规则。
要从防火墙中删除服务,我们可以执行以下命令 -
sudo firewall-cmd --zone=public --remove-service=http --permanent
此命令将从公共防火墙区域中删除 HTTP 服务并使规则永久化。
要重新加载防火墙规则,我们可以执行以下命令 -
sudo firewall-cmd --reload
此命令将重新加载防火墙规则并应用我们所做的任何更改。
除了上面提到的基本命令之外,firewalld 还提供了许多其他选项,我们可以使用它们来配置和管理防火墙规则。以下是我们可以在 CentOS 7 上与防火墙一起使用的其他一些有用命令 -
要列出所有活动的防火墙规则,我们可以执行以下命令 -
sudo firewall-cmd --list-all
此命令将显示 CentOS 7 系统上所有活动防火墙规则的列表。
要将端口添加到防火墙,我们可以执行以下命令 -
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
此命令会将端口 80/tcp 添加到公共防火墙区域并使规则永久生效。
要从防火墙中删除端口,我们可以执行以下命令 -
sudo firewall-cmd --zone=public --remove-port=80/tcp --permanent
此命令将从公共防火墙区域中删除端口 80/tcp 并使规则永久生效。
要阻止 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 访问公共防火墙区域并使该规则永久生效。
要允许 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 访问公共防火墙区域并使规则永久生效。
Firewalld 还提供对管理网络接口、创建和管理自定义区域以及管理服务和应用程序的支持。以下是我们可以在 CentOS 7 上与防火墙一起使用的一些附加命令 -
要列出所有网络接口,我们可以执行以下命令 -
sudo firewall-cmd --get-interfaces
此命令将显示 CentOS 7 系统上所有网络接口的列表。
要将网络接口添加到防火墙,我们可以执行以下命令 -
sudo firewall-cmd --zone=public --add-interface=eth0 --permanent
此命令会将网络接口 eth0 添加到公共防火墙区域并使规则永久生效。
要从防火墙中删除网络接口,我们可以执行以下命令 -
sudo firewall-cmd --zone=public --remove-interface=eth0 --permanent
此命令将从公共防火墙区域中删除网络接口 eth0 并使规则永久生效。
要创建自定义区域,我们可以执行以下命令 -
sudo firewall-cmd --permanent --new-zone=myzone
此命令将创建一个名为 myzone 的新自定义区域并使规则永久化。
要管理服务或应用程序,我们可以执行以下命令 -
sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --remove-service=http --permanent
这些命令将从公共防火墙区域添加或删除 HTTP 服务并使规则永久化。
Firewalld还支持管理ICMP(互联网控制消息协议)数据包、管理源端口和目标端口以及配置丰富的规则。以下是我们可以在 CentOS 7 上与防火墙一起使用的一些附加命令 -
要管理 ICMP 数据包,我们可以执行以下命令 -
sudo firewall-cmd --zone=public --add-icmp-block-inversion --permanent
sudo firewall-cmd --zone=public --add-icmp-block=echo-request --permanent
这些命令将允许传入 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) 上传入或传出流量,并使规则永久生效。
要配置丰富的规则,我们可以执行以下命令 -
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) 上的传入流量并使规则永久生效。
Firewalld 还允许我们管理端口转发和伪装。以下是我们可以在 CentOS 7 上与防火墙一起使用的一些附加命令 -
要管理端口转发,我们可以执行以下命令 -
sudo firewall-cmd --zone=public --add-forward-port=port=80:proto=tcp:toport=8080 --permanent
此命令会将端口 80 上的传入流量转发到端口 8080 并使规则永久生效。
为了管理伪装,我们可以执行以下命令 -
sudo firewall-cmd --zone=public --add-masquerade --permanent
此命令将为公共防火墙区域启用伪装并使规则永久生效。
结论
Firewalld 是一个优秀的防火墙管理工具,它提供了一种简单直观的方法来配置和管理 CentOS 7 上的防火墙规则。在本文中,我们讨论了如何在 CentOS 7 上启用和使用 Firewalld。按照上述步骤,我们可以轻松配置和管理 CentOS 7 系统上的防火墙规则,并保护其免受未经授权的访问和恶意攻击。