首先这个是由MIRROR这个target 引起的.简单的说收到数据包以后交换 src 和 dst,然后把包再发出去,呵呵,这是一个很有趣的功能,同时也是一个很危险的功能. 具体可以参考iptables-1.1.9指南中文版的6.5.7章节.
举例
比如有这样一个规则
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp –dport 22 -j ACCEPT
iptables -m state –state RELATED,ESTABLISHED -j ACCEPT
iptables -j MIRROR
实际上只打开了 TCP/22 一个端口
如果有人扫描的时候,除了 TCP/22 的其他端口都非被 iptables 反弹回去
1、如果扫描者有公网 IP 且有防火墙,则防火墙会被告知他扫描的 IP 在扫描他
2、如果扫描者有公网 IP 但无防火墙,他获得的扫描数据其实都是那个 IP MIRROR 给他的,如果他扫到了很多漏洞而正在高兴于是发起攻击的话,实际上他攻击的是他自己
3、如果扫描者无公网 IP,是通过 NAT 上网,那么他扫描的实际上是他前面的最后路由到公网上的那个设备,很有可能就是他的网关(当然,如果他通过多次 NAT,那就应该是最后一个 NAT 设备了)
而根据这个原理:
有台机子挂在公网上开了mirror,然后伪造数据包,把数据包的源地址换成是google的IP地址,只要不断的发这种伪造的数据包,这台 mirror的机子就会不断地试图与google做连接,从而发动一次DOS攻击,无需攻破你的系统,你已经自动成为一台”肉鸡”了。
进一步说,如果在网络上寻找多台这样的”肉鸡”(对几个大网段扫一下)(根据工作原理,通过比较收发包的内容是否一致,src和dst是否invert就可以判断一个IP是否做 了mirror),就可以发起一次DDOS或RDDOS了.瞒可怕的.
然后我们再来看看Iptables 指南是怎么讲的
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字节。对于骇客或者叫做脚本小子(不管我们把他们称作什么)来说,这可是很理想的情况,呵呵,当然很理想了.