iptables 工具
table name
|
description |
operation
|
filter (default)
|
用于包过滤,包含 INPUT 、OUTPUT 和 FORWARD链 |
ACCEPT、DROP、REJECT、LOG
|
nat
|
转换包的源或目的地址,包含 PREROUTING 、OUTPUT 和 POSTROUTING链 |
SNAT、DNAT、MASQUERADE
|
mangle
|
包含一些规则来标记用于高级路由的信息包,包含 PREROUTING 、OUTPUT 链 |
TOS、TTL、MARK
|
step
|
table
|
chain
|
comment
|
1
|
|
|
在 Internet线路上传输
|
2
|
|
|
进入网卡接口(如 eth0 )
|
3
|
mangle
|
PREROUTING
|
|
4
|
nat
|
PREROUTING
|
这个链主要做 DNAT
|
5
|
|
|
路由判断,包是要转发还是送往本地
|
6
|
mangle
|
INPUT
|
|
7
|
filter
|
INPUT
|
这里可以加过滤
|
8
|
|
|
到达本地的应用程序
|
step
|
table
|
chain
|
comment
|
1
|
|
|
本地的应用程序
|
2
|
|
|
路由判断
|
3
|
mangle
|
OUTPUT
|
|
4
|
nat
|
OUTPUT
|
这个链主要做 DNAT
|
5
|
filter
|
OUTPUT
|
这里可以加过滤
|
6
|
mangle
|
POSTROUTING
|
|
7
|
nat
|
POSTROUTING
|
这个链主要做 SNAT
|
8
|
|
|
离开网卡接口(如 eth0 )
|
9
|
|
|
在 Internet线路上传输
|
step
|
table
|
chain
|
comment
|
1
|
|
|
在 Internet线路上传输
|
2
|
|
|
进入网卡接口(如 eth0 )
|
3
|
mangle
|
PRETROUTING
|
|
4
|
nat
|
PRETROUTING
|
这个链主要做 DNAT
|
5
|
|
|
路由判断,包是要转发还是送往本地
|
6
|
mangle
|
FORWARD
|
特殊情况才使用
|
7
|
filter
|
FORWARD
|
转发的包会走该链,进行过滤
|
8
|
mangle
|
POSTROUTING
|
特殊情况才使用
|
9
|
nat
|
POSTROUTING
|
这个链主要做 SNAT
|
10
|
|
|
离开网卡接口(如 eth0 )
|
11
|
|
|
在 Internet线路上传输
|
列出链中的所有规则;输出格式不同
插入一条规则,I此规则会作为链的第一条规则;A则会在最后一条
-D <CHAIN> N, -D <CHAIN>
删除一条规则,可以明确指明规则内容,也可以用N指出链中的第N条
-F <CHAIN>, -Z <CHAIN>
F清除链中的所有规则,不指明链,则清除所有链;Z则是只清除计数器,不清除规则
-P <CHAIN>
指定某条链的默认动作,ACCEPT、DROP或REJECT等
rules 匹配的包规则,同一条规则里的多个条件是“与”的关系,比如:
-p, --protocol
协议匹配,如 -p tcp
-s, --src, --source
来源匹配,如 -s 202.108.37.49
-d, --dst, --destination
目的匹配,如 -d 172.16.115.117
-i, --in-interface
入网卡接口匹配,如 -i eth0
-o, --out-interface
出网卡接口匹配,如 -o eth1
--sport, --source-port
来源端口匹配(tcp或udp),如 --sport 80;也可以用端口范围,如 --sport 135:139
--dport, --destination-port
目的端口匹配(tcp或udp),如 --dport 80;同样支持端口范围
--tcp-flags
tcp状态匹配,如 --tcp-flags RST RST
-m mac --mac-source
mac地址匹配,如 -m mac --mac-source 00:1E:C9:B0:53:D2
-m multiport --source-port , --destination-port
多端口匹配,如-m multiport --destination-port 80,443
-m iprange
简单的指定ip范围。用--src-range或--dst-range匹配,如 -m iprange --src-range 192.168.1.33-192.168.1.50
-m time
指定匹配时间(UTC),可以使用--datestart、--datestop、--timestart或--timestop等参数。如 -m time --datestart 2014-01-01T00:00:00 --datestop 2014-12-31T23:59:59 。注意时间是UTC时间。
-j ACCEPT:
源地址转换,如 -j SNAT --to 61.135.152.194
-j MASQUERADE
类似SNAT,但是根据默认路由转换,适用于动态ip(不需要指明转换后的地址)
-j DNAT
进行目的地址转换,如 -j DNAT --to-destination 192.168.0.254
-j REDIRECT
(对于tcp和udp)进行端口重定向,如 -j REDIRECT --to-ports 8080
丢弃RST包
iptables -I INPUT -p tcp --sport 80 --tcp-flags RST RST -j DROP