首页 > 范文大全 > 正文

利用delphi实现服务器的设计

开篇:润墨网以专业的文秘视角,为您筛选了一篇利用delphi实现服务器的设计范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:随着互联网技术的不断发展,网络所带给我们的好处有目共睹,但由于计算机网络具有联结形式多样性、网络的开放性、互连性等特征,致使网络易受黑客、恶意软件和其他不轨的攻击,因此,网络必须有足够强的安全措施,无论是在局域网还是在广域网中,都存在着自然和人为等诸多因素的脆弱性和潜在威胁。故此,网络的安全措施应是能全方位地针对各种不同的威胁和脆弱性,这样才能确保网络信息的保密性、完整性和可用性。

该文就解决局域网网络安全的一项重要技术――利用服务器来实现防火墙技术进行了全方位,深层次地探讨,并提供了一种实用的防火墙设计方案。

关键词:服务;防火墙;网络安全;包过滤

中图分类号:TP368文献标识码:A文章编号:1009-3044(2008)28-0086-02

The Realization of Proxy Server Designed by delphi

GAO Ming-da

(Xiamen University Department of Computer Science, Fujian 361000,China)

Abstract:With the development of the Internet technology, the benefits brought by the Internet are obvious to all.But because of some special characteristics, such as the variety of connecting type, openness and connectivity, the computer network is easily attacked by hackers, malicious software and other illegal invasion. There exists the frangibility and latent threat in both LAN and WAN due to the nature and artificial causes. Therefore, some necessary security measures, which is strong enough, must be taken in order to insure the secrecy, integrality and usability of network information, in view of different kinds of threats and frangibility.

This article comprehensively and deeply discusses an important technology about the school network security, using proxy server as a firewall technology, and provides a practical firewall design proposal.

Key words: proxy;firewall;network security;packet filter

1 常见网络攻击手段

互联网上广泛使用的是TCP/IP协议,但由于早期该协议设计方面的缺限,造成了其自身存在很多的安全漏洞。比如:IP地址可以由软件设置,给假冒地址和地址欺骗提供了可用之门;支持源路由方式,也就是说源点可以指定信息包传送到目的节点的中间路由,这就提供了源路由攻击的条件,还有应用层上的多种协议本身不具有保密性可言,也为否认及拒绝等欺骗行为提供了方便。在基于TCP/IP的网络上,有以下多种可用的攻击类型:利用程序处理错误的攻击,WWW欺骗的攻击,IP欺骗攻击,缓冲区溢出攻击,远程攻击。

利用程序处理错误的攻击是指利用程序将含有错误IP包头信息的IP包发送到对方网络,对方在对此包进行组装时会因为包的错误而出错,严重的可以引起重大系统崩溃等。

Web欺骗攻击是指在用户浏览目标网站之前,由黑客生成相同的页面迷惑用户,而用户输入一些重要信息时,这些信息先经由中间网站处理,再提交不同的要求至原先的目标站点,这时目标站点可能不予理会用户的请求,因为中间站点实际上已改变了用户原先的请求。

IP欺骗攻击是指利用伪造的IP地址进行攻击,通常情况下这种攻击只适合于同一子网内的机器,因为当伪造的机器与攻击目标不在同一子网内时,就收不到对方返回的IP数据包。

缓冲区溢出其实是利用了C语言中子程序设计、调用的漏洞的。它的主要原理是由于C语言在执行函数调用时,将参数与返回地址全压入栈,待执行完时再从堆栈取。但是如果程序内部的数组或共享数据缓冲区占用了堆栈内容,那么程序可能出错,或返回的不是原来的地址而是另一个地址,而黑客就是利用了这个地址,旋转了自己精心编写的程序。

远程攻击,就是针对于除自己以外的任何机器的攻击,主要是利用了网络的相关协议进行相连的。

2 防火墙技术类型

到今天,防火墙技术已经历了三个阶段:包过滤技术、服务技术、状态监控技术,使用比较广泛的是前两种技术。

包过滤技术是源于IP地址的,它的原理是把合法IP地址的数据包转发,而把非法IP地址来源的数据包丢弃。

服务技术等于在外网与内网间建立了一个中间层服务器,用来提供对外的多项服务,如:FTP,TELNET,HTTP等等,每一个服务器都是一个简短的程序,专门为网络安全设计,它只支持标准命令的子集,如果服务器不支持某个命令,则用户就没有该命令的权限,而且服务器只允许被特定的主机访问,每个服务器与其它的服务器无关,这样,如果某个服务器出现了漏洞,只需要简单地去掉这个服务器,也不会对其它的服务器构成威胁,同时便于增加新的功能。服务的原理是对于用户的请求进行验证,如果合法,再由服务器从目标主机取回信息,这样做的好处在于可以有效地屏蔽非法用户申请及信息,有效地保证认证和登录,简化了过滤规则。服务器除有安全控制功能外,还提供了CACHE功能,以提高网络的响应速度。服务器的日志也为网络管理员提供更多的管理信息。

3 防火墙结构类型

根据网络拓朴结构,防火墙还可以分为:双宿主机型,屏蔽主机型,屏蔽子网型。所谓的双宿主机是指仅用一台计算机建立的防火墙系统,此机配有两块网卡,一接INTERNET,另一个接INTRANET(也即内部网),实现防火墙功能。而屏蔽主机型指利用一个包过滤路由器加一台服务器组合构成一个防火墙系统,这样比前者效率高。屏蔽子网是指利用两个包过滤路由器及一台服务器建立的防火墙系统,一个包过滤用于过滤外来信息,一台包过滤用于过滤内部请求。

4 利用delphi设计简易的服务器的原理

4.1 防火墙设计原则

防火墙的设计总体来说分成硬件和软件两个部分。软件就是在实施了相应的硬件架构之后,写出能充分利用这种架构的程序。一般情况下,在设计防火墙之前,首先应该明确整个系统的安全策略,也就是防火墙将为我们这个系统提供什么的一种保护。

4.2 简易的服务器系统的功能组成

基于以上策略以及对防火墙的初步认识,我们可以利用delphi软件开发平台设计一个简易的服务器程序,整个体系结构可采用双宿主机结构,其中在堡垒主机上安装在Windows2000 SEVER版或Windows XP操作系统,网卡采用普通网卡即可。内部网采用的是10/100M自适应交换机相连形成的以太网结构,客户端采用的是Windows XP或2000 Professional操作系统,浏览器IE6.0。

4.3 开发思路

当前流行的浏览器的系统选项中有一个参数,即“通过服务器连接”,经过编程测试,当局域网中一台工作站指定了该属性,再发出Internet请求时,请求数据将发送到所指定的服务器上,以下为请求数据包示例:

GET / HTTP/1.0

Accept: */*

Referer: /

Accept-Language: zh-cn

Proxy-Connection: Keep-Alive

User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; QQDownload 1.7)

Host:

Cookie: PREF=ID=65a3921d531ae5ee:NW=1:TM=1210733840:LM=1210733840:S=E0vq43rKo-MPVSfU; NID=14=jwzNJbv3IlINgK8_pUQGHO7enkGuFf3jdIq785IA4n7ohygC7UEsUFAdJZTQJ9_Ssdf0PJJaeeDGeITYgeMOP9czT2zf9n1SEYUVlTwAsHxS44RKDTlFAU48osgLGZ2R

其中第一行为目标URL及相关方法、协议,“Host”行指定了目标主机的地址。由此知道了服务的过程:接收被端的请求、连接真正的主机、接收主机返回的数据、将接收数据发送到被端。为此可编写一个简单的程序,完成上述网络通信重定向问题。

用Delphi设计时,选用ServerSocket作为与被工作站通信的套接字控件,选用ClientSocket动态数组作为与远程主机通信的套接字控件。

编程时应解决的一个重要问题是多重连接处理问题,为了加快服务的速度和被端的响应速度,套接字控件的属性应设为非阻塞型;各通信会话与套接字动态绑定,用套接字的SocketHandle属性值确定属于哪一个会话。

通信的衔接过程如下图1所示。

1)被端浏览器发出Web请求,服务器的Serversocket接收到请求。

2) 服务器程序自动创建一个ClientSocket,并设置主机地址、端口等属性,然后连接远程主机。

3) 远程连通后激发发送事件,将Serversocket接收到的Web请求数据包发送到远程主机。

4) 当远程主机返回页面数据时,激发ClientSocket的读事件,读取页面数据。

5) 服务器程序根据绑定信息确定属于ServerSocket控件中的哪一个Socket应该将从主机接收的页面信息发送到被端。

6) ServerSocket中的对应Socket将页面数据发送到被端。

以上delphi中两个控件在数据通讯时的大致流程,在具体编写中可根据实际情况设置控制内部网络用户访问的站点的功能,包括可以添加内容过滤、MAC地址过滤以进一步的完善其功能。

参考文献:

[1] Linux 中国门户站[EB/OL]..

[2] 国家计算机网络应急处理中心[EB/OL]..cn/.

[3] 上海科学技术委员会[EB/OL]./.

[4] 韩德志,谢长生.一种高性能防火墙系统的设计与实现[J].计算机应用,2000,20(07):34-37.