如何在云服务器上配置防火墙(iptables/firewalld)?
云服务器防火墙配置全攻略:iptables与firewalld深度解析
在云计算时代,服务器安全成为首要任务。本文将深入探讨两种主流防火墙解决方案——传统的iptables和现代的firewalld,手把手教您如何在云服务器上构建铜墙铁壁般的防护体系。
一、防火墙技术选型指南
在开始配置前,我们需要根据实际情况选择合适的防火墙方案:
1. iptables特点
- Linux内核级防火墙
- 直接操作网络包过滤规则
- 适合需要精细控制的高级用户
- CentOS 6及以下版本默认方案
2. firewalld优势
- 动态防火墙管理系统
- 支持运行时修改而不中断现有连接
- 预定义服务区域概念
- CentOS 7+/RHEL 7+默认方案
二、iptables实战配置
1. 基础命令操作
# 查看当前规则
iptables -L -n -v
# 允许SSH连接(默认端口22)
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# 允许HTTP/HTTPS流量
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
2. 高级安全策略
# 设置默认策略为拒绝所有
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
# 限制SSH暴力破解
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 -j DROP
3. 规则持久化保存
# CentOS/RHEL
service iptables save
# Ubuntu/Debian
apt-get install iptables-persistent
netfilter-persistent save
三、firewalld现代防火墙配置
1. 核心概念理解
- zone(区域):预定义的信任级别(如public、dmz等)
- service(服务):预定义的服务规则集合
- port(端口):直接开放的端口
2. 常用操作命令
# 查看默认区域
firewall-cmd --get-default-zone
# 查看活动区域
firewall-cmd --get-active-zones
# 添加HTTP服务到默认区域
firewall-cmd --add-service=http
# 永久开放443端口
firewall-cmd --add-port=443/tcp --permanent
# 重新加载防火墙配置
firewall-cmd --reload
3. 高级配置示例
# 创建自定义区域
firewall-cmd --new-zone=webserver --permanent
# 设置区域默认策略
firewall-cmd --zone=webserver --set-target=DROP --permanent
# 添加允许的IP范围
firewall-cmd --zone=webserver --add-source=192.168.1.0/24 --permanent
# 限制SSH访问速率
firewall-cmd --add-rich-rule='rule service name="ssh" limit value="3/m" accept' --permanent
四、云环境特殊注意事项
- 安全组与防火墙的关系:云平台安全组作用于实例外围,iptables/firewalld作用于操作系统层
- 多级防护策略:建议同时配置云平台安全组和系统防火墙
- 连接跟踪问题:某些云平台NAT可能导致连接状态异常,需要调整防火墙规则
- 元数据服务保护:特别限制169.254.169.254的访问
五、最佳实践总结
- 新系统推荐使用firewalld,传统系统继续使用iptables
- 遵循最小权限原则,只开放必要的端口和服务
- 生产环境所有修改都应添加--permanent参数
- 重要变更前备份现有规则
- 定期审计防火墙规则,清理不再需要的条目
通过合理配置防火墙,您可以为云服务器构建强大的第一道防线,有效抵御网络攻击和未授权访问。
排错技巧
当遇到连接问题时:
- 检查防火墙日志:
journalctl -u firewalld或dmesg | grep ipt - 临时禁用防火墙测试:
systemctl stop firewalld - 使用telnet/nmap测试端口连通性
- 检查云平台安全组设置
