防火墙(FireWall)指的是一个由软件和硬件设备组合而成、在内部网和外部网之间、专用网与公共网之间的界面上构造的保护屏障。是一种获取安全性方法的形象说法,它是一种计算机硬件和软件的结合,使 Internet 与 Intranet 之间建立起一个安全网关(Security Gateway),从而保护内部网免受非法用户的侵入。Linux 中就提供了一个安全高效的防火墙框架,用户可以使用其简单、迅速、高效地保护系统和网络安全。 网络防火墙是借鉴了古代真正用于防火的防火墙的喻义,指的是设置在不同网络(如可信任的企业内部网和不可信的公共网)或网络安全域之间的一系列部件的组合。它可通过监测、限制、更改跨越防火墙的数据流,尽可能地对外部屏蔽网络内部的信息、结构和运行状况,以此来实现网络的安全保护。在逻辑上,防火墙是一个分离器、一个限制器,也是一个分析器,有效地监控了内部网和 Internet 之间的任何活动,保证了内部网络的安全。目前防火墙已经开始被企业用户普遍接受,而且正在成为企业网络中一种主要的安全设备。 典型的防火墙体系网络结构是(如图 1 所示):防火墙的一端连接企事业单位内部的局域网,而另一端则连接着互联网。所有的内、外部网络之间的通信都要经过防火墙。只有符合安全策略的数据流才能通过防火墙。这是防火墙的工作原理特性。防火墙之所以能保护企业内部网络,就是依据这样的工作原理或者说是防护机制进行的。它可以由管理员自由设置企业内部网络的安全策略,使允许的通信不受影响,而不允许的通信全部被拒绝于内部网络之外。 防火墙对流经它的网络通信进行扫描,这样能够过滤掉一些攻击,以免其在目标计算机上被执行。防火墙还可以关闭不使用的端口。而且它还能禁止特定端口的流出通信,封锁特洛伊木马。最后,它可以禁止来自特殊站点的访问,从而防止来自不明入侵者的所有通信。
除了安全作用,防火墙还支持具有 Internet 服务特性的企业内部网络技术体系 VPN(虚拟专用网)。
Netfilter/IPTables 防火墙框架技术原理及安装启动 Linux 系统提供了一个自带免费的防火墙 - Netfilter/IPTables 防火墙框架,该框架功能强大,下面详细介绍该框架的安装、配置和使用。 Linux 的防火墙技术经历了若干代的沿革,一步步的发展而来。最开始的 Ipfwadm 是 Alan Cox 在 Linux kernel 发展的初期,从 FreeBSD 的内核代码中移植过来的。后来经历了 ipchains,再经由 Paul Russell 在 Linux kernel 2.3 系列的开发过程中发展了 Netfilter 这个架构。而用户空间的防火墙管理工具,也相应的发展为 IPTables。Netfilter/IPTables 这个组合目前相当的令人满意。在经历了 Linux kernel 2.4 和 2.5 的发展以后,的确可以说,Netfilter/IPTables 经受住了大量用户广泛使用的考验。准确地说,Netfilter/IPTables 可以说是 Linux 的第三代防火墙,而且它比 Ipfwadm 和 Ipchains 要出色很多,因此,Linux 就将 Netfilter 设定为其预定的防火墙,虽然 Netfilter 是自由软件,但其功能、稳定性和安全性、扩展性等方面都丝毫不逊于其他的商业防火墙。 Netfilter/IPTables 可以对流入和流出的信息进行细化控制,且可以在一台低配置机器上很好地运行,被认为是 Linux 中实现包过滤功能的第四代应用程序。Netfilter/IPTables 包含在 Linux 2.4 以后的内核中,可以实现防火墙、NAT(网络地址翻译)和数据包的分割等功能。Netfilter 工作在内核内部,而 IPTables 则是让用户定义规则集的表结构。Netfilter/IPTables 从 Ipchains 和 Ipwadfm(IP 防火墙管理)演化而来,功能更加强大。 这里所说的 IPTables 是 Ipchains 的后继工具,但具有更强的可扩展性。内核模块可以注册一个新的规则表(table),并要求数据包流经指定的规则表。这种数据包选择用于实现数据报过滤(filter 表),网络地址转换(NAT 表)及数据报处理(mangle 表)。Linux 2.4 内核及其以上版本提供的这三种数据报处理功能都基于 netfilter 的钩子函数和 IP 表,都是相互间独立的模块,完美地集成到了由 netfilter 提供的框架中,如图 2 所示。Netfilter 主要提供了如下三项功能: 包过滤:filter 表格不会对数据报进行修改,而只对数据报进行过滤。IPTables 优于 Ipchains 的一个方面就是它更为小巧和快速。它是通过钩子函数 NF_IP_LOCAL_IN、NF_IP_FORWARD 及 NF_IP_LOCAL_OUT 接入 Netfilter 框架的。 NAT:NAT 表格监听三个 Netfilter 钩子函数:NF_IP_PRE_ROUTING、NF_IP_POST_ROUTING 及 NF_IP_LOCAL_OUT。NF_IP_PRE_ROUTING 实现对需要转发数据报的源地址进行地址转换,而 NF_IP_POST_ROUTING 则对需要转发的数据报目的地址进行地址转换。对于本地数据报目的地址的转换,则由 NF_IP_LOCAL_OUT 来实现。 数据报处理:mangle 表格在 NF_IP_PRE_ROUTING 和 NF_IP_LOCAL_OUT 钩子中进行注册。使用 mangle 表,可以实现对数据报的修改或给数据报附上一些外带数据。当前 mangle 表支持修改 TOS 位及设置 skb 的 nfmard 字段。 |