iptables ACCEPT DROP REJECT 说明
iptables ACCEPT DROP REJECT 说明
1、ACCEPT
一旦包满足了指定的匹配条件,就会被 ACCEPT,并且不会再去匹配当前链中的其他规则或同一个表内的其他规则,但它还要通过其他表中的链。
2、DROP
如果包符合条件,这个 target 就会把它丢掉,也就是说包的生命到此结束,不会再向前走一步,效果就是包被阻塞了。
在某些情况下,这个 target 会引起意外的结果,因为它不会向发送者返回任何信息,也不会向路由器返回信息,这就可能会使连接的另一方的 sockets 因苦等回音而亡。
解决这个问题的较好的办法是使用REJECT(因为它在丢弃包的同时还会向发送者返回一个错误信息,这样另一方就能正常结束),尤其是在阻止端口扫描工具获得更多的信息时,可以隐蔽被过滤掉的端口等等(因为扫描工具扫描一个端口时,如果没有返回信息,一般会认为端口未打开或被防火墙等设备过滤掉了)。
还要注意如果包在子链中被 DROP 了,那么它在主链里也不会再继续前进,不管是在当前的表还是在其他表里。
3、REJECT
REJECT 和 DROP 基本一样,区别在于它除了阻塞包之外,还向发送者返回错误信息。
现在,此target还只能用在 INPUT、FORWARD、OUTPUT 和它们的子链里,而且包含 REJECT 的链也只能被它们调用,否则不能发挥作用。
它只有一个选项,是用来控制返回的错误信息的种类的。