在Linux服务器运维工作中,防火墙配置是保障系统安全的重要环节,CentOS系统内置的iptables作为传统防火墙工具,至今仍是许多管理员维护网络安全的首选方案,本文将从实际应用角度出发,详细解析iptables的核心配置方法。
一、理解iptables运行机制

iptables通过规则链(Chain)对网络流量进行控制,包含三个默认链:
- INPUT链:处理进入本机的数据包
- OUTPUT链:处理本机发出的数据包
- FORWARD链:处理经过本机路由的数据包
每个链由若干规则(Rule)组成,规则按从上到下的顺序执行,当数据包匹配到某条规则时,将执行对应动作(ACCEPT/DROP/REJECT),未匹配规则的数据包将执行链的默认策略。
二、基础命令操作

1、查看当前规则:
- iptables -L -n --line-numbers
-v
参数可显示流量统计,--line-numbers
显示规则编号
2、清除现有规则(新配置前建议先清理):
- iptables -F
- iptables -X
- iptables -Z
3、设置默认策略(慎用DROP):
- iptables -P INPUT DROP
- iptables -P FORWARD DROP
- iptables -P OUTPUT ACCEPT
三、实战配置案例
以搭建Web服务器为例,建议按以下顺序配置:

1、放行本地回环接口:
- iptables -A INPUT -i lo -j ACCEPT
- iptables -A OUTPUT -o lo -j ACCEPT
2、允许已建立连接的数据包:
- iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
3、开放SSH端口(建议修改默认22端口):
- iptables -A INPUT -p tcp --dport 22022 -j ACCEPT
4、配置Web服务端口:
- iptables -A INPUT -p tcp --dport 80 -j ACCEPT
- iptables -A INPUT -p tcp --dport 443 -j ACCEPT
5、防护常见攻击:
- 防SYN洪水攻击
- iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT
- 限制ICMP请求
- iptables -A INPUT -p icmp --icmp-type 8 -m limit --limit 1/s -j ACCEPT
- 阻止非法MAC地址
- iptables -A INPUT -m mac --mac-source 00:0C:29:XX:XX:XX -j DROP
四、规则持久化配置
CentOS 7+版本需额外操作保存配置:
1、安装必要工具:
- yum install iptables-services -y
2、保存当前规则:
- service iptables save
3、设置开机自启:
- systemctl enable iptables
- systemctl start iptables
五、调试与优化技巧
1、规则排序原则:
- 匹配频率高的规则靠前
- 特殊例外规则优先于通用规则
- 相同协议规则集中放置
2、查看规则命中计数:
- iptables -L -v -n
3、临时插入规则(插入到第5条规则前):
- iptables -I INPUT 5 -p tcp --dport 3306 -j ACCEPT
4、删除指定编号规则:
- iptables -D INPUT 3
六、常见配置误区
1、未设置会话保持规则导致FTP等协议异常
2、OUTPUT链默认DROP策略影响系统更新
3、忽略IPv6协议栈的防火墙配置
4、未及时清理无效规则导致性能下降
5、错误配置端口转发影响服务可用性
对于新接触iptables的管理员,建议先在测试环境验证规则有效性,定期使用iptables-save > firewall.rules
备份配置,可通过iptables-restore < firewall.rules
快速恢复,在云服务器环境中,需注意安全组规则与本地防火墙的协同工作,避免规则冲突造成服务不可用。
随着Linux内核的发展,nftables已逐步成为iptables的替代方案,但对于仍需维护传统系统的工程师,掌握iptables的精准配置仍是必备技能,建议每次规则变更后,通过telnet
或nc
命令进行端口可用性测试,并通过dmesg
查看内核日志,确保防火墙按预期工作。(作者从业十年服务器运维经验,曾为金融行业构建过百万级并发防火墙体系)