扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
iptables 作为 ipchains 的新一代继承人,当然也针对骇客不断推陈出新的探测技术拟出一些因应之道,那就是对封包的联机状态,作出更详细的分析,例如:是否为新联机或响应封包、是否为转向联机、联机是否失去响应,联机时间是否过长......等等,透过这样的分析能对一些可能被骇客利用的弱点加以阻隔(请详见后文的说明),另外也开发出真正的封包改写能力,不需要透过其它程序的协助来仿真网址转译,除此之外,iptables 也获得系统核心的直接支持,不需要像 ipchains 那样需要自行重新编译核心。
iptables 优越的性能使它取代了 ipchains,成为网络防火墙的主流,而 ipchains 并未被淘汰,目前 ipchains 已经转型成单机防火墙,在安装新版 Linux 时,会自动被安装启用,以保护单机上未被使用的通讯端口。
参、iptables 防火墙概论
iptables 防火墙的指令非常类似于 ipchains,使用过 ipchains 的人应该很容易上手,但是 iptables 的机制与 ipchains 有很大的不同,使用 ipchains 的概念来设定规则,将会使防火墙无法正常运作。ipchains 跟 iptables 最大的不同在于对 INPUT、FORWARD 、OUTPUT 三个网络函式的定义不同,这三个网络函式是 TCP/IP 驱动程序的一部分,结构如下图所示,是介于网卡驱动程序和应用程序的中间,Linux 核心预设会启用 INPUT、OUTPUT 和 LOOPBACK,而 FORWARD 函式则必须自行启用,可以使用下面指令,或直接修改 /etc/sysconfig/network 组态档:
echo "1" >/proc/sys/net/ipv4/ip_forward
左图为 ipchains 概念下的运作图
从上图可以知道 ipchains 如何处理封包的流动,分述如下:
IP INPUT:所有封包都由 IP INPUT 函式负责处理,所以设定过滤规则时,几乎都是设定在 INPUT 规则炼上。
IP FORWARD:目的 IP 非本机的 IP,这些封包需要进一步作转送处理,此函式用来处理 IP 伪装和 Port 转送。
IP OUTPUT:所有流出的封包都由这个函式处理,通常不需设定任何规则。
iptables 除了上述三支函式以外,还使用两个新的函式:Prerouting、Postrouting。现在来比较一下 iptables 的运作模式(loopback 接口与上图相同,所以省略不画):
从上图可以知道 iptables 如何处理封包的流动,分述如下:
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。