iptables命令参数非常多,记忆起来比较困难,以下是一些速记规则,从其它帖子上粘过来,备急需时查看。
iptables
-t
filter: 顾名思义,用于过滤的时候
nat: 顾名思义,用于做 NAT 的时候
-A、-I、-D、-R、-P、-F
APPEND,追加一条规则
INSERT,插入一条规则
DELETE,删除一条规则
REPLACE,替换一条规则
POLICY,设置某个链的默认规则
FLUSH,清空规则
INPUT: 位于 filter 表,匹配目的 IP 是本机的数据包
FORWARD: 位于 filter 表,匹配穿过本机的数据包,
PREROUTING: 位于 nat 表,用于修改目的地址(DNAT)
POSTROUTING:位于 nat 表,用于修改源地址 (SNAT)
-i、-o
流入、流出接口
-i ppp0
-s、-d
来源、目的地址
-s 192.168.0.1 匹配来自 192.168.0.1 的数据包
-s 192.168.1.0/24 匹配来自 192.168.1.0/24 网络的数据包
-p
协议类型
-p icmp --icmp-type 类型
-p tcp
--sport、--dport
来源、目的端口
--sport 1000 匹配源端口是 1000 的数据包
--sport 1000:3000 匹配源端口是 1000-3000 的数据包(含1000、3000)
--sport :3000 匹配源端口是 3000 以下的数据包(含 3000)
--sport 1000: 匹配源端口是 1000 以上的数据包(含 1000)
-m
state --state NEW、RELATED、ESTABLISHED、INVALID
mac --mac-source xx:xx:xx:xx:xx:xx
limit --limit 50/s
-m multiport --dports 21,22,25,80,110
-j
ACCEPT
DROP
SNAT
DNAT
MASQUERADE
典型应用:
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 80 \
-j DNAT --to 192.168.1.1
做dnat,内网提供web服务
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 \
-j SNAT --to 1.1.1.1
做snat,为内网提供上网服务
-L [链名]
LIST,列出规则
v:显示详细信息,包括每条规则的匹配包数量和匹配字节数
x:在 v 的基础上,禁止自动单位换算(K、M)
n:只显示 IP 地址和端口号码,不显示域名和服务名称
所有链名必须大写
INPUT/OUTPUT/FORWARD/PREROUTING/POSTROUTING
所有表名必须小写
filter/nat/mangle
所有动作必须大写
ACCEPT/DROP/SNAT/DNAT/MASQUERADE
所有匹配必须小写
-s/-d/-m /-p/--sport/--dport
阅读(1001) | 评论(0) | 转发(0) |