FW防火墙应用代理的设计与实现_第1页
FW防火墙应用代理的设计与实现_第2页
FW防火墙应用代理的设计与实现_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、FW防火墙应用代理的设计与实现* 本文承蒙四川科委科学基金的支持。刘峰 李涛 张炜 王耀 冷丽琴 肖赢 王先旺*刘峰、张炜、王耀、冷丽琴、肖赢、王先旺:计算机软件硕士生。 李涛:教授,研究方向:网络安全,人工智能与神经网络。四川大学计算机系(西区) 成都 610065摘要:本文介绍了FW1.0防火墙的应用代理的设计与实现,介绍的应用代理包括HTTP代理、FTP代理、TELNET代理和SMTP代理。关键字:应用代理,防火墙,内容过滤 1 引言伴随着Internet的迅猛发展,信息安全问题愈加突出。防火墙是保证网络安全的主要工具之一。目前我国网络安全产品的研究还处于初级阶段,显然,研究和开发具有自

2、主知识产权的防火墙,具有无比重大的政治意义和经济价值。在四川省科学基金的支持下,四川大学计算机学院人工智能与网络安全实验室研究并开发了基于Linux的防火墙FW1.0。FW防火墙主要包括包过滤和应用代理两个部分。本文主要介绍FW1.0防火墙的应用代理部分的设计与实现。2 FW防火墙应用代理的设计及实现2.1 FW防火墙应用代理的总体设计防火墙FW主要有包过滤子系统以及应用代理子系统组成。其中FW应用代理主要由:HTTP、FTP、TELNET、SMTP四个各自相对独立的应用代理组成。不同代理分开实现,相互之间独立,以简化编程。根据配置的不同,代理可以由inetd启动,也可由系统初始化脚本启动,作

3、为独立的守护进程运行。不同代理的总体结构相似,如图1所示。初始化部分:当代理由系统初始化脚本启动时,它以守护进程的方式监听于特定端口。当请求到来时,它派生一个服务子进程,并复制连接套接字到0、1和2,服务子进程读写套接字描述符0、1、2就可以与客户通信。这样与由inetd启动的服务进程保持相同的接口。图1 FW应用代理的体系结构(单个代理)系统初始化脚本启动代理,监听服务端口Inetd监听服务端口Fork子进程,复制套接字描述符到0、1、2Fork子进程,exec代理设置进程运行环境通信处理模块客户请求到来初始化部分进程环境设置模块:这个模块的作用是读代理规则配置文件,并根据配置文件设置服务进

4、程的运行环境,包括进程工作目录、UID、GID等。通信处理模块:这个模块是代理的核心部分,处理与应用协议相关的安全问题,并充当客户与服务器通信的中间人。后面将介绍不同代理的通信处理模块的实现。2.2代理通信模块的设计与实现2.2.1 HTTP代理HTTP代理可以处理HTTP、Gopher、FTP等协议。HTTP代理首先分析客户使用的协议,然后根据不同的协议进行处理。对HTTP协议,首先与代理规则相匹配,看是否允许客户的当前请求或者首先需要认证。如果需要认证,对于HTTP1.1及其更新版本的客户,如果请求中有Proxy-Authorization头,解析用户名和口令,并与认证服务器通信,验证用户

5、身份;否则,发送407响应,并包含Proxy-Authenticate头域。对版本号低于1.1的客户,由于其不能识别Proxy-Authenticate头,故仅通知它当前请求需要认证用户身份。如果客户的请求被允许,首先对请求消息的头域进行处理(主要是Hop-to-Hop型的头域),然后把客户的请求向前传递。对服务器的响应,如果包含HTML文件,根据规则配置,可对JAVA、javascipt、Activex和vbscript等脚本进行过滤,并可进行基于关键词的内容过滤。对服务器响应的其他文本文件,也可进行基于关键词的内容过滤。然后把处理后的响应传递给客户。另外,HTTP代理使用了cache技术和

6、条件GET请求来优化性能,并支持持久连接(persistent connections)。对Gopher协议和FTP协议,也可对传输的文件进行内容过滤。对FTP协议,仅提供以匿名方式登录FTP服务器。无论客户使用标准方式(PORT命令)还是被动方式(PASV命令)建立数据连接,代理与服务器的数据连接均优先使用被动方式。这样,代理具有较好的包过滤特性5。2.2.2 FTP代理FTP使用“USER 用户名服务器:端口”的方式向FTP代理传递远程服务器的地址信息。FTP代理与远程服务器的数据连接优先使用被动方式。 FTP代理还提供了自定义命令AUTH和RESPONSE用于用户身份认证。认证的过程如下

7、:当代理发现用户的请求需要首先进行身份认证时,它向提示客户需要首先进行身份认证。用户使用AUTH命令把用户名传送给代理,如果代理还没有与认证服务器连接,那么先与认证服务器连接,并把用户名传送给认证服务器。认证服务器根据查找认证数据库,如果存在此用户,根据用户使用的认证协议作出响应。代理把认证服务器的响应传给客户,客户根据响应及认证协议做答。代理把用户的回答传送给认证服务器进行验证。认证服务器把验证结果通知代理。如果验证通过,则允许请求;否则,提示用户重新进行认证或拒绝用户请求(认证的次数超过了配置的最大值)。如果认证失败的次数超过了配置的最大值,此用户将被锁定一段时间。2.2.3 TELNET

8、代理TELNET使用TELNET代理自定义的SERVER命令指定要访问的远程服务器的地址和端口。TELNET代理也提供了与FTP相同的命令用于用户身份认证,认证机制与FTP相似。如果远程服务器并非TELNET服务器,代理将截获客户的选项协商请求,并向客户回答不支持所协商的选项。另外,在提供服务前TELNET代理登记SIGURG信号的处理函数,来处理带外数据的传送。2.2.4 SMTP代理SMTP代理分为SMWRAP和SMWRAPD两个独立的部分。SMWRAP负责与发送邮件的客户程序进行交互,把邮件存放到邮件缓冲区。SMWRAP内置了以下安全检查:a.防止Helo缓冲区溢出攻击;b.防止Helo

9、命令欺骗攻击;c.限制接收人的数量;d.限制内部非授权用户发送邮件;e.限制SMTP命令在512个字节之内;f.基于关键词的内容过滤。SMWRAPD以守护进程方式运行,定时唤醒,扫描邮件缓冲区。如果有尚未发送的邮件,SMWRAPD派生一个子进程,并调用sendmail发送邮件。另外,根据配置文件,在把邮件发送出去之前,可以调用专门的邮件内容扫描程序对邮件进行检查。这样,在进一步发送邮件之前,可进行一系列安全检查。3 结束语由于Linux 开放源代码并加之全球计算机学者的努力,已成为大家公认的较为安全的操作系统。因此,基于Linux的防火墙的研制,对于避免防火墙本身的安全漏洞等具有重要的意义,本

10、文较为详细地介绍了防火墙FW中应用代理的设计。实验结果显示,本文介绍的应用代理技术具有安全、开放的特点。 参 考 文 献1Marcus Goncalves,宋书民等译,机械工业出版社,防火墙技术指南,20002 J. Postel 等,RFC0959,FILE TRANSFER PROTOCOL (FTP),19853T. Berners-Lee等,RFC1945,Hypertext Transfer Protocol - HTTP/1.0,19964R. Fielding等,RFC2068,Hypertext Transfer Protocol - HTTP/1.1,19975 S. Bellovin,RFC1579,Firewall-Friendly FTP,19946 F. Anklesaria,RFC1436,The Internet Gopher Protocol,1993The design and implement of ap

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论