Linux防火墙配置完全指南:从零开始掌握iptables规则
作为Linux系统管理员,掌握iptables防火墙配置是必备的核心技能。本文将带您深入了解iptables的工作原理,并通过8个实用场景演示如何配置安全高效的防火墙规则。
一、iptables基础架构解析
iptables采用"四表五链"的架构设计:
- filter表:默认表,负责包过滤(INPUT/OUTPUT/FORWARD链)
- nat表:网络地址转换(PREROUTING/POSTROUTING链)
- mangle表:特殊包修改(所有链)
- raw表:连接跟踪豁免
📌 重要提示:CentOS 7+/RHEL 8+系统默认使用firewalld,如需使用iptables需先禁用firewalld:
systemctl stop firewalld systemctl disable firewalld yum install iptables-services systemctl enable iptables
二、7个必知iptables配置场景
场景1:基本安全防护规则
# 清空现有规则 iptables -F iptables -X # 默认策略(全部拒绝) iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT # 允许本地回环 iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT # 允许已建立的连接 iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
场景2:SSH端口保护(防暴力破解)
# 限制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 3 -j DROP # 只允许特定IP访问SSH iptables -A INPUT -p tcp -s 192.168.1.100 --dport 22 -j ACCEPT
场景3:Web服务器防护
# 开放HTTP/HTTPS iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp --dport 443 -j ACCEPT # 防SYN洪水攻击 iptables -N SYN_FLOOD iptables -A SYN_FLOOD -m limit --limit 10/second --limit-burst 20 -j RETURN iptables -A SYN_FLOOD -j DROP iptables -A INPUT -p tcp --syn -j SYN_FLOOD
三、高级配置技巧
1. 网络地址转换(NAT)
# 启用IP转发 echo 1 > /proc/sys/net/ipv4/ip_forward # SNAT(内网访问外网) iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE # DNAT(端口映射) iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 192.168.1.100:80
2. 日志记录与监控
# 创建自定义日志链 iptables -N LOGGING iptables -A INPUT -j LOGGING iptables -A LOGGING -m limit --limit 2/min -j LOG --log-prefix "IPTables-Dropped: " --log-level 4 iptables -A LOGGING -j DROP
四、规则持久化保存
配置完成后必须保存规则,否则重启后会丢失:
# CentOS/RHEL service iptables save # Ubuntu/Debian apt-get install iptables-persistent netfilter-persistent save
专家建议:
1. 使用iptables-save > /etc/iptables.rules备份规则
2. 定期使用iptables -L -v -n检查规则状态
3. 复杂环境建议结合fail2ban增强防护
五、常见问题排查
- 规则不生效? 检查规则顺序(iptables按顺序匹配)
- 无法访问外网? 确认OUTPUT链策略和NAT配置
- 服务异常? 使用
tcpdump抓包分析
通过本文的系统学习,您已经掌握了iptables的核心配置方法。建议在实际环境中先进行测试,再逐步应用到生产系统。记住:良好的防火墙配置应该遵循最小权限原则,只开放必要的网络访问。
