本文共 1397 字,大约阅读时间需要 4 分钟。
iptables 常用命令与规则操作指南
1. 规则表概述
iptables 是 Linux 防火墙工具,主要用于管理网络流量规则。其核心功能包括过滤、重定向、伪装、日志记录等。iptables 有三个内建规则表:nat、mangle 和 filter。默认规则表为 filter,其他规则表在特定场景下使用。
nat 规则表
- 功能:主要用于 SNAT(源网络地址转换)和 DNAT(目的网络地址转换)。
- 特点:
- SNAT:改写封包来源 IP,适用于静态 IP 转换。
- DNAT:改写封包目的 IP,适用于动态 IP 转换。
- 优点:每个封包只经过一次规则表处理,提升处理效率。
mangle 规则表
- 功能:支持 Prerouting、FORWARD 和 Postrouting 三个规则链。
- 用途:
- 修改封包属性(如 TTL、TOS、MARK)。
- 适用于特殊应用场景(如流量统计、防洪水攻击)。
filter 规则表
- 功能:用于基本的封包过滤操作。
- 规则链:包括 INPUT、FORWARD 和 OUTPUT。
- 用途:定义封包处理动作(如 ACCEPT、DROP、REJECT 等)。
2. 常用 iptables 命令
1. 规则添加与删除
- -A, --append:新增规则到指定规则链,规则按顺序执行。
- -D, --delete:删除指定规则或规则链中的所有规则。
- -R, --replace:替换规则,原有规则被新规则完全取代。
- -I, --insert:插入规则,原有规则向后移动。
2. 规则列表
- -L, --list:列出指定规则链中的所有规则。
- -F, --flush:清除指定规则链中的所有规则。
- -Z, --zero:重置规则链中的封包计数器。
3. 新规则链定义
- -N, --new-chain:定义新规则链。
- -X, --delete-chain:删除指定规则链。
4. 处理策略定义
- -P, --policy:定义规则链的处理策略(默认策略)。
- -E, --rename-chain:重命名规则链。
3. 封包比对参数
1. 通讯协议类型
- -p, --protocol:指定比对的通讯协议。
- 示例:
iptables -A INPUT -p tcp - 特殊用语:
! tcp:除 tcp 外的所有协议。 all:所有协议。
2. IP 地址比对
- -s, --src, --source:指定来源 IP 或 IP 范围。
- 示例:
iptables -A INPUT -s 192.168.1.1 - 特殊用语:
! 192.168.0.0/24:除指定网络的 IP。
- -d, --dst, --destination:指定目的地 IP 或 IP 范围。
3. 网络接口比对
- -i, --in-interface:指定进入规则链的网络接口。
- 示例:
iptables -A INPUT -i eth0 - 特殊用语:
4. 埠号比对
- -sport, --source-port:指定来源埠号或范围。
- -dport, --destination-port:指定目的地埠号或范围。
5. TCP 状态比对
- --tcp-flags:比对 TCP 状态旗号。
- 示例:
iptables -p tcp --tcp-flags SYN,FIN,ACK SYN - 可选
转载地址:http://zublz.baihongyu.com/