Iptables简单介绍
iptables是与最新的 2.6.x 版本号 Linux 内核集成的 IP 信息包过滤系统。
假设 Linux 系统连接到因特网或 LAN、server或连接 LAN 和因特网的代理server, 则该系统有利于在 Linux 系统上更好地控制 IP 信息包过滤和防火墙配置。
Iptables工作原理
在信息包过滤表中,规则被分组放在我们所谓的 链(chain)中。
我立即会具体讨论这些规则以及怎样建立这些规则并将它们分组在链中。
这些规则具有 目标,它们告诉内核对来自某些源、前往某些目的地或具有某些协议类型的信息包做些什么。
假设某个信息包与规则匹配,那么使用目标 ACCEPT 同意该信息包通过。还能够使用目标 DROP 或 REJECT 来堵塞并杀死信息包。
对于可对信息包运行的其他操作,还有很多其他目标。
处理出站信息包的规则被加入到 OUTPUT 链中。处理正在转发的信息包的规则被加入到 FORWARD 链中。
这三个链是基本信息包过滤表中内置的缺省主链。 另外,还有其他很多可用的链的类型(如 PREROUTING 和 POSTROUTING ), 以及提供用户定义的链。每一个链都能够有一个 策略, 它定义“缺省目标”,也就是要运行的缺省操作。当信息包与链中的不论什么规则都不匹配时。运行此操作。
假设信息包与某条规则匹配,那么内核就对该信息包运行由该规则的目标指定的操作。
可是。假设信息包与这条规则不匹配。那么它将与链中的下一条规则进行比較。 最后,假设信息包与链中的不论什么规则都不匹配,那么内核将參考该链的策略来决定怎样处理该信息包。 理想的策略应该告诉内核 DROP 该信息包。下图用图形说明了这个信息包过滤过程。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc29uZ2ppbnNoaQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
使用Iptables进行防火墙软件设计的解决方式
http://code.google.com/p/droidwall/