这篇文章上次修改于 2151 天前,可能其部分内容已经发生变化,如有疑问可询问作者。 iptables 结构: #五链: 链的作用:容纳各种防火墙规则,相当于容器 链的分类依据:处理数据包的不同时机 系统默认自带的5种规则链: INPUT:处理入站数据包 OUTPUT:处理出站数据包 FORWARD:处理转发数据包 POSTROUTING:在进行路由选择后处理数据包(出站过滤) PREROUTING:在进行路由选择前处理数据包(入站过滤) 注:POSTROUTING、PREROUTING在做NAT时所使用 #四表: 表的划分依据:和链相似,按功能进行划分 默认包括4个规则表: > raw表:包含了`PREROUTING`和`OUTPUT` 在这里进行跟踪。 > mangle表:包含了:`PREROUTING`,`INPUT`,`FORWARD`,`OUTPUT`,`POSTROUTING`。 在这里做标记。 >nat表:包含了:`PREROUTING`,`INPUT`,`OUTPUT`,`POSTROUTING`. 在这里进行ip或端口修改。 >filter表:包含了`INPUT`、`FORWARD`、`OUTPUT`. 在这里进行过滤数据。 (默认使用filter。raw:优先级最高,设置raw时一般是为了不再让iptables做数据包的链接跟踪处理,提高性能) #状态 4大包状态:INVALID,ESTABLISHED,NEW和RELATED #动作 处理动作除了 ACCEPT、REJECT、DROP、REDIRECT 和 MASQUERADE 以外,还多出 LOG、ULOG、DNAT、SNAT、MIRROR、QUEUE、RETURN、TOS、TTL、MARK 等 #包流程 iptables和策略路由类似,先链后表,在链路上分别顺序查表做匹配. 规则表之间的顺序:raw→mangle→nat→filter,即先做状态跟踪→在做标记→在做修改源目IP或端口→在做是否过滤 规则链之间的顺序: 入站:PREROUTING→INPUT 路由前发现是自己的,直接进站 出站:OUTPUT→POSTROUTING 转发:PREOUTING→FORWARD→POSTROUTING 注意:PREROUTING和POSTROUTING是最外围,规则链是靠时机分的,分为了入站,出站,转发三个时机 规则链内的匹配顺序: 按顺序依次检查,匹配即停止(LOG策略外) 若找不到相匹配规则,按该链的默认策略处理 > 以本机为目标地址的包: ``` 入站:数据包发来,路由前,先做跟踪,再做标记,修改,查看路由,如果是发往本机的直接往上走,进站前标记,然后出站过滤 出站:出站和路由后,指的是最上面的路由选择,本机选择之后先经过跟踪→标记→修改→是否过滤,出站之后是mangle表的路由后→nat表的路由. ``` PREROUTING(raw,mangle,nat,filter) POSTROUTING(raw,mangle,nat,filer) > 路由转发包: ``` 转发:数据进来以后,经过路由前raw、mangle、nat,路由前完成之后进行选择,发现此数据是需要发到别的地方,非本地,通过forward,经过mangle的forward,filter的forward,还要经过路由后标记、修改IP及端口,结束 ``` PREROUTING(raw,mangle,nat,filter) FORWARD(mangle,filter) POSTROUTING(raw,mangle,nat,filer) ![tables_traverse.jpg][1] ![iptables-guides.png](/usr/uploads/2019/01/2928310088.png) #dnat/snat ![NAT.jpg][2] ![SNAT.jpg][3] ![SNAT_1.jpg][4] ``` iptables -t nat -A POSTROUTING -d 192.168.0.101 -j SNAT --to 192.168.0.1 ``` ![DNAT.jpg][5] ![DNAT_1.jpg][6] ``` iptables -t nat -A PREROUTING -d 202.202.202.1 -j DNAT --to-destination 192.168.0.101 ``` 参考 https://www.frozentux.net/iptables-tutorial/cn/iptables-tutorial-cn-1.1.19.html [1]: /usr/uploads/2018/03/3592179642.jpg [2]: /usr/uploads/2018/03/3930771867.jpg [3]: /usr/uploads/2018/03/2675251063.jpg [4]: /usr/uploads/2018/03/3587853287.jpg [5]: /usr/uploads/2018/03/2973106146.jpg [6]: /usr/uploads/2018/03/2004880666.jpg
没有评论