代理服务的基本技术
代理服务的基本技术
    代理只允许单个主机或少数主机提供因特网访问服务,它不允许所有的主机均能为用户提供此类服务。代理服务的条件是:具有访问因特网能力的主机才可以作为那些无权访问因特网的主机的代理,这样使得一些不能访问因特网的主机也可以完成访问因特网的工作。
    代理服务是在双重宿主主机或堡垒主机上可以运行具有一个特殊协议或一组协议。一些能与用户交谈的主机同样也可以与外界交谈,这些用户的客户程序可以与该代理服务器交谈来代替直接与外部因特网中的服务器的“真正的”交谈。代理服务器判断从客户端来的请求并决定哪些请求允许传送而哪些应被拒绝。当某个请求被允许时,代理服务器就代表客户与真正的服务器进行交谈,并将从客户端来的请求传送给真实服务器,将真实服务器的回答传送给客户。
    对用户来说,与代理服务器交谈就好象与真实的服务器交谈一样,而对真实的服务器来说,它是在与运行代理服务器的主机上的用户在交谈,而并不知道用户的真实所在。
作为代理服务不需任何特殊硬件,但对于大多数服务来说要求专门的软件。
    代理服务只是在客户和服务器之间限制IP通信的时候才起作用的,如一个屏蔽路由器或双重宿主主机。如果在客户与真实服务器之间存在IP级连通的话,那么客户就可以绕过代理系统。
    对于代理服务,我们重点讨论以下四点内容:
1)为什么要代理;
2)代理的优缺点;
3)代理是如何工作的;
4)代理服务器的使用。
一、为什么要进行代理
    如果你的用户不能访问Internet,那么与其连接就没有意义。另一方面,若你的系统中的所有主机都能自由的访问Internet,则在与Inernet网连接时将没有安全感。对于这种情况,现在已经提出一些方案来解决这个问题。
    最为有效的办法是为你所有的用户提供一台主机与因特网连接(但这并不是令人满意的方案),因为这些主机对用户来说是不透明的,那些想访问因特网的用户将无法直接访问,他们不得不在双重宿主主机上登录,并从那里访问因特网,然后将结果送回到它们自己的主机,这种多步处理方法要使用户进行多次传送并且离开他们所熟悉的环境。
    对于一个具有多操作系统的站点来说情况将更糟糕,如果你的本地系统是Macintosh,而你的双重宿主主机是UNIX系统,而UNIX系统可能太陌生了。这样你将受到各种限制,因为UNIX系统中的工具与你在自己的主机上使用的工具可能完全不同。
    没有配置代理系统的双重宿主主机对于利用它来访问因特网的用户来说,会大大降低他们所获得的效益。另外,它一般难以提供足够的安全机制来保护系统,特别是对于要与外界连接的主机。
    代理系统不会受到双重宿主主机不安全机制的影响,它们通过与双重宿主主机的相互作用来解决安全问题。代理系统要求用户在后台与双重宿主主机进行交谈而不能直接在双重宿主主机上进行。由于用户很少与双重宿主主机进行交谈,所以用户根本感觉不到代理的存在,他们认为自己是在直接访问因特网服务器。图1显示了代理系统的实现过程。
    代理系统通过避免用户在双重宿主主机上登录和强迫通过控制软件连接来解决安全问题。因为代理软件的运行不需要用户登录到双重宿主主机,它所运行的主机由于没有随意地登录而得到了安全。人们无法不安装控制软件而访问因特网,代理就是这样一个控制系统。
二、代理服务的优点
1、代理服务有两个优点:
1)代理服务允许用户“直接”访问因特网。
    采用双重宿主主机的方案,用户需要登录到主机上才能访问因特网,这样会使用户感到很不方便,有些用户就可能寻其他方法来通过防火墙。而采用代理服务,用户会认为他们是直接访问因特网。
    当然这需要在后台运行一些程序,但这对用户来讲是透明的。代理服务系统允许用户从他们自己的系统访问因特网,但不允许数据包在用户系统和因特网之间直接传送。传送只能是间接的,或通过双重宿主主机,或通过一个堡垒主机和屏蔽路由器系统。
怎样设置代理服务器2)代理服务适合于做日志。
    因为代理服务懂得优先协议,它们允许日志服务以一种特殊且有效的方式来进行。比如一个FTP代理服务器只记录发出的命令和服务器接收的回答,来代替记录所有的数据传输,这样产生的日志就会小而有用。
2、代理服务的缺点
代理服务也有一些缺点,主要表现为:
1)代理服务落后于非代理服务
    尽管代理软件已广泛应用于一些老而旧的服务,如TelnetFTP等,但是要到一些为了某些新而少的服务使用的可靠软件是很困难的。在一个服务出现和它的代理服务的出现之间一般会有一个较为明显的延迟,这个延迟时间的长短是依赖于为代理而设计的服务器的。这使得一个站点在提供一个新的服务时无法立刻提供代理服务,在可以使用代理服务之前,该服务只能不放在防火墙内,这样一来就有安全漏洞产生。
2)每个代理服务要求不同的服务器
    用户可能需要为每个协议配置不同的代理服务器,因为代理服务器需要按照协议来决定允许什么和不允许什么,并且要扮演一个角,它对真实服务器来说是客户,对客户来说是真实服务器。因此选择、安装和配置这些不同的代理服务器是一项复杂的工作。
    软件产品和软件包在配置的难易程度上是完全不同的,在一个软件上很容易做的可能在另一个软件上就非常难。例如,那些特别容易配置的服务器通常灵活性要差一些,它们能容易地配置是因为对如何使用它们作了各种假定,这些假定对于你的站点来说可以是合适的也可以是不合适的。
3)代理服务一般要求对客户或程序进行修改
除了一些专门为代理而设计的服务外,代理服务器要求对客户或程序进行修改,每一种修改都有其不足之处,人们无法总是用正常的方式来进行工作。因为这些修改,代理应用就可能没有非代理应用运行得那样好,同时对于协议的理解也可能有偏差,并且一些客户程序和服务器要比非代理服务缺乏灵活性。
4)代理服务对某些服务来说是不合适的
    代理服务能否实现取决于能否在客户和真实服务器之间插入代理服务器,这要求两者间的交谈有相对的直接性。一个象talk这样复杂的交谈可能永远无法进行代理。
5)代理服务不能保护你不受协议本身缺点的限制
    作为一个确保安全的方案,代理首先要判断对协议中哪些操作是安全的,但并不是所有的协议都能方便地作到这一点,如XWindow系统协议中就存在许多不安全的操作,并且假如禁止这些不安全的操作系统就不能正常地运转了
三、代理服务是如何工作的
    代理的工作的细节对每一种服务都是不同的,一些服务可以容易或者自动地提供代理,对于这些服务你可以通过对正常服务器的配置来设置代理。但对于大多数服务来说,代理服务在服务器上要求有合适的代理服务器软件。在客户端可以有不同的方法。
1)定制客户软件。采用这种方法,软件必需知道当用户提出请求时怎样与代替真实服务器的代理服务器进行连接,并且告诉代理服务器如何与真实服务器连接。
2)定制客户过程。采用这种方法时,用户使用标准的客户软件与代理服务器连接,并通知代理服务器与真实服务器连接,以此来代替与真实服务器的连接。
1 使用定制客户软件进行代理
    第一个方法是使用定制客户软件进行代理,这种方法存在一些问题。定制的客户软件一般只适用于特定的平台。如果它对你的站点中一个平台都不适合的话,那么你的用户就太不幸了。
    有时虽然定制客户软件适合你的平台,但它并不是用户所想要的,如在Macintosh上有许多FTP客户程序,其中有的具有很好的用户界面,另外的则有些很有用的功能,如anarchie是一个可以将Archie客户与FTP客户合并成一个程序的界面,这样你就可以在一个用户界面中利用Archie查文件,再用FTP进行文件下载。如果你想使用的软件不支持你的代理服务器,那也不行。有时你可以修改客户程序来支持代理服务器,但这需要有客户程序的源程序,并有重新编译能力,一般很少有客户程序支持任何形式的代理系统。
对于这种情况的例外是WWW的客户程序如Mosaic。很多这样的程序支持各种类型的代理
(特别是SOCKSCRENHTTP守护程序),大多数都是在防火墙和代理系统普及之后新出现的,因此知道了运行环境,并且在设计开始时就考虑了代理问题。
    把客户程序进行修改后用于代理系统则不能使代理做到对用户透明。许多站点在内部使用原先未修改的客户程序,而在外部连接上使用修改的客户程序,用户必须要记住使用修改的客户程序来进行外部连接。这就往往使得用户按照他们已熟悉的步骤进行连接时,可能会在内部成功而连接外部则失败。
    此外还要选择正确的程序,用户可能会发现自己要进行额外的配置,因为客户程序需要了解怎样与代理服务器相连。这虽然不是一个复杂的工作,但却增加了出错的机会。
2 使用定制的用户过程进行代理
    使用定制用户过程的方法,代理服务器使用标准的软件来工作,然而,它们要求软件的用户遵守定制的过程。用户通知客户与代理服务器连接并通知代理服务器与哪个主机相连接。因为几乎没有一个协议是设计成传递这种信息的,用户不仅需要记住代理服务器的名字,而且还要记住通过其他主机名字的特殊方式。
    它是如何工作的?你需要告诉自己的用户每个协议的具体步骤。如FTP协议,假定用户想从匿名FTP服务器(file)上下载一个文件,则应该:
1)使用一FTP客户与代理服务器进行连接而不是与匿名FTP服务器直接连接。
2)在输入用户名时,除了指定用户名的同时,还要指定他想要连接的真实的服务器名。例如,要连接匿名FTP服务器(file),那么在代理服务器上需输入:file而不应只输入"anonymous"
    正如使用定制软件一样,要求对用户使用过程进行定制,使用定制过程也会对你可使用的客户程序增加一些限制。有的客户试图自动执行匿名FTP,但他们不知道如何经过代理服务器。一些客户可能被简单的操作方式所困扰,如一个图形界面的程序可能无法显示用户输入的包括主机和用户名的信息。
四、代理服务器的使用
代理服务器有一些特殊类型,主要表现如下。
1 应用级与回路级代理
    应用级代理是已知代理服务为哪个应用提供的代理,它能了解并解释应用协议中的命令,而回路级代理在客户端与服务器之间不解释应用协议中的命令就建立了连接回路。大多数应用级代理的最新版本是一个像sendmail的应用,由它来完成存储转发协议。大部分最新回路级代理是一个新式的代理网关,这个网关对外像一个代理,对内象一个过滤路由器。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。