搜索
您的当前位置:首页正文

基于嵌入式linux的防火墙远程配置核心服务系统的研究与开发

来源:意榕旅游网
维普资讯 http://www.cqvip.com 科技信息 0计算机与信息技术0 SCIENCE INFORMATION 2006年第11期 基于嵌入式linux的防火墙远程 配置核心服务系统的研究与开发 王彬王则林陆建德 (南通大学计算机科学与技术学院 江苏南通226006) 摘要:本文对建立安全的防火墙远程配置系统进行了分析、研充。并在此基础上设计和实现了一个安全的防火墙远程配置系统。介绍了设 计一个嵌入式WEB服务器所涉厦的知识以厦如何运用SSL安全套接字采保证客户和服务机之间传输信息的安奎性、完整性和保密性 本文 并对SSL安全套接字加密的粒度太粗进行了改造,应用OPENSSL开发包的二次开发功能,针对不同的用户需求设计了不同的安奎级别。而不 是不管什么情况都提供统一安奎级别 这样在一定的程度上节省了系统资源和网络带宽。本文在远程配置系统中实现了基于UP.L的内客过 滤.和基于P2P协议的内容过滤。使防火墙的功能得到进一步的加强 关键词:防火墙;iptables SSL P2P UP.L WEB服务器;远程配置;身份认证 he research and development of the core system of remote configuration based on embedded Linux firewall WangBin Wang Zelin LuJiande (The School of Computer Science and Technology,NanTong University 226006) Abstract:This paper has analyzed and discussed the remote configuration for building a safe firewal1.The design and implementation of such a svstern.an embedded web server,is also referred in detail.It has also introduced how to use SSL(security socket layer)to eosore the safeness、integrity and privacv protection between the server and clients.This paper presented the recreation c0arse grain of SSL eneryption.。using OpenSSL development kit for redevelopment.The system designed different security level due to the requirement of different users,rather than provided unitary security level anyway,In this case.sysem resources and network bandwidth have been saved to a certain degree.The system has realized the content filter based on URL and P2P protocols,which enhanced the function of firewal1. keywords:firewall,iptables;SSI :p2p,url;web server;remote configuration;ID identiifcation 1.总体内窖介绍 整个远程配置管理系统要实现一个功能,就是支持远程用户通过 标准Web浏览器访问远程配置服务器.从而对防火墙系统进行配置 和相应的管理。系统设计分成二三个模块。第一个模块实现该服务系统 的框架.使客户能通过浏览器登录访问网页、设置表单、上传内容、得 到反馈.即建立一个Web服务器。该Web服务器具有两方面的功能, 是受活的静态文本提供功能。W 服务器能根据用户的不同请求提 供不同的HTMI 页面给浏览器;另一方面是具有动态交互功能,达到 远程配置和管理的目的。 远程配置系统是为防火墙配置服务的,而设汁的防火墙是为了防 止内外用户的不合法访问,也就是为r内网的安全而设计的.这样显 然就要对防火墙远程配置系统的安全提出更高的要求,一个没有被授 ・置脚本.有的配置脚本调用相应的Iptables命令进行相关的防火墙配 置和相关的配置规则的查询。 这三个模块中前两个模块是辅助模块,足为第三个模块提供服务 的.三个模块形成一个统一整体。 2.Web服务器设计IS]tTJ 整个设计就是分析客户请求、处理客户请求、构造响应的返回消 息,从而Web的设计分成两犬模块,各个模块分别由进程httpsrv和 mycgi来实现相应的功能.的者来进行客户请求的分析.后者完成构造 响应的返回消息。而对于客户的请求的处理两者都会涉及到。 权的用户如能对防火墙进行配置,就会造成防火墙形同虚设。必须保 证合法的用户才能对防火墙进行配置,同时还要保证网 传输的数据 保密性和完整性.即被截获后不能被解析出实际所传输的内容电不能 对内容进行修改。另外还要有一种机制保证客户端在配置时时对正确 的防火墙服务端进行配霞,而不是冒充的服务端。这些就涉及到客户 端和服务端的认证、传输数据的加密、传输数据的消息摘要等 第=:块 模块设计就是对远程客户和服务器之问的通信实现SSL支持。利用 SSL安全套接字来解决安全巾的三个问题。 在建立了-个安全的WEB服务器后.就要让此服务器具备一定 功能。存本设计中就是让此服务器具备防火墙的配置和相_荚管理的功 能。这样第三个模块就是本设计的目的.就足使此服务系统能支持防 火墙远程配置和管理。 三个模块之问的关系见图l一2.客户端利用标准通用浏览器发出 请求。HTTPD响应客户端的请求,进行相应的处理 如果传输的数据 需要安全保障,就提供SSI 加密。防火墙利 httpsv进程接受客户请求,对客户请求进行语法分析,r生成环境 变量,供myegi进程共卓,在对客户请求进行语法分析时.要对index 进行特殊处理。此种请求是客户端第…次向服务器发出请求,要求进 行 次会话,当服务器接收到此请求时。在httpsrv进程里进行处理. 会要求对客户端身份进行验证,只有身份得到验证才能继续会话。对 mycgi写到无名管道中的信息进行读取,并返回给客户。 myegi进程从httpsrv进程设置的环境变量中得到客户上传信息. 并根据信息进行分析,从而进行相应的处理,如是Eet请求就读取相关 的配拦文件,根据配置文件修改相应的网页内容。或返回给客户所要 浏览配越文件和 置规则。这两种情况服务器处理的最大区别是在构 成相应实体头时.第二种情况会构造“Content disposition:attachment: iflename=filepath/filename”宴体头项.当通用浏览器处理此头时就会 跳出一对话框供客户端选择是在线浏览文件还是把文件存储在客户 端。并把构成的文件写到无名管道中;如是post请求,就修改相应的配 置文件,并且在dir script 文件中标注此配置文件已被修改。以方便批量提交生成脚本文件并执行。让脚本程序根据相应的配置文件进行适 当的处理。同时返回配置脚本的内容。尤论是哪一种请求.最后都要按 照响应包格式要求.构造返回消息 httpsrv和mycgi两者之问.httpsrv是和客户端浏览器直接打交 道.直接处理客户请求和把服务器端的处理结果返回给浏览器端。 mycgi是和httpsrv以及CGI之问进行相互信息交换.它利用httpsrv提 供的信息进行相关处理,在进行处理的时候就有可能调用CGI程序。 httpsrv程序是通过环境变量传输信息给myegi。而myegi是通过管道 传输反馈信息给httpsrv,当然这两个进程之问也可以通过标准输入和 标准输出来进行。但这种情况下要重写输入、输出的处理。故有不便。把 服务器设计成两个进程.是为_r增加灵活性和独立性,相互之问就l|lJ以 通过接13来相互联系。而进程内部的修改不会影响另外一个进程。 _3.SSL设计【懈 整个SSL模块要通过握手过程来进行密钥的协商和身份的认证, 还要在建立的安全通道上进行数据的传输。以及负责资源管理,在设 用此服务系统生成相应的配置义件,进一・步生成桂I应的防火墙配 计中还要考虑到系统性能问题。为了达到这些目的,把SSL模块进行 图1—2三模块之间的美III 27 维普资讯 http://www.cqvip.com 科技信息 0计算机与信息技术O SCIENCE INFORMATION 2006年第11期 功能细分,分成初始化、SSL连接、身份认证、密码组控制、数据传输、 浏览以及日志浏 会话重用,二次握手和资源释放等功能模块。具体流程见图卜3。 览。 5.嵌入式 linux系统平台的 搐建 因为本防火 墙是一个硬件防 火墙系统。操作系 统必须是嵌人式 系统平台。根据本 防火墙应用对系 统运行平台的特 殊要求,通过从四 个方面对通用 linux系统进行分 田1—3 SSL设计中的各模块的流程闰 析 裁减和改造. 图1—4整个配置闰 来构造面向防火 初始化模块主要为SSL连接做准备工作。主要步骤有初始化SSL 墙应用的嵌人式 库.加载SSL错误定义.选择协议、刨建.L-下文、加载自己的证书和私 linux系统,这四个方面分别是linux内核的分析与精简、系统#be库 钥、加载自己信任的认证中心(certiifcate authority,CA),另外还要加载 的分析与裁减、几个重要配置文件的修改和面向防火墙的shell的设 DH组或RSA组。初始化工作做好后.紧跟的是连接处理.连接模块就 计与实现。 是进行TCP套接字创建.并进行监听随时相应客户端连接请求.然后 对于linux内核的精简。选用系统自备的make menuconfig等内核 创建一个ssL安全套接字,但并不是直接把SSL和TCP监听套接字 配置工具.并根据防火墙应用要求进行裁减,并重新编译内核,因为是 进行绑定.在它们之问先创建一个使用TCP监听套接字的BIO对象. 面对防火墙系统,故在选择时必须要有完备的呵络功能,设备驱动模 然后冉将SSL对象附加到BIO对象.在这里BIO对象提供了一层I/O 块不必选。 抽象机制,底层的1/O设备只要遵循BIO对象的接【_j规则,不一定需 对glibc库的裁减的中心任务就是得到一个尽可能小又功能完备 要是套接字的设备。在SSL连接好后。创建身份认证模块。此模块主要 的共享库。对glibc库的裁减有两种思路:是利用比较低的版本的标准 任务是利用服务器端的证书,客户端的证书,进行彼此身份的认证。另 C库与装载库,还是采用修改库文件来优化系统。前者会遇到开发平 外服务器和客户端要进行密码组协商,由于服务器和客户端所支持的 台和嵌入系统所使用的标准C库版本不同的情况,就会引来交叉编译 密钥组有所不同或者密码组的优先级不同。还有可能他们所要求的加 的问题。如利用后一种方法那么就失去和桌面系统的兼容性,还意味 密强度不同等都会要求进行密码组的协商,还有可能在使用过程中要 着维护一个私有的C库,更主要裁减过程比较复杂。本系统采用前一 改变双方所使用的密钥组。只有协商好使用的密码组才能进行下面连 种的方法。在嵌入式系统中利用2.0.7标准的c库和装载库,另外再利 接 在进行连接后.客户端和服务器之间就建立了一条安全传输通道。 用strip工具把ELF(Executable and Linkable formaO文件的冗余区去 然后就进行数据的传输 SSL在客户端和服务器之问的数据传输和普 除。 通的TCP连接有点类似,但由于两者协议的差异,他们在读写上还是 Linux系统从启动到shdJ登录界面的出现颇为耗时,通过分析 有些不同,当使用SSI 时。调用read0的次数是由写入的数据的记录次 Linux的启动过程。可以发现通过修改配置文件inittab和sysinit,在前 数决定的.而不是由SSL_read0次数决定。往往 ̄eadO的次数远远小于 者中可以删除UPS电源管理部分、对ctrl ah delete键的相应、X ssLread0的次数。另外在写数据时并不能保证调用一次SSL_writeO就 Window的启动等。在后者中删除与防火墙无关的功能,如声音模块、 把缓冲区里的数据都输出。必须要一一个循环来调用SSL_write0直到缓 SCSI磁盘设备等。 bsh中有许多命令在本防火墙系统中不需要提供,甚至不应该提 冲区里的数据全输出再退出 会话模块和二次握手模块是为了节省资 源,提高运行效率。会话模块省去认证过程和协商密钥生成过程,因为 供。从远程配置系统设计的角度考虑。只要保留网络配置的相关命令 每次会话有一・个会话标示TD,通过此m实现会话重用,而二次握手 和iptables命令集。设计时另外建立一目录把这些需要的命令包括进 模块利用OPENSSL二次开发功能给不同的浏览器访问请求给予不同 去.同时把,hin、/shin、/usrPoin、/usr/sbin的内容删除。在建立fshell 的安全级别,从 达到节省资源,同时考虑到长生存期的连接可能会 时,在派生出的子进程利用execv(cmd,g_arglist)函数执行相应命令时。 遭受高强度的攻击,应该重新替换新的密钥资料.采用二次握手可以 参数cmd的路径是系统新建的目录。 达到此目的。最后资源释放模块所作的工作就是关闭SSL套接字,断 6.结束语 本课题对基于linux的嵌入式防火墙的安全配置系统进行了研究 开SSL连接,释放SSL上下文环境。 在设计中提供_『三种安全标准:不提供SSL安全套接字、提供 和设计.但本课题没有实现支持IPv6。另外只是把硬件平台搭建起来。 SSL安全套接字但不提供身份认汪、提供SSL安全塞接字同时也提供 对于linux的精简还缺少科学性和严谨性,特别是glibc的精简。更科 身份认证。普通用户而且是从内部网访问的,同时也只有浏览权限,若 学的应该是以一一种合理的方式,依据防火墙本身的需要去进行裁减, 对安全要求不苛刻 此类访问可以不使要SSL安全套接字而直接用 另外考虑到。在嵌入式系统中,很少有多个程序并行的可能,程序的维 TCP套接字,当超级用户进行访问的时候在它没提出要配置之前也可 护。尤其是库函数的维护更新是不常见的。故在嵌入式系统中使用静 以不要进行基于非对称密钥的身份认诚。这样设计的目的就是在性能 态连接的优势就极为明显。因为静态连接可以只将库中用到的部分连 接进程序。在应用程序鞍少的情况下,静态连接可以达到较好的结果。 和功能之间达到一种调和。 4.防火墙的配置设计 所以如想使嵌入式系统平台空间更小。应该改用静态连接。 整个配置从大的方面被分成三个部分:administration、rule— configuration view~statistic,具体的见圉1-4:administration是关 管 参考文献 理方面的,涉及到网络方面的设置。如网络接口、IP地址、掩码、PORT、 f l】Eric Rescorla,SSL and TLS Designing and Building Secure S ̄tems[M],2001. f21w.Richard Stevens。UNIX Network Programming volum l Networking APIs[M]: DNS等.以及用户管理方面的,像用户的增加和删除。rule— Sockets and XTI.1998. configuration是进行安全规则配置的部分,这是远程配置系统的核心 f 3]Kadton A Freier,Kocher P.The SSL protoco1.Intemet DrM ̄M],1996. 部分。具体的涉及到TCP、UDP、ICMP、URL内容的过滤、另外还有 [4]karim Yaghmour,Building Elndedded LINUX Sy ̄em【M】,2003. NAT即地址的转换以及关于P2P协议的数据包的过滤。其中有基于 [5]朱珂。Apache Server源代码分析【M1。北京:机械工业出版社,2000. URL内容的过滤和基于P2P协议的过滤是本防火墙的增添功能,对 【6]博嘉科技主编,Linux防火墙技术探秘【M】,北京:国防 I 业出版杜。2002. 它们进行了模块的添加后。因为这些模块在核心态工作,而有时用户 [7]l:勇。Apache Server使用全书[M】。北京:清华大学出版社。2001『g刘树春,81 必须和它打交道.为r避免用户直接对内核进行操作.设计了用户配 用Apache建立web站点.北京:电子工业出版社,2002. 嚣平台 先设计系统调用,由它对内核进行处理.然后设计应用程序调 [8]Stiranga VeeigIaghavan著.卢涛译,精通shell编程【M1.北京:人民邮电出版 用此系统调用。远程配置的CGI程序通过调用此应用程序而达到远程 }十.2003. 配嚣的目的。view—statistic是关于一蟪网络设置及防火墙过滤规则的 

因篇幅问题不能全部显示,请点此查看更多更全内容

Top