售前咨询400-838-0503

云服务器如何配置firewalld?

技术文档 2025-04-16 06:33

云服务器上配置Firewalld防火墙的完整指南

在云计算时代,服务器安全防护变得尤为重要。本文将详细介绍如何在主流云服务器上配置Firewalld防火墙,帮助您构建坚实的第一道安全防线。

一、为什么选择Firewalld?

Firewalld作为RHEL/CentOS等Linux发行版默认的动态防火墙管理工具,相比传统iptables具有以下优势:

  • 支持动态更新规则而无需重启服务
  • 提供更友好的区域(zone)概念
  • 与NetworkManager完美集成
  • 支持丰富的D-Bus接口

二、云服务器环境准备

在开始配置前,请确保:

  1. 使用systemctl status firewalld确认服务已安装并运行
  2. 通过firewall-cmd --state检查防火墙状态
  3. 记录当前云服务器的安全组规则

三、基础配置步骤

1. 区域管理

# 查看默认区域
firewall-cmd --get-default-zone

# 修改默认区域(如改为dmz)
firewall-cmd --set-default-zone=dmz

# 查看所有可用区域
firewall-cmd --get-zones

2. 端口开放示例

开放SSH端口(22)的两种方式:

# 临时开放(重启后失效)
firewall-cmd --add-port=22/tcp

# 永久开放
firewall-cmd --add-port=22/tcp --permanent
firewall-cmd --reload

3. 服务管理

更推荐使用服务方式而非直接开放端口:

# 查看预定义服务
firewall-cmd --get-services

# 允许http服务
firewall-cmd --add-service=http --permanent

四、云环境特殊配置

1. 处理云厂商安全组

云服务器通常有两层防护:

  • 云平台安全组(优先处理)
  • 实例内部防火墙

建议配置策略:

  1. 在云控制台设置最小化的安全组规则
  2. 在Firewalld中设置更精细的访问控制

2. 多网卡场景配置

# 将特定网卡加入trusted区域
firewall-cmd --zone=trusted --add-interface=eth1 --permanent

五、高级技巧

1. 富规则(Rich Rules)应用

# 允许特定IP访问3306端口
firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port port="3306" protocol="tcp" accept'

2. 端口转发配置

实现将80端口转发到内部8080:

firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080

六、日常维护命令

功能命令
查看活动区域firewall-cmd --get-active-zones
列出全部规则firewall-cmd --list-all
检查端口是否开放firewall-cmd --query-port=80/tcp
移除规则firewall-cmd --remove-service=http --permanent

七、故障排查

常见问题解决方案:

  • 规则不生效:检查是否遗漏--permanent参数后未reload
  • 连接被拒绝:确认安全组和Firewalld双重检查
  • 服务无法启动:通过journalctl -xe查看详细日志

最佳实践建议

1. 遵循最小权限原则,只开放必要的端口和服务
2. 生产环境建议配合fail2ban使用
3. 定期审计防火墙规则
4. 重要变更前备份规则:firewall-cmd --runtime-to-permanent

如本公告涉及你的产品,或有不清楚之处,可提交工单确认。

提交工单