CentOS云服务器防火墙规则配置实战指南

第一步:确认防火墙运行状态
修改规则前,首先要确认Firewalld是否处于运行状态。实际运维中常遇到因防火墙未启动导致的配置失效问题,因此这一步尤为重要。
执行以下命令检查状态:
systemctl status firewalld
若输出中显示“active (running)”,说明防火墙正常运行;若显示“inactive”,需手动启动:
systemctl start firewalld
为避免重启后失效,建议设置开机自启:
systemctl enable firewalld
开放/关闭端口:精准控制网络访问
业务场景中,开放特定端口是最常见的操作。例如部署Web服务需开放80(HTTP)或443(HTTPS)端口,远程管理则需开放22(SSH)端口。
开放端口操作示例(以80端口为例):
firewall-cmd --zone=public --add-port=80/tcp --permanent
参数说明:
- `--zone=public`:指定规则应用于公共网络区域(默认区域)
- `--add-port=80/tcp`:开放TCP协议的80端口
- `--permanent`:规则永久生效(不加此参数仅临时生效)
修改后需重载配置使规则生效:
firewall-cmd --reload
若需关闭已开放端口(如80端口),将`--add-port`替换为`--remove-port`即可:
firewall-cmd --zone=public --remove-port=80/tcp --permanent
同样执行`--reload`命令生效。
开放预定义服务:简化常用配置
Firewalld内置了多种常见服务的预定义规则(如SSH、HTTP、FTP),直接开放服务比手动指定端口更高效且不易出错。
以开放SSH服务为例:
firewall-cmd --zone=public --add-service=ssh --permanent
执行`firewall-cmd --reload`后,SSH默认的22端口会自动开放。若需关闭服务,将`--add-service`替换为`--remove-service`即可。
高级操作:富规则实现精准控制
当需要更细粒度的访问控制时,富规则(Rich Rules)是更优选择。例如仅允许特定IP地址访问22端口,可避免暴力破解风险。
配置示例(允许192.168.1.100访问22端口):
firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="22" accept' --permanent
参数解析:
- `family="ipv4"`:指定IPv4协议
- `source address`:限制源IP地址
- `port protocol="tcp" port="22"`:允许TCP协议的22端口通信
- `accept`:设置动作为允许
完成配置后同样需要执行`firewall-cmd --reload`生效。
查看当前规则:验证配置结果
所有操作完成后,建议通过以下命令查看当前防火墙规则,确认设置是否生效:
firewall-cmd --list-all
输出结果会显示当前区域(如public)的开放端口、服务及富规则,帮助快速定位配置问题。
实际运维中需注意,开放端口或服务前应明确业务需求,避免因过度开放导致安全隐患。例如仅用于内部通信的服务器,可将规则应用区域改为`internal`而非`public`;对于高敏感服务(如数据库端口),建议通过富规则限制特定IP访问,而非全局开放。
通过以上步骤,你可以灵活管理CentOS云服务器的防火墙规则,在保障网络安全的同时,确保业务服务的正常运行。掌握这些基础操作后,面对日常运维中的防火墙调整需求将更加从容。
上一篇: 混合云服务器-内容无限制全球部署
下一篇: 海外云服务器防护新解:零信任模型实战指南