远程大规模多用户并发控制的防火墙实验系统的实现方法

文档序号:7884461阅读:184来源:国知局
专利名称:远程大规模多用户并发控制的防火墙实验系统的实现方法
技术领域
本发明涉及一种信息安全技术领域的方法,具体是一种远程大规模多用户并发控制的防火墙实验系统的实现方法。
背景技术
信息安全实践技术的研究是目前信息安全领域一个重要的研究方向。计算机网络技术的飞速方展和广泛应用,使得Internet成为人们日常生活中重要的一部分,同时也带来了各种各样的网络安全方面的问题。目前网络保护技术虽然已经研究得很深入,尤其是防火墙技术,已经发展得非常成熟,但能提供给人们进行信息安全实践培训的系统尚处于研究的起始阶段。
经对现有技术的文献检索发现,中国专利号CN200410016710.X,发明名称为实现虚拟防火墙多用户教学实验的方法,该方法通过获取内部网络用户的IP地址(此IP地址为局域网内部的IP地址),然后以此IP为基础将用户配置的防火墙规则进行转换后再写入防火墙核心规则表中,实现了用户规则空间和防火墙核心规则空间的分离,由于这种方法必须先获取用户客户机的IP地址,然后以此IP地址为基础处理防火墙规则,最后是通过客户机操作系统本身带有的网络命令操作工具来检验防火墙规则的有效性,所以该方法只能支持局域网内部的多用户并发控制防火墙进行实验,而不能支持远程的、处于Internet任意位置的多个网络用户并发控制防火墙进行实验。远程用户的IP地址是属于公网的IP,无法受到防火墙的约束,并且远程用户通过本机操作系统执行的网络命令也无法受到防火墙的约束,因此上述专利实现的系统不能直接拿来支持远程大规模用户的实验。据进一步检索,尚未查到支持远程Internet用户进行防火墙培训实践的方法。

发明内容
本发明目的在于针对现有多用户并发控制防火墙技术的不足,提供一种远程大规模多用户并发控制的防火墙实验系统的实现方法,使其采用WEB接口的方式,克服了现有的防火墙实验教学系统只能支持局域网多用户操作,无法同时向处于Internet任意位置的远程多个用户提供实践的限制,显著的提高了单台防火墙设备在信息安全实践培训中的使用效率,有效的降低了信息安全实践培训的成本。
本发明通过以下技术方案实现的,包括以下步骤(1)用户标识符分配首先在远程用户登陆系统准备实验时,按用户标识符分配算法给用户分配一个互相不冲突的标识符;(2)虚拟主机资源分配在远程用户分配到标识符后,根据虚拟主机资源分配算法给远程用户分配内部对应的虚拟网卡、虚拟主机需要的内存和CPU资源;(3)多用户规则处理接着在用户在进行防火墙规则配置时,根据多用户规则处理算法,将用户空间规则和防火墙核心空间规则联系起来;(4)用户虚拟网络操作控制台通过WEB界面提供给远程用户网络命令操作控制台,并将命令执行结果反馈给用户WEB界面;(5)远程用户网络命令代理在防火墙系统上运行的远程用户网络命令代理程序,将远程用户连接到防火墙的Socket连接和防火墙通过Telnet协议连接到虚拟主机23端口的Socket连接一一对应起来;(6)用户规则测试在用户虚拟网络命令操作控制台、远程用户网络命令代理服务端和虚拟机Telnet服务端互连之后,远程用户通过用户规则测试流程验证规则的有效性;(7)虚拟主机资源回收在远程用户不需要使用时,关闭远程用户对应的虚拟主机,释放使用的内存和CPU资源,同时释放占用的虚拟网卡资源。
所述的用户标识符分配,具体为在远程用户登陆进防火墙系统,首先准备实验,通过后台的JavaBean程序为远程用户随机分配一个1-254范围内的整数作为用户标识符,这里假设分配的标识符为n,然后系统以192.168.n.79(IP地址最后一位可选范围1-254)作为远程用户对应虚拟主机的IP地址,以umn和tapn作为远程用户对应虚拟主机标识符和虚拟网卡标识符。
所述的用户标识符分配,其分配方法为①用户WEB中间件(UWM)随机分配给用户一个在1-254范围内的号码;②然后将此号码发送给虚拟客户机管理服务程序(VHMS);③VHMS检查此号码是否已经在虚拟客户机队列(Virtual Client List,简称VCList)中,如果不在转④,如果已经在队列中转①;④VHMS将此号码分别插入VCList和虚拟网卡队列(Tuntap List,简称TapList)中;⑤返回正确结果给UWM。
所述的虚拟主机资源分配,具体为在Linux操作系统上采用C语言实现,定义两个链表,一个为TapList,用来描述虚拟网卡资源,一个为VCList,用来描述虚拟主机资源,然后通过对链表管理的方式管理虚拟网卡设备资源和虚拟主机资源,首先根据tapn分配一个新的虚拟网卡设备资源,然后将此虚拟网卡作为虚拟主机umn资源的一部分,启动umn虚拟主机,分配需要的cpu和内存资源。
所述的虚拟主机资源分配,分配方法如下①用户WEB接口(UWI)发送启动虚拟主机命令给UWM;②UWM通过socket发送“startvc n”给VHMS;③VHMS查找TapList,如果n已经在TapList中继续,如果不在转⑧;④VHMS查找VCList,如果n已经在VClist中继续,如果不在转⑧;⑤启动TunTap虚拟网卡tapn,将tapn加入到umlbrg(服务器启动时通过brgctl启动的Linux网桥);成功继续,失败转⑧;⑥启动UMLinux虚拟主机umn,成功继续,失败转⑧;⑦返回正确给UWI;⑧返回错误给UWI。
所述的多用户规则处理,具体为将规则划分为用户规则空间和防火墙核心规则空间,用户直接配置的规则存储在用户规则空间,用户规则空间的规则到防火墙核心规则空间的转换是以用户标识符分配中分配的用户标识符为依据的,分配算法参考“实现虚拟防火墙多用户教学实验的方法”。
所述的用户虚拟网络操作控制台,具体为采用Java Applet编程技术实现,在远程用户WEB接口部分嵌入用Applet编程实现的网络命令操作控制台,此控制台首先连接防火墙系统上的网络命令代理服务程序;在用户进行网络命令操作时候,将用户输入的网络操作命令通过Socket传给远程用户命令代理服务程序,然后将远程用户代理服务器返回的结果显示在网络命令操作控制台界面上。用户通过网络命令操作控制台操作的效果,与用户直接在内部网络的虚拟主机上操作的效果是一样的。
所述的远程用户命令代理,具体为在Linux操作系统上用C语言实现,采用Socket Proxy算法和链表存储结构,定义链表数据结构vclient,首先根据网络命令操作控制台在建立连接后传过来的虚拟主机的参数构建一个新的vclient对象,然后将远程用户网络命令操作控制台连接到防火墙系统上的Socket和通过Telnet协议连接到虚拟主机的Socket分别加入到此vclient对象中,然后利用Linux下的多路I/O转接技术实时的在这两个Socket之间转换数据。
所述的用户规则测试,具体为用户在配置完一条或多条具体的防火墙规则后,通过嵌入WEB的用户网络命令操作控制台输入网络命令,然后远程用户网络命令代理服务程序将此命令传给虚拟主机,虚拟主机在自己的终端执行此命令,并将执行结果通过远程用户网络命令代理服务程序传回给用户网络命令操作控制台。
用户规则测试流程为①启动NCom GUI,NCom GUI通过socket连接用户网络命令代理服务程序(UNCPS);②UNCPS在其NcList中新建立一项,将新建立的socket加入到rsocket位置;③NCom GUI发送自己的ClientIP给UNCPS;④UNCPS通过socket连接ClientIP的Telnet服务端,将此socket加入刚在NcList中新建立的项的vsocket位置;
⑤用户通过NCom GUI输入常用的网络测试命令;⑥UWI将此命令通过socket传给UNCPS;⑦UNCPS在rsocket上收到用户网络测试命令,检查命令有效性,如果是非法命令(比如非网络测试命令),返回非法命令信息给UWI的NCom GUI;⑧如果是合法网络命令,UNCPS通过vsocket传给IP为ClientIP的VC;⑨VC中的TelnetD执行此网络命令,将结果通过socket返回给UNCPS的vsocket;⑩UNCPS将vsocket上所有收到的信息转发到rsocket上;UWI的NCom GUI获取socket上收到的信息,显示在WEB页面上,即为用户网络测试命令的结果。
所述的虚拟主机资源回收,具体为在用户点击关闭虚拟主机按钮或者正常退出实验系统或者用户超时后,虚拟主机管理进程将根据远程用户分配的标识符得到虚拟主机的标识符,通过控制程序给虚拟主机进程发送关闭命令,迫使虚拟主机关闭,回收虚拟主机使用的cpu和内存资源,同时根据远程用户分配的标识符得到虚拟网卡的标识符,将使用的虚拟网卡资源释放,供以后登入的用户使用。超时机制是为了防止用户非法关闭浏览器导致的服务器无法知道远程用户的行为而设置,一般设置为2个小时,在有新用户登陆进入系统分配资源时候检查,将超时用户使用的资源释放。
本发明工作时,用户连接到Internet后,通过客户端浏览器打开防火墙实验系统登陆页面,输入帐号和密码登陆系统;点击准备实验按钮,此时后台JavaBean程序根据算法给用户分配一个标识符N,同时根据N分配给用户一个内部网络的私有IP地址;此时启动虚拟主机命令按钮有效,用户点击此按钮,WEB页面通过JavaBean发送启动命令和N给虚拟主机管理服务进程,虚拟主机管理程序根据N和计算出来的虚拟主机IP启动虚拟网卡和虚拟主机,此虚拟主机通过虚拟网卡可以通过防火墙内网卡连接到Internet;在虚拟主机成功启动之后,远程用户即可开展防火墙实验;将远程用户配置规则写入到防火墙核心规则表;远程用户在配置完规则后,点击结果测试按钮,打开网络命令操作控制台,此时控制台通过socket主动连接到防火墙服务器上的网络命令代理服务进程,并将自己分配到的虚拟主机IP地址告诉网络命令代理服务进程,网络命令代理服务进程在得到虚拟主机IP地址后,通过Telnet协议连接虚拟主机;用户在网络命令操作控制台输入验证防火墙规则的网络命令,控制台将此命令通过网络命令代理服务进程传给虚拟主机;虚拟主机接收到网络命令后执行,执行时的网络数据包是通过虚拟网卡连接到防火墙发送出去,此时防火墙根据远程用户配置的规则决定是否允许通过;虚拟主机将网络命令执行的实时结果通过网络命令代理服务进程传回给远程用户,显示在网络命令操作控制台上。
本发明提供了针对防火墙普通包过滤、状态检测包过滤和应用代理三种防火墙技术的配置实践,并提供了通过WEB页面接口验证配置结果的方法。实现的系统最大的特点是在已有的多用户防火墙教学实验系统技术的基础上实现了对远程大规模多用户并发控制的支持,支持Internet任意位置的拨号用户、专网连接用户或其他形式上网的用户通过浏览器直接进行防火墙技术的实践,并且用户可以通过WEB接口提供的网络命令操作控制台直接验证防火墙规则的有效性。
测试结果表明,本发明实现的远程多用户并发控制防火墙实践系统在信息安全实践领域是一个非常大的创新,能显著且有效的提高信息安全设备在培训实践中的使用效率,同时也非常方便普通上网用户通过任意连接到Internet的计算机进行信息安全的实践培训,有助于信息安全培训认证的统一。
具体实施例方式
结合上述的本发明的原理和方法提供以下的实施例。基于本发明实现的远程大规模多用户并发控制防火墙实验系统采用B/S架构,利用JSP、JavaBean和Linux C编程技术实现,支持多个处在Internet任意位置的远程用户通过浏览器登陆同一台防火墙系统进行防火墙技术的实践。具体的实施内容如下1.系统的服务器端至少包括两台主机、一台用做防火墙主机、一台用做虚拟主机服务器。
防火墙主机采用X86架构计算机,安装三块网卡,内部网卡配置IP地址192.168.1.254/16,外部网卡配置公网IP,DMZ网卡配置IP地址10.1.1.1/24。安装Linux操作系统,并安装相应的防火墙包过滤软件IPTABLES、应用代理软件TIS FWTK及JSP服务端软件Jakarta Tomcat,还有远程防火墙实现系统WEB服务端软件和用户网络命令代理服务程序。防火墙主机需要配置好内网到外网、内网到DMZ区域的NAT转换。
虚拟主机服务器采用X86架构计算机,安装一块网卡,通过网线和防火墙主机的内部网卡连接在一起。安装Linux操作系统,并且需要Linux内核支持Tun/Tap虚拟网卡驱动,并安装支持Linux下的网桥软件Bridging、Linux虚拟主机软件User Mode Linux(UML),还有虚拟主机管理服务端软件和虚拟主机文件系统。
2.管理员在远程用户可以开展防火墙实验前,需要在防火墙主机上启动WEB服务器和网络命令代理服务端程序,需要在虚拟主机服务器启动Bridging软件,并且将内网卡设置为混杂模式,加入到Bridging上,还需要启动虚拟主机管理服务器软件。
3.远程用户接入到Internet后,打开浏览器,访问防火墙主机外网IP,即可进入防火墙系统的登陆页面。用户输入用户名和密码登陆实验系统。
用户成功登陆后,点击准备实验按钮,此时WEB页面通过调用后台的JavaBean程序为用户分配一个用户标识符,比如用户分配到的标识符为23,则通过WEB页面显示给用户分配到的虚拟主机IP地址是192.168.23.79,子网掩码是255.255.0.0。此时页面上的启动虚拟主机命令按钮有效,用户点击启动虚拟主机命令按钮,启动成功后,用户此时可以看到防火墙实验系统支持的各种防火墙技术实验功能。
然后用户即可进行防火墙规则的配置,可以配置普通过滤、状态检测包过滤和应用代理技术的防火墙规则。比如,用户配置了一条拒绝所有到www.sjtu.edu.cn的规则。
用户在配置规则后,点击结果测试按钮,WEB页面此时载入Java Applet程序,启动网络命令操作控制台。用户需要测试上述配置的规则是否有效,输入网络命令ping www.sjtu.edu.cn,此时用户可以通过操作控制台看到网络命令操作失败的结果,若此时用户ping bbs.sjtu.edu.cn,则用户可以看到操作成功的结果。如果用户是通过操作系统自带的ping命令测试是否可以到达www.sjtu.edu.cn,则永远是操作成功的结果,因为此时的数据包并未经过防火墙系统。
通过上面的流程,用户即可很好的理解防火墙的原理,学习到防火墙技术。本发明实现了对远程大规模多用户并发控制的支持,支持Internet任意位置的拨号用户、专网连接用户或其他形式上网的用户通过浏览器直接进行防火墙技术的实践,能大大提高防火墙技术的实践、培训和推广。
权利要求
1.一种远程大规模多用户并发控制的防火墙实验系统的实现方法,其特征在于,包括以下步骤(1)用户标识符分配首先在远程用户登陆系统准备实验时,按用户标识符分配算法给用户分配一个互相不冲突的标识符;(2)虚拟主机资源分配在远程用户分配到标识符后,根据虚拟主机资源分配算法给远程用户分配内部对应的虚拟网卡、虚拟主机需要的内存和CPU资源;(3)多用户规则处理接着在用户在进行防火墙规则配置时,根据多用户规则处理算法,将用户空间规则和防火墙核心空间规则联系起来;(4)用户虚拟网络操作控制台通过WEB界面提供给远程用户网络命令操作控制台,并将命令执行结果反馈给用户WEB界面;(5)远程用户网络命令代理在防火墙系统上运行的远程用户网络命令代理程序,将远程用户连接到防火墙的Socket连接和防火墙通过Telnet协议连接到虚拟主机23端口的Socket连接一一对应起来;(6)用户规则测试在用户虚拟网络命令操作控制台、远程用户网络命令代理服务端和虚拟机Telnet服务端互连之后,远程用户通过用户规则测试流程和算法验证规则的有效性;(7)虚拟主机资源回收在远程用户不需要使用时,关闭远程用户对应的虚拟主机,释放使用的内存和CPU资源,同时释放占用的虚拟网卡资源。
2.根据权利要求1所述的远程大规模多用户并发控制的防火墙实验系统的实现方法,其特征是,所述的用户标识符分配,具体为在远程用户登陆进防火墙系统,首先准备实验,通过后台的JavaBean程序为远程用户随机分配一个1-254范围内的相互不冲突的整数作为用户标识符,假设为n,然后以192.168.n.79,IP地址最后一位选择范围1-254,作为远程用户对应虚拟主机的IP地址,以umn和tapn作为远程用户对应虚拟主机标识符和虚拟网卡标识符。
3.根据权利要求1或者2所述的远程大规模多用户并发控制的防火墙实验系统的实现方法,其特征是,所述的用户标识符分配,其分配方法为①UWM随机分配给用户一个在1-254范围内的号码;②然后将此号码发送给VHMS;③VHMS检查此号码是否已经在虚拟客户机队列中,如果已经在队列中转①,否则转④;④VHMS将此号码分别插入VCList和虚拟网卡队列中;⑤返回正确结果给UWM。
4.根据权利要求1所述的远程大规模多用户并发控制的防火墙实验系统的实现方法,其特征是,所述的虚拟主机资源分配,具体为在Linux操作系统上采用C语言实现,定义两个链表,一个为TapList,用来描述虚拟网卡资源,一个为VCList,用来描述虚拟主机资源,然后通过对链表管理的方式管理虚拟网卡设备资源和虚拟主机资源,首先根据tapn分配一个新的虚拟网卡设备资源,然后将此虚拟网卡作为虚拟主机umn资源的一部分,启动umn虚拟主机,分配需要的cpu和内存资源。
5.根据权利要求1所述的远程大规模多用户并发控制的防火墙实验系统的实现方法,其特征是,所述的虚拟主机资源分配,分配方法如下①UWI发送启动虚拟主机命令给UWM;②UWM通过socket发送“startvc n”给VHMS;③VHMS查找TapList,如果n已经在TapList中继续,否则转⑧;④VHMS查找VCList,如果n已经在VClist中继续,否则转⑧;⑤启动TunTap虚拟网卡tapn,将tapn加入到umlbrg,服务器启动时通过brgctl启动的Linux网桥;成功继续,失败转⑧;⑥启动UMLinux虚拟主机umn,成功继续,失败转⑧;⑦返回正确给UWI;⑧返回错误给UWI。
6.根据权利要求1所述的远程大规模多用户并发控制的防火墙实验系统的实现方法,其特征是,所述的用户虚拟网络操作控制台,具体为采用Java Applet编程技术实现,在远程用户WEB接口部分嵌入用Applet编程实现的网络命令操作控制台,此控制台首先连接防火墙系统上的网络命令代理服务程序;在用户进行网络命令操作时候,将用户输入的网络操作命令通过Socket传给远程用户命令代理服务程序,然后将远程用户代理服务器返回的结果显示在网络命令操作控制台界面上。
7.根据权利要求1所述的远程大规模多用户并发控制的防火墙实验系统的实现方法,其特征是,所述的远程用户命令代理,具体为在Linux操作系统上用C语言实现,采用Socket Proxy算法和链表存储结构,定义链表数据结构vclient,首先根据网络命令操作控制台在建立连接后传过来的虚拟主机的参数构建一个新的vclient对象,然后将远程用户网络命令操作控制台连接到防火墙系统上的Socket和通过Telnet协议连接到虚拟主机的Socket分别加入到此vclient对象中,然后利用Linux下的多路I/O转接技术实时的在这两个Socket之间转换数据。
8.根据权利要求1所述的远程大规模多用户并发控制的防火墙实验系统的实现方法,其特征是,所述的用户规则测试,具体为用户在配置完一条或多条具体的防火墙规则后,通过嵌入WEB的用户网络命令操作控制台输入网络命令,然后远程用户网络命令代理服务程序将此命令传给虚拟主机,虚拟主机在自己的终端执行此命令,并将执行结果通过远程用户网络命令代理服务程序传回给用户网络命令操作控制台。
9.根据权利要求1或者8所述的远程大规模多用户并发控制的防火墙实验系统的实现方法,其特征是,所述的用户规则测试,其流程为①启动NCom GUI,NCom GUI通过socket连接UNCPS;②UNCPS在其NcList中新建立一项,将新建立的socket加入到rsocket位置;③NCom GUI发送自己的ClientIP给UNCPS;④UNCPS通过socket连接ClientIP的Telnet服务端,将此socket加入刚在NcList中新建立的项的vsocket位置;⑤用户通过NCom GUI输入网络测试命令;⑥UWI将此命令通过socket传给UNCPS;⑦UNCPS在rsocket上收到用户网络测试命令,检查命令有效性,如果是非法命令,返回非法命令信息给UWI的NCom GUI;⑧如果是合法网络命令,UNCPS通过vsocket传给IP为ClientIP的VC;⑨VC中的TelnetD执行此网络命令,将结果通过socket返回给UNCPS的vsocket;⑩UNCPS将vsocket上所有收到的信息转发到rsocket上;UWI的NCom GUI获取socket上收到的信息,显示在WEB页面上,即为用户网络测试命令的结果。
10.根据权利要求1所述的远程大规模多用户并发控制的防火墙实验系统的实现方法,其特征是,所述的虚拟主机资源回收,具体为在用户点击关闭虚拟主机按钮或者正常退出实验系统或者用户超时后,虚拟主机管理进程将根据远程用户分配的标识符得到虚拟主机的标识符,通过控制程序给虚拟主机进程发送关闭命令,迫使虚拟主机关闭,回收虚拟主机使用的cpu和内存资源,同时根据远程用户分配的标识符得到虚拟网卡的标识符,将使用的虚拟网卡资源释放,供以后登入的用户使用。
全文摘要
一种信息安全技术领域的远程大规模多用户并发控制的防火墙实验系统的实现方法,首先在用户登陆系统准备实验时按用户标识符分配算法给用户分配一个标识符;在用户启动和关闭自己远程对应的虚拟机时,按照虚拟机管理算法管理与远程用户标识符对应的虚拟机系统;在用户配置防火墙规则后,需要验证防火墙规则有效性时,通过嵌入WEB的网络命令操作控制台完成验证;网络命令操作控制台通过防火墙系统上的远程用户网络命令代理服务程序与虚拟主机真正网络命令操作终端联系起来,实时将用户网络命令传出,同时将接收的结果显示给用户。本发明解决已有的多用户防火墙系统无法提供远程用户实践的问题,能大大提高防火墙技术的实践、培训和推广。
文档编号H04L29/06GK1761252SQ200510030970
公开日2006年4月19日 申请日期2005年11月3日 优先权日2005年11月3日
发明者杨树堂, 李建华, 李铎锋, 马进, 陆松年 申请人:上海交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1