龙源期刊网 http://www.qikan.com.cn
基于Linux的网络准入控制代理服务器的设计与实现
作者:郭江平
来源:《电脑知识与技术》2010年第06期
摘要:网络准入控制体系中,终端与策略服务器通过代理服务器连接。该文给出网络准入控制的实现流程,定义了代理服务器的功能。以Linux内核的网络模块为基础,提出一种两级过滤规则链的网络报文过滤方法,实现了准入控制代理的安全阻断功能。该文工作可作为网络准入控制代理服务器的实现参考与依据。
关键词:网络准入控制;Linux;安全阻断;过滤规则
A Network Access Control Proxy Server Based on Linux GUO Jiang-ping
(Wuhan Institute of Shipbuilding Technology, Wuhan 430050, China)
Abstract: In Network Access Control architecture, terminals and the policy server were linked through a proxy server. In this paper, we represented the network access control process and defined main features of the NAC proxy server. In order to realize the NAC proxy function of the security block, we proposed a two-chain network packet filtering method based on Linux-kernel network module. This work can be used as NAC proxy server reference and basis for the realization. Key words: network access control; Linux; security block; filter policy
网络准入控制[1]的主要目的是在未来的交换机、路由器、VPN、无线、防火墙、远程拨号等接入方式中增加对终端桌面接入设备的检测,检测它是否安装了最新的防病毒措施,操作系统的安全性是否达到足够高等。如果达到要求,则允许接入网络,否则拒绝连接。对网络来讲,增加了“准入制”的安全性将会得到大大的提升。NAC意味着,如果想要连入网络,需要将终端桌面机当前的安全报告提交给网络接入设备,如果安全状况良好,则准许接入;否则,设备会采取多种手段,或者禁止流量通过,或者将此终端放在一个公共的不安全的网络里,只能进行一些简单的操作,来保证整个网络的安全性。通过联合通报接入终端的安全性和限制其接入的措施,NAC提升网络基础的安全性。NAC提供了一个新型的、全面的解决方案,为企业提供一个强化的主机接入政策,规范那些不服从者,限制或者干脆禁止其接入企业网。
龙源期刊网 http://www.qikan.com.cn
本文以Linux操作系统内核为实现基础,给出了NAC代理服务器的功能设计与具体实现方法。文中首先分析NAC过程,而后提出NAC代理服务器的任务与作用,在第三部分将探讨NAC代理服务器的网络安全阻断功能的实现方法。 1 NAC认证过程
图1给出了NAC的认证过程中,认证消息的交互以及操作可以划分为如下6个步骤: 1)安全认证代理(TA)运行在需要接入网络的终端设备上。认证起始时,TA与接入设备建立连接,并将安全认证证书发送给接入设备。安全认证信息封装在EAP数据包中进行传输。 2)接入设备收到安全认证证书后,将其转发给AAA服务器做安全认证。转发过程中采用RADIUS协议格式。所以,接入设备必须对接收到的EAP报文进行解析并重新封装为RADIUS报文。
3)AAA服务器根据自身制定的策略和安全认证消息中的信息,作出判断,得到该终端的访问权限。
4)AAA服务器将最终的结论发送给接入设备,此次信息交互仍旧遵循RADIUS报文格式。 5)接入设备按照AAA服务器返回的结论信息,对于请求认证的终端执行此结论。 6)接入设备通知终端,告知其认证结果。
本文的研究重点是NAC过程中终端设备与策略服务器之间的连接设备,此设备可以将终端与策略服务器进行逻辑界定,故称之为网络准入控制代理服务器(NAC Proxy Server)。 2 NAC Proxy Server
NAC Proxy Server应具有以下三种功能:
1)消息的接收和发送:可以与终端和策略服务器之间建立网络连接,接收并且发送相关消息。在这个过程中,必须保证消息的安全性和可信任性,并且对于超时操作要定义重传机制以保证消息交互的健壮性。
2)EAP_RADIUS_CODEC:NAC Proxy Server与终端和策略服务器的认证信息交互采用两种不同的报文格式[],这就需要代理服务器必须对两种格式的消息进行转换。所以,代理服务器必须具有对EAP和RADIUS格式消息的编解码功能。对于终端,代理服务器是它的认证服务器;对于策略服务器,代理服务器是它的请求认证终端。Proxy Server需保证认证信息交互的透明性。
龙源期刊网 http://www.qikan.com.cn
3)安全阻断功能:对于策略服务器返回的认证结论,代理服务器是其最终的执行者。如果认证失败,Proxy Server需要对终端的网络接入加以限制,否则允许其正常的网络传输。
NAC Proxy Server的功能可以概括为“代理”与“操作”。代理指的是对于终端和策略服务器之间的消息透明传输,并将EAP格式和RADIUS格式消息相互转换,具体可以分为与终端的信息交互和与策略服务器的信息交互。操作是指执行策略服务器所得出的安全认证结果,对不安全的终端设备的网络接入加以限制。
考虑NAC Proxy Server的具体实现:报文收发功能为基本编程工作,可以采用套接字实现;EAP与Radius协议的编解码处理,可以参考文献[2-3]中标准协议的说明;本文重点关注安全阻断功能的实现方法。 3 安全阻断功能
在NAC代理服务器的实现过程中,一个完整的认证准入控制过程必然返回一个针对源路由的策略,最简单的策略可以分为准许接入和禁止接入两种。对于后一种结果,代理必然要对该IP地址后继所发送的报文进行过滤,以达到阻止其网络连接的目的。在后继介绍入侵检测系统的过程中,对于不安全的流量,仍旧需要路由对源IP地址或者目的IP地址进行报文过滤,以达到网络防御的安全保证。
在Linux2.4内核中,Netfilter是一个防火墙模块,它本身并不具有包过滤功能,只是在网络包的处理过程中添加检验操作,而检验的依据就是Iptable中保存的规则。通过规则的配置,可以实现:
1)控制:能够允许某些类型的包通过,或者不允许某些类型的包通过。例如,包的头部含有目的地址的信息,可以设置过滤规则禁止网络内部的包到达某些外部的网络地址;
2)安全:在混乱的Internet和有序的网络之间通信过程中,设置防火墙可以保证系统的安全,可以将简单的DoS攻击拒之门外;
3)警觉:有时候一台配置不好的内部机器向外面喷涌发包。包过滤能够及时向网络管理员报告此类异常,这样,管理员就能够做出相应的行动,以防不测。
安全阻断功能可以在采用二次开发来实现,基于Linux的Netfilter功能,设计一个规则生成器来修改Iptable中的规则以达到特定的包过滤功能。
3.1 Iptable结构分析
基于Linux的网络准入控制代理服务器的设计与实现



