扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
代理只允许单个主机或少数主机提供因特网访问服务,它不允许所有的主机均能为用户提供此类服务。代理服务的条件是:具有访问因特网能力的主机才可以作为那些无权访问因特网的主机的代理,这样使得一些不能访问因特网的主机也可以完成访问因特网的工作。
代理服务是在双重宿主主机或堡垒主机上可以运行具有一个特殊协议或一组协议。一些能与用户交谈的主机同样也可以与外界交谈,这些用户的客户程序可以与该代理服务器交谈来代替直接与外部因特网中的服务器的“真正的”交谈。代理服务器判断从客户端来的请求并决定哪些请求允许传送而哪些应被拒绝。当某个请求被允许时,代理服务器就代表客户与真正的服务器进行交谈,并将从客户端来的请求传送给真实服务器,将真实服务器的回答传送给客户。
对用户来说,与代理服务器交谈就好象与真实的服务器交谈一样,而对真实的服务器来说,它是在与运行代理服务器的主机上的用户在交谈,而并不知道用户的真实所在。
作为代理服务不需任何特殊硬件,但对于大多数服务来说要求专门的软件。
代理服务只是在客户和服务器之间限制IP通信的时候才起作用的,如一个屏蔽路由器或双重宿主主机。如果在客户与真实服务器之间存在IP级连通的话,那么客户就可以绕过代理系统。
对于代理服务,我们重点讨论以下四点内容:
(1) 为什么要代理;
(2) 代理的优缺点;
(3) 代理是如何工作的;
(4) 代理服务器的使用。
一、 为什么要进行代理
如果你的用户不能访问Internet,那么与其连接就没有意义。另一方面,若你的系统中的所有主机都能自由的访问Internet,则在与Inernet网连接时将没有安全感。对于这种情况,现在已经提出一些方案来解决这个问题。
最为有效的办法是为你所有的用户提供一台主机与因特网连接(但这并不是令人满意的方案),因为这些主机对用户来说是不透明的,那些想访问因特网的用户将无法直接访问,他们不得不在双重宿主主机上登录,并从那里访问因特网,然后将结果送回到它们自己的主机,这种多步处理方法要使用户进行多次传送并且离开他们所熟悉的环境。
对于一个具有多操作系统的站点来说情况将更糟糕,如果你的本地系统是Macintosh,而你的双重宿主主机是UNIX系统,而UNIX系统可能太陌生了。这样你将受到各种限制,因为UNIX系统中的工具与你在自己的主机上使用的工具可能完全不同。
没有配置代理系统的双重宿主主机对于利用它来访问因特网的用户来说,会大大降低他们所获得的效益。另外,它一般难以提供足够的安全机制来保护系统,特别是对于要与外界连接的主机。
代理系统不会受到双重宿主主机不安全机制的影响,它们通过与双重宿主主机的相互作用来解决安全问题。代理系统要求用户在后台与双重宿主主机进行交谈而不能直接在双重宿主主机上进行。由于用户很少与双重宿主主机进行交谈,所以用户根本感觉不到代理的存在,他们认为自己是在直接访问因特网服务器。图1显示了代理系统的实现过程。
代理系统通过避免用户在双重宿主主机上登录和强迫通过控制软件连接来解决安全问题。因为代理软件的运行不需要用户登录到双重宿主主机,它所运行的主机由于没有随意地登录而得到了安全。人们无法不安装控制软件而访问因特网,代理就是这样一个控制系统。
二、 代理服务的优点
1、代理服务有两个优点:
(1) 代理服务允许用户“直接”访问因特网。
采用双重宿主主机的方案,用户需要登录到主机上才能访问因特网,这样会使用户感到很不方便,有些用户就可能寻找其他方法来通过防火墙。而采用代理服务,用户会认为他们是直接访问因特网。
当然这需要在后台运行一些程序,但这对用户来讲是透明的。代理服务系统允许用户从他们自己的系统访问因特网,但不允许数据包在用户系统和因特网之间直接传送。传送只能是间接的,或通过双重宿主主机,或通过一个堡垒主机和屏蔽路由器系统。
(2) 代理服务适合于做日志。
因为代理服务懂得优先协议,它们允许日志服务以一种特殊且有效的方式来进行。比如一个FTP代理服务器只记录发出的命令和服务器接收的回答,来代替记录所有的数据传输,这样产生的日志就会小而有用。
2、 代理服务的缺点
代理服务也有一些缺点,主要表现为:
(1) 代理服务落后于非代理服务
尽管代理软件已广泛应用于一些老而旧的服务,如Telnet和FTP 等,但是要找到一些为了某些新而少的服务使用的可靠软件是很困难的。在一个服务出现和它的代理服务的出现之间一般会有一个较为明显的延迟,这个延迟时间的长短是依赖于为代理而设计的服务器的。这使得一个站点在提供一个新的服务时无法立刻提供代理服务,在可以使用代理服务之前,该服务只能不放在防火墙内,这样一来就有安全漏洞产生。
(2) 每个代理服务要求不同的服务器
用户可能需要为每个协议配置不同的代理服务器,因为代理服务器需要按照协议来决定允许什么和不允许什么,并且要扮演一个角色,它对真实服务器来说是客户,对客户来说是真实服务器。因此选择、安装和配置这些不同的代理服务器是一项复杂的工作。
软件产品和软件包在配置的难易程度上是完全不同的,在一个软件上很容易做的可能在另一个软件上就非常难。例如,那些特别容易配置的服务器通常灵活性要差一些,它们能容易地配置是因为对如何使用它们作了各种假定,这些假定对于你的站点来说可以是合适的也可以是不合适的。
(3) 代理服务一般要求对客户或程序进行修改
除了一些专门为代理而设计的服务外,代理服务器要求对客户或程序进行修改,每一种修改都有其不足之处,人们无法总是用正常的方式来进行工作。因为这些修改,代理应用就可能没有非代理应用运行得那样好,同时对于协议的理解也可能有偏差,并且一些客户程序和服务器要比非代理服务缺乏灵活性。
(4) 代理服务对某些服务来说是不合适的
代理服务能否实现取决于能否在客户和真实服务器之间插入代理服务器,这要求两者间的交谈有相对的直接性。一个象talk这样复杂的交谈可能永远无法进行代理。
(5) 代理服务不能保护你不受协议本身缺点的限制
作为一个确保安全的方案,代理首先要判断对协议中哪些操作是安全的,但并不是所有的协议都能方便地作到这一点,如X Window系统协议中就存在许多不安全的操作,并且假如禁止这些不安全的操作系统就不能正常地运转了。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。