防火墙iptables分析(2)

10.        进入 nat 表的 POSTROUTING 链。在这我们做源 NAT(SNAT),建议你不要在这做报文过滤,因为有副作用。即使你设置了默认策略,一些报文也有可能溜过去。

11.        进入出去的网络接口。

3)        转发报文

报文经过iptables进入转发的过程为:

1.    数据包从network到网卡

2.    网卡接收到数据包后,进入raw表的PREROUTING链。这个链的作用是在连接跟踪之前处理报文,能够设置一条连接不被连接跟踪处理。(注:不要在raw表上添加其他规则)

3.    如果设置了连接跟踪,则在这条连接上处理。

4.    经过raw处理后,进入mangle表的PREROUTING链。这个链主要是用来修改报文的TOS、TTL以及给报文设置特殊的MARK。(注:通常mangle表以给报文设置MARK为主,在这个表里面,千万不要做过滤/NAT/伪装这类的事情)

5.    进入nat表的PREROUTING链。这个链主要用来处理 DNAT,应该避免在这条链里面做过滤,否则可能造成有些报文会漏掉。(注:它只用来完成源/目的地址的转换)

6.    进入路由决定数据包的处理。例如决定报文是上本机还是转发或者其他地方。(注:此处假设报文进行转发)

7.    进入 mangle 表的 FORWARD 链,这里也比较特殊,这是在第一次路由决定之后,在进行最后的路由决定之前,我们仍然可以对数据包进行某些修改。

8.    进入 filter 表的 FORWARD 链,在这里我们可以对所有转发的数据包进行过滤。需要注意的是:经过这里的数据包是转发的,方向是双向的。

9.    进入 mangle 表的 POSTROUTING 链,到这里已经做完了所有的路由决定,但数据包仍然在本地主机,我们还可以进行某些修改。

10.        进入 nat 表的 POSTROUTING 链,在这里一般都是用来做 SNAT ,不要在这里进行过滤。

11.        进入出去的网络接口。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/15205.html