基于iptables的透明网关模式在网闸中的设计与实现

发布时间:2023-03-02 11:36:12

龙源期刊网 http://www.qikan.com.cn 基于iptables的透明网关模式在网闸中的设计与实现
作者:辛海涛
来源:《电脑知识与技术》2011年第08
摘要:该文叙述了基于netfilter/iptables的透明网关模式在网闸中的设计与实现。介绍了网闸的工作原理、netfilteriptables的包过滤filter、网络地址转换(NAT、数据包处理mangle等的功能框架以及透明网关的工作原理,最后我们给出了所设计的透明网关的详细的工作流程,并给出了在网闸上的具体实现。
关键词:网闸;透明网关;netfilteriptablesNAT 中图分类号:TP393文献标识码:A文章编号:1009-3044(201108-1764-03 The Design and Implementation of Transparent Gateway Based on Iptables in the GAP XIN Hai-tao (Wuhan University of Technology, Wuhan 430063, China Abstract: This article presents the design and implementation of transparent gateway base on iptables in the GAP. Describes the working principle of the gap, gives the packet filtering, network address transition and packet processing of the netfilter and iptables framework, and also gives the detail running process of transparent gateway, and finally we give the detailed design of the transparent gateway, and gives the concrete implementation in the gap. Key words: gap; transparent gateway; netfilter; iptables; NAT 随着网络技术的成熟和应用的不断完善,Internet 正在越来越多地融入到社会的各个方面。一方面,电子政务、企业上网、电子商务等一系列网络应用蓬勃发展,人们的日常生活与网络的关系日益密切;另一方面,网络用户成分越来越多样化,出于各种目的的网络入侵和攻击越来越频繁。人们在享受互联网所带来的丰富、便捷的信息同时,也日益感受到频繁的网络攻击、病毒泛滥、非授权访问、信息泄密等问题所带来的困扰。
网闸在电子政务、企业上网等行业使用的越来越普遍,能做到真正的物理隔离,然而为一个局域网安装网闸时,有可能需要更改局域网中的服务器和客户端的配置,或者需要更改网络应用程序的设置,甚至需要更改网络拓扑结构。为了使这样的改变尽可能少,人们希望网闸具透明性,使得它的存在不引起用户过多的感觉。 1 网闸技术的工作原理

龙源期刊网 http://www.qikan.com.cn 网闸采用独特的“2+1”安全体系架构,主要由内网处理单元、专有隔离硬件和外网处理单元三部分组成。通过专有隔离硬件设备彻底实现不同安全等级网络间链路层与网络层的隔离,其体系结构图如图1所示,该图中黄色的区域为网闸系统架构。
内网处理机单元、外网处理机处理单元分别连接可信网络和非可信网络,专门负责对来自可信网络和非可信网络的数据信息进行内容检测、协议分析和访问控制等一系列安全检查,剥离出原始数据,数据经格式化后,转换成只有专用隔离部件可以识别的专有格式数据块,最后交付专用隔离部件模块验证和交换。
专用隔离部件采用专用的硬件设计,采用高速安全芯片,通过模拟单刀双掷开关原理及人工数据交换的全过程,在任一时刻只与一边处理单元连接,与另外一边则断开,彻底隔断网TCP/IP协议通信,达到安全隔离效果。系统具有独立时钟电路,其开关的切换周期完全独立,不受外界CPU时钟的控制。 2 透明网关
透明网关旨在实现客户机的即插上网,即客户机不需要对自己的网络配置作任何修改,只需要接通透明网关的客户端就可以上网。网关要实现透明的功能,应该基于以下原理: 1 透明网关获取客户机的数据包。这其实需要让客户机将数据包发向透明网关。只有使客户机认为自己处在一个适宜的网络环境内,才会发出上网请求的数据包,且只有客户机将透明网关当作自己的默认网关时,才会将数据包发向透明网关。
2 透明网关转发客户机数据包。当客户机的数据包到达透明网关时,透明网关以自己的名义将该数据包发往Internet。同时当数据包从Internet回来时,透明网关再回发给客户机。 3 NetfilterIptables工作原理 3.1 Netfilter框架
Netfilter框架主要包括以下三个部分:1为每种网络协议(IPV4IPV6定义了一套钩子函数,这些钩子函数在数据包经过协议栈的相应的关键点时被调用。2内核的任何模块可以对每种协议的一个或多个钩子进行注册,实现挂接,这样,当数据包经过Netfilter框架时,内核能检测到是否有模块对该协议和钩子函数进行了注册。如果注册了,则调用该模块注册的回调函数,这样这些模块就有机会检查该数据包,丢弃该数据包或者指示Netfilter将该数据包传入用户空间的队列。3在排队等候的数据包传递到用户空间后,用户空间进程异步地对数据包进行处理。
IPV4Netfilter框架一共有5个钩子函数:NF_IP_PRE_ROUTINGNF_IP_FORWARDNF_IP_LOCAL_INNF_IP_LOCAL_OUTNF_IP_POST_ROUTING

龙源期刊网 http://www.qikan.com.cn 一个数据包经过Netfilter框架的过程如上图2所示。各个钩子函数挂载点,数据包通过的时机以及该挂载点所实现的功能如表1中前三列所示。 1 NetfilterIptables功能框架关系表 3.2 Iptables Iptables是一系列规则的集合。从实际而言,iptables完成了netfilter框架对数据包命运的决定功能,即丢弃数据包、允许数据包通过、遗忘数据包、加入到用户空间队列等。Iptables是通过表、链和规则实现以上这些功能的,表是实现功能模块的容器,内核模块可以注册表,缺省情况下包括数据包过滤表filter、网络地址转换表nat、数据包处理表mangle表又包含链,表与链的对应关系见表1 1 包过滤
filter表只能对数据包进行过滤,不能对数据包进行修改。由上表可知,它是通过NF_IP_FORWARDNF_IP_LOCAL_INNF_IP_LOCAL_OUT三个钩子函数接入Netfilter架的。可见,对于任何一个数据包只能在一个地方对它进行过滤。 2 网络地址转换(NAT nat表主要通过NF_IP_PRE_ROUTINGNF_IP_LOCAL_OUTNF_IP_POST_ROUTING三个钩子函数实现对数据包目的地址和源地址的转换。由上表可知NF_IP_PRE_ROUTING现对需要转发的数据包的目的地址的转换;NF_IP_POST_ROUTING实现对需要转发的数据包的源地址的转换;NF_IP_LOCAL_OUT实现对本地数据包目的地址的转换。natfilter的不同之处在于它只对新连接的数据包遍历表,以后的包都作相同的处理。
4 透明网关的设计与实现 4.1 详细设计
在前面的叙述中我们讲到网闸内、外网处理单元上必须具备数据协议分析功能,因此要求网闸其支持常见的应用层协议,确保能满足不同的应用数据交换。如支持HTTP/HTTPSPOP3/SMTPFTP以及SOCKS等基于TCP/IP协议的应用协议。因此在我们的实现方案中主要实现网闸的TCPUDPFTPWEB模块的对网关模式的支持。
设计方案如下:网闸应用采用网关模式,需要把到达网闸的IP数据包转发,重定向到网闸应用服务的端口上,然后由网闸的各服务模块代理出去。

基于iptables的透明网关模式在网闸中的设计与实现

相关推荐