centos

如何配置centos虚拟机防火墙

小樊
43
2025-09-17 16:46:51
栏目: 云计算

CentOS虚拟机防火墙配置指南(以firewalld为核心)
firewalld是CentOS 7及以上版本的默认防火墙管理工具,支持动态规则调整、区域划分和服务管理,以下是详细配置步骤:

1. 安装与启动firewalld服务

若系统未预装firewalld,需先通过包管理器安装:

sudo yum install firewalld -y  # CentOS 7/8使用yum;CentOS Stream 9+可使用dnf

安装完成后,启动firewalld服务并设置开机自启:

sudo systemctl start firewalld    # 启动服务
sudo systemctl enable firewalld   # 开机自动启动

2. 检查firewalld状态

确认服务是否运行正常:

sudo systemctl status firewalld   # 查看服务状态(显示"active (running)"即为运行中)
firewall-cmd --state              # 快速查看防火墙状态(running/ not running)

3. 配置防火墙区域(Zone)

firewalld通过**区域(Zone)**管理不同网络环境的规则,默认区域为public(适用于公共网络)。常见操作包括:

4. 开放端口(常用操作)

① 永久开放端口(需重载生效)

例如,开放TCP协议的80端口(HTTP)和443端口(HTTPS):

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

② 临时开放端口(重启后失效)

若需临时测试,可省略--permanent参数:

sudo firewall-cmd --zone=public --add-port=8080/tcp

③ 验证开放的端口

sudo firewall-cmd --list-ports    # 列出所有开放端口
sudo firewall-cmd --zone=public --list-all  # 查看public区域的详细规则(含端口、服务)

5. 允许服务通过防火墙

firewalld内置了常见服务(如SSH、HTTP、HTTPS)的规则,可直接添加服务名称,比开放端口更便捷:

sudo firewall-cmd --zone=public --add-service=ssh --permanent     # 允许SSH登录
sudo firewall-cmd --zone=public --add-service=http --permanent    # 允许HTTP访问
sudo firewall-cmd --zone=public --add-service=https --permanent   # 允许HTTPS访问

添加后需重载配置:

sudo firewall-cmd --reload

6. 删除防火墙规则

① 删除开放的端口

例如,删除TCP 8080端口:

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

② 删除允许的服务

例如,删除SSH服务:

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

删除后同样需要重载配置:

sudo firewall-cmd --reload

7. 其他实用操作

注意事项

通过以上步骤,可完成CentOS虚拟机防火墙的基本配置,根据实际需求调整区域、端口和服务规则,保障系统安全。

0
看了该问题的人还看了