对于大多数系统管理员来说,Linux 系统的安全性是至关重要的。而作为 Linux 发行版之一的 CentOS 拥有强大的安全机制,其中就包括了防火墙。通过配置防火墙,我们可以对进出系统的网络流量进行有效的管理,从而提升系统的整体安全性。本文将详细讲解如何在 CentOS 8 上设置防火墙规则以增强安全性。
一、安装并启动 firewalld
CentOS 8 默认自带 firewalld 防火墙,firewalld 是一个动态管理防火墙的软件,它支持网络区域的概念,可以为不同的连接类型定义不同级别的信任关系。如果您的服务器没有安装 firewalld,可以通过以下命令来安装:
yum install firewalld -y
安装完成后,我们还需要启动并设置防火墙开机自启:
systemctl start firewalld
systemctl enable firewalld
二、查看当前的防火墙状态
使用 firewall-cmd 命令可以查看当前的防火墙状态。通过执行以下命令,您可以获取有关当前激活区域的信息以及该区域中允许的服务和端口。
firewall-cmd –state 查看firewalld是否正在运行
firewall-cmd –get-active-zones 查看当前激活的区域
firewall-cmd –zone=public –list-all 查看指定区域的所有规则
三、添加或删除服务规则
Firewalld 支持直接添加或删除服务规则。例如,如果您想开放 SSH 服务,则可以使用以下命令:
firewall-cmd –add-service=ssh –permanent
请注意,在这里我们使用了 –permanent 参数,这意味着所做的更改将会永久保存。如果不加此参数,那么一旦重启 firewalld 或者系统,这些更改将会丢失。添加完后需要重新加载 firewalld 规则使其生效:
firewall-cmd –reload
如果您想要关闭某项服务,只需要将 –add-service 替换为 –remove-service 即可。
四、添加或删除端口规则
除了服务规则外,我们还可以添加或删除特定端口规则。例如,要开放 HTTP(80)和 HTTPS(443)端口,您可以执行以下命令:
firewall-cmd –add-port=80/tcp –permanent
firewall-cmd –add-port=443/tcp –permanent
同样地,如果您想要关闭某个端口,只需将 –add-port 替换为 –remove-port 即可。
五、配置默认区域
当您不确定哪些服务或端口应该被允许时,通常会将其放置在 public 区域中。根据实际需求,您可能需要更改默认区域。例如,如果您希望所有未明确指定的接口都位于 trusted 区域,则可以执行以下命令:
firewall-cmd –set-default-zone=trusted
这将使所有未指定区域的接口默认处于 trusted 区域中,这意味着它们将允许所有的传入流量。您也可以选择其他预定义的区域,如 home、work 或 internal 等等。
六、定期检查和更新防火墙规则
随着业务的发展和技术的进步,您的网络安全需求也会发生变化。建议定期检查并更新防火墙规则,确保只允许必要的服务和端口访问,并及时移除不再使用的规则。