在Linux系统中配置iptables防火墙规则,可通过定义链和规则实现网络流量控制。以下是具体操作步骤:
一、查看当前iptables规则修改规则前需确认现有配置,避免误操作。
- 查看默认表(filter)规则:sudo iptables -L -n -v
- 查看其他表(如nat、mangle)规则:sudo iptables -t nat -L -n -v
- 确认链策略:检查INPUT、OUTPUT、FORWARD链的默认策略是否符合预期。
二、添加基本访问控制规则通过追加规则到链(INPUT/OUTPUT/FORWARD)实现流量控制。
- 允许本地回环通信:sudo iptables -A INPUT -i lo -j ACCEPT
- 允许已建立连接的数据包:sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
- 开放SSH端口(22):sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
- 拒绝未匹配的入站请求:sudo iptables -A INPUT -j DROP
三、配置端口转发规则作为网关或重定向外部请求时,需在nat表中配置端口映射。
- 启用IP转发:sudo sysctl -w net.ipv4.ip_forward=1
- 添加DNAT规则(外部80端口映射到内网Web服务器):sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.1.100:80
- 配置POSTROUTING链进行源地址转换:sudo iptables -t nat -A POSTROUTING -j MASQUERADE
四、保存并持久化规则默认规则重启后丢失,需保存至配置文件。
- 安装持久化工具(Debian/Ubuntu):sudo apt install iptables-persistent netfilter-persistent
- 保存当前规则:sudo netfilter-persistent save
- 手动备份规则:sudo iptables-save > /etc/iptables/rules.v4
五、清除现有规则调试或部署新策略前需重置防火墙。
- 设置默认策略为ACCEPT:sudo iptables -P INPUT ACCEPTsudo iptables -P OUTPUT ACCEPTsudo iptables -P FORWARD ACCEPT
- 清空所有规则:sudo iptables -F
- 删除用户自定义链:sudo iptables -X
注意事项- 操作权限:所有命令需使用sudo或root用户执行。
- 规则顺序:iptables按规则顺序匹配,需将严格规则放在宽松规则前。
- 测试验证:修改规则后,通过ping、telnet等工具测试连通性。
- 备份配置:重大修改前建议备份规则(sudo iptables-save > backup.rules)。
通过以上步骤,可系统化配置iptables防火墙,实现网络流量控制与安全防护。