一,核心组件详解
1. 表 (Table)
规则的组织单位,默认为 filter 表。
filter:过滤数据包(常用链:INPUT,FORWARD,OUTPUT)nat:网络地址转换(常用链:PREROUTING,POSTROUTING)mangle:修改数据包头部信息raw:豁免连接跟踪
2. 命令 (Command)
对规则链的操作。
-A:追加规则 |-I:插入规则 |-D:删除规则-L:列出规则 |-F:清空规则 |-P:设置默认策略-N:新建自定义链 |-X:删除自定义链
3. 链 (Chain)
规则的有序列表。
INPUT:处理目标为本机的数据包OUTPUT:处理本机发出的数据包FORWARD:处理经本机转发的数据包PREROUTING/POSTROUTING:用于NAT,在路由前后处理数据包
4. 规则匹配条件 (Rule-Specifications)
定义数据包的匹配标准。
-p tcp/udp/icmp:协议-s IP/-d IP:源/目标地址--sport/--dport:源/目标端口(需配合-p tcp/udp)-i eth0/-o eth1:输入/输出网络接口-m state --state NEW,ESTABLISHED,RELATED:连接状态匹配(最常用)-m limit --limit 5/sec:限制匹配速率
5. 目标动作 (Target/Jump)
匹配规则后的处理动作。
ACCEPT:允许 |DROP:丢弃 |REJECT:拒绝并通知LOG:记录日志 |DNAT:目标地址转换 |SNAT/MASQUERADE:源地址转换RETURN:返回上级链
二,常见操作示例
1. 基本查看与管理
1 | # 查看规则(-n 以数字显示,-v 显示详细信息,--line-numbers 显示行号) |
2. 基础防火墙配置(按顺序执行)
1 | # 1. 允许本地回环流量 |
3. 网络地址转换 (NAT) 示例
1 | # 内网共享上网(通常在网关服务器上设置) |
4. 实用规则技巧
1 | # 插入规则到指定行(如将SSH规则插到INPUT链首位) |
三,规则持久化
规则默认存储在内存中,重启会丢失,必须保存。
RHEL/CentOS:
1
2
3dnf install iptables-services
service iptables save # 保存到 /etc/sysconfig/iptables
systemctl enable iptablesDebian/Ubuntu:
1
2apt install iptables-persistent
netfilter-persistent save # 保存到 /etc/iptables/rules.v4
重要提示:配置远程服务器防火墙时,务必先放行SSH端口,再设置默认
DROP策略,以防将自己锁在服务器外。