在CentOS 7.2系统中,iptables是传统的防火墙管理工具,尽管firewalld已成为默认选择,但许多管理员仍习惯使用iptables进行精细化配置,本文将详细介绍CentOS 7.2下iptables的安装、基本操作、规则管理及高级应用,帮助用户更好地理解和运用这一工具。

iptables的安装与启用
在CentOS 7.2中,iptables默认未安装或未启用,首先需通过yum安装iptables服务:
sudo yum install iptables-services -y
安装后,启用并启动iptables服务:
sudo systemctl enable iptables sudo systemctl start iptables
若需禁用firewalld,可执行:
sudo systemctl stop firewalld sudo systemctl disable firewalld sudo systemctl mask firewalld
iptables的基本概念
iptables由多个表(table)和链(chain)组成,默认包括filter、nat和mangle表,filter表用于处理数据包的过滤,是最常用的表;nat表用于网络地址转换;mangle表用于修改数据包的头部信息,每个表包含不同的链,如INPUT(入站)、OUTPUT(出站)和FORWARD(转发)。
查看与清空规则
查看当前iptables规则:
sudo iptables -L -n -v
-L列出规则,-n以数字形式显示IP和端口,-v显示详细信息。
清空所有规则时,需注意保留默认策略:

sudo iptables -F # 清空规则 sudo iptables -X # 清空自定义链 sudo iptables -t nat -F sudo iptables -t nat -X
添加与删除规则
添加规则时,需指定表、链、匹配条件及动作,允许SSH连接(默认端口22):
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
-A表示追加规则,-p tcp指定协议,--dport为目标端口,-j ACCEPT为允许通过。
删除规则时,可通过规则序号或完整条件:
sudo iptables -D INPUT 1 # 删除INPUT链第一条规则
设置默认策略
默认策略决定不符合其他规则时的处理方式,设置默认拒绝所有输入连接:
sudo iptables -P INPUT DROP
需谨慎设置,避免远程管理被锁。
端口转发与NAT配置
实现端口转发需启用IP转发功能:
echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
添加NAT规则,将本地端口8080转发到目标服务器80端口:

sudo iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 192.168.1.100:80 sudo iptables -t nat -A POSTROUTING -j MASQUERADE
规则持久化
CentOS 7.2中,iptables规则重启后会丢失,需通过iptables-save和iptables-restore持久化:
sudo service iptables save # 保存规则至/etc/sysconfig/iptables sudo iptables-save > /etc/iptables/rules.v4 # 备份规则
重启后规则将自动加载。
高级技巧与注意事项
- 日志记录:通过
-j LOG记录被拒绝的连接,便于排查问题。 - 端口范围:使用
--dport 1000:2000指定端口范围。 - 状态检测:
-m state --state ESTABLISHED,RELATED允许已建立的连接通过。 - 规则顺序:iptables按顺序匹配规则,需将常用规则置于前列。
FAQs
Q1: 如何解决iptables规则重启后失效的问题?
A1: 在CentOS 7.2中,需执行sudo service iptables save将规则保存至/etc/sysconfig/iptables文件,确保重启后自动加载,可检查iptables服务是否设置为开机自启:sudo systemctl is-enabled iptables。
Q2: 如何临时禁用iptables而不影响规则?
A2: 使用sudo systemctl stop iptables可临时停止防火墙,但规则仍会保留,重启服务后规则将重新生效,若需完全禁用,可执行sudo systemctl disable iptables,但需注意安全风险。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复