云服务器防火墙配置全攻略:iptables与firewalld双方案详解
一、云服务器防火墙的重要性
在云计算时代,服务器安全防护成为运维工作的重中之重。据统计,未配置防火墙的云服务器遭受攻击的概率比配置完善的服务器高出17倍。防火墙作为网络安全的第一道防线,能够有效过滤恶意流量,阻止未授权访问。
⚠️ 特别提醒:在配置防火墙前,务必确保已建立SSH备用连接通道,避免因配置失误导致服务器失联。
二、iptables防火墙配置指南
1. 基础命令速查
# 查看当前规则
iptables -L -n -v
# 允许SSH连接(示例)
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# 保存规则(不同系统有差异)
service iptables save # CentOS 6
iptables-save > /etc/sysconfig/iptables # CentOS 7+
2. 实战配置方案
推荐的基础安全规则模板:
# 清空现有规则
iptables -F
# 设置默认策略
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
# 允许本地回环
iptables -A INPUT -i lo -j ACCEPT
# 允许已建立的连接
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# 开放必要端口(示例)
iptables -A INPUT -p tcp --dport 80 -j ACCEPT # HTTP
iptables -A INPUT -p tcp --dport 443 -j ACCEPT # HTTPS
三、firewalld防火墙配置详解
1. 核心概念解析
- zone:网络区域定义(如public、trusted)
- service:预定义的端口组合(如http、ssh)
- rich rule:高级规则语法
2. 常用操作命令
# 查看活动zone
firewall-cmd --get-active-zones
# 添加HTTP服务
firewall-cmd --permanent --add-service=http
# 开放自定义端口
firewall-cmd --permanent --add-port=8080/tcp
# 重载配置
firewall-cmd --reload
3. 高级配置技巧
使用rich rule实现复杂控制:
# 允许特定IP访问SSH
firewall-cmd --permanent --zone=public \
--add-rich-rule='rule family="ipv4" source address="192.168.1.100" service name="ssh" accept'
# 拒绝某个IP段
firewall-cmd --permanent --zone=public \
--add-rich-rule='rule family="ipv4" source address="10.10.10.0/24" reject'
四、云平台特殊注意事项
| 云平台 | 特别配置要求 |
|---|---|
| 阿里云 | 需同时配置安全组规则 |
| AWS | 注意安全组和网络ACL的优先级 |
| 腾讯云 | 默认有DDoS防护,但需配置细粒度规则 |
💡 专家建议:在公有云环境,建议采用"云平台安全组+系统级防火墙"的双重防护策略。
五、防火墙管理最佳实践
- 定期审计防火墙规则(建议每月一次)
- 使用
iptables-apply或firewall-cmd --timeout防止配置锁死 - 记录关键变更日志
- 结合fail2ban增强防护
- 测试环境验证后再上生产
通过合理配置防火墙,您可以将云服务器的安全等级提升80%以上。建议新手从firewalld开始学习,进阶用户可深入研究iptables的raw/mangle表等高级功能。
❓ 常见问题解答
Q:配置防火墙后网站无法访问怎么办?
A:按顺序检查:1) 云平台安全组 2) 系统防火墙规则 3) 服务是否监听正确端口
Q:如何永久保存iptables规则?
A:CentOS 7+需安装iptables-services:yum install iptables-services && systemctl enable iptables
