Table 6-19. MASQUERADE target
| Option | --to-ports |
| Example | iptables -t nat -A POSTROUTING -p TCP -j MASQUERADE --to-ports 1024-31000 |
| Explanation | 在指定TCP或UDP的前提下,配置外出包能使用的端口,方式是单个端口,如--to-ports 1025,或是端口范围,如--to- ports 1024-3000。注意,在指定范围时要使用连字号。这改变了SNAT中缺省的端口选择,详情请查看 SNAT target。 |
6.5.7. MIRROR target
这个target是实验性的,他只是个演示而已,不建议您使用他,因为他可能引起循环,除此之外,还可能引起严重的DoS。这个target的作用是颠倒IP头中的源目地址,然后再转发包。这会引起很有趣的事,一个骇客最后攻破的可能就是他自己的机子。看来,使用这个target至少能够使我们的机子更强壮:) 我们假如对机子A的80端口使用了MIRROR,会发生什么呢?假设有来自yahoo.com的机子B 想要访问A的HTTP服务,那他得到的将是yahoo的主页,因为请求是来自yahoo的。
注意,MIRROR只能用在INPUT、 FORWARD、 PREROUTING链和被他们调用的自定义链中。还要注意,假如外出的包是因 MIRROR target发出的,则他们是不会被filter、nat或mangle表内的链处理的,这可能引起循环或其他问题。比如,一台机子向另一台配置了MIRROR且TTL值为255的机子发送一个会被认为是欺骗的数据包,同时这台机子也欺骗自己的数据包,以使他被认为似乎是来自第三个使用了MIRROR 的机子。这样,那个包就会不间断地往来很多次,直到TTL为0。假如两台机子之间只有一个路由器,这个包就会往返240-255次。对骇客来说,这是不坏的情况,因为他只要发送一个1500字节的数据(也就是个包),就能够消耗您的连接的380K字节。对于骇客或叫做脚本小子(不管我们把他们称作什么)来说,这可是很理想的情况。
6.5.9. REDIRECT target
在防火墙所在的机子内部转发包或流到另一个端口。比如,我们能够把任何去往端口HTTP的包REDIRECT到HTTP proxy(例如squid),当然这都发生在我们自己的主机内部。本地生成的包都会被映射到127.0.0.1。换句话说,这个target把要转发的包的目的地址改写为我们自己机子的IP。我们在做透明代理(LAN内的机子根本无需知道代理的存在就能够正常上网)时,这个target可是起了很大作用的。
注意,他只能用在nat表的PREROUTING、OUTPUT链和被他们调用的自定义链里。 REDIRECT只有一个选项:
Table 6-20. REDIRECT target
| Option | --to-ports |
| Example | iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080 |
| Explanation | 在指定TCP或UDP协议的前提下,定义目的端口,方式如下: 1、不使用这个选项,目的端口不会被改变。 2、指定一个端口,如--to-ports 8080 3、指定端口范围,如--to-ports 8080-8090 |