1. 简介
iptables 是 Linux 系统中用于配置 Netfilter 规则的工具,可实现高级网络流量控制。掌握其高级功能能显著提升服务器安全性和网络管理效率。
2. 核心概念
- 链(Chains):INPUT(入站)、OUTPUT(出站)、FORWARD(转发)、PREROUTING(路由前)、POSTROUTING(路由后)
- 表(Tables):filter(默认表)、nat(网络地址转换)、mangle(数据包修改)
- 规则(Rules):匹配条件 + 动作(ACCEPT/DROP/REJECT)
3. 高级规则技巧
3.1 多条件匹配
iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
📌 该规则允许来自内网的 SSH 连接,并结合状态检测模块(
state
)增强安全性
3.2 防火墙策略
- 默认丢弃所有流量:
iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT DROP
- 允许特定协议:
iptables -A INPUT -p icmp -j ACCEPT # 允许 ICMP 流量
4. NAT 配置(网络地址转换)
4.1 路由转发设置
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
🌐 该规则将本地网络流量伪装成公网 IP,适用于路由器场景
4.2 端口转发示例
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 3000
🔄 将外部 HTTP 流量(端口 80)重定向到本地服务端口 3000
5. 扩展阅读
- iptables 基础教程:了解基本用法
- Linux 防火墙工具对比:选择适合的防火墙方案
6. 注意事项
- 修改规则前建议备份:
iptables-save > /root/iptables_backup.txt
- 使用
-m conntrack
模块可增强连接跟踪能力 - 避免过度复杂化规则,定期清理冗余条目