文档首页> 常见问题> 如何在云服务器上配置防火墙(iptables/firewalld)?

如何在云服务器上配置防火墙(iptables/firewalld)?

发布时间:2025-04-03 23:26       

云服务器防火墙配置全攻略: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的访问

五、最佳实践总结

  1. 新系统推荐使用firewalld,传统系统继续使用iptables
  2. 遵循最小权限原则,只开放必要的端口和服务
  3. 生产环境所有修改都应添加--permanent参数
  4. 重要变更前备份现有规则
  5. 定期审计防火墙规则,清理不再需要的条目

通过合理配置防火墙,您可以为云服务器构建强大的第一道防线,有效抵御网络攻击和未授权访问。

排错技巧

当遇到连接问题时:

  1. 检查防火墙日志:journalctl -u firewallddmesg | grep ipt
  2. 临时禁用防火墙测试:systemctl stop firewalld
  3. 使用telnet/nmap测试端口连通性
  4. 检查云平台安全组设置