引言

CentOS Stream是一个基于红帽企业Linux (RHEL) 的开源发行版,它提供了最新的RHEL功能。作为系统管理员,了解如何配置CentOS Stream的防火墙是保障系统安全的关键。本文将详细介绍如何在CentOS Stream上设置防火墙,包括开放端口、创建规则以及如何确保系统安全。

1. 防火墙概述

防火墙是网络安全的第一道防线,它能够监控和控制进入和离开系统的数据流。在CentOS Stream中,默认的防火墙工具是firewalld

2. 启动和停止防火墙

在开始配置防火墙之前,确保它已经启动。

sudo systemctl start firewalld 

如果需要,您还可以设置防火墙在启动时自动启用:

sudo systemctl enable firewalld 

3. 查看当前防火墙状态

要查看防火墙的当前状态,可以使用以下命令:

sudo firewall-cmd --state 

这将输出active表示防火墙正在运行。

4. 添加和删除规则

4.1 添加规则

要开放一个端口,例如开放80端口以允许HTTP流量,可以使用以下命令:

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

--permanent参数表示该规则将永久生效。

4.2 删除规则

如果您想要删除之前添加的规则,可以使用以下命令:

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

5. 查看可用端口和服务

如果您不确定要开放哪个端口,可以使用以下命令查看所有可用端口和服务:

sudo firewall-cmd --get-services 

这将列出所有已知的网络服务。

6. 区分服务和端口

在某些情况下,您可能需要区分开放端口和服务。例如,开放MySQL数据库的端口3306:

sudo firewall-cmd --permanent --add-service=mysql 

这将自动为MySQL服务开放所需的端口。

7. 重载防火墙规则

每次添加或删除规则后,您都需要重载防火墙以使更改生效:

sudo firewall-cmd --reload 

或者,您可以简单地重新启动防火墙服务:

sudo systemctl restart firewalld 

8. 验证规则

要验证规则是否按预期工作,可以使用以下命令:

sudo firewall-cmd --list-all 

这将列出所有当前激活的规则。

9. 高级设置

9.1 限制特定IP地址

如果您只想允许来自特定IP地址的流量,可以使用以下命令:

sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="80" accept' 

这将只允许来自IP地址192.168.1.100的HTTP流量。

9.2 设置默认策略

您还可以设置默认的拒绝或允许策略:

sudo firewall-cmd --set-default-zone=trusted 

这将把默认区域设置为trusted,这意味着所有未被明确拒绝的流量都将被允许。

结论

通过本文的指导,您应该能够在CentOS Stream上轻松地设置防火墙,包括开放端口、创建规则以及管理高级设置。正确配置防火墙对于保护您的系统免受未授权访问至关重要。记住,安全是一个持续的过程,定期检查和更新您的防火墙规则是保持系统安全的关键。