快捷搜索:  

用反向代理技术保护Web服务器(3)

综合反向代理功能和普通拒绝外部访问的普通防火墙软件相结合,就能构成一个既具有保护内部网络、又能对外提供Web信息发布的能力的防火墙系统。由于反向代理能力需要软件实现,因此不能使用现有的防火墙系统,需要使用相关软件进行开发改进。Unix显然是首选平台,我们基于FreeBSD系统,提出一种基于ipfw、natd与squid的防火墙设置方式。其中ipfw可以基于ip地址、端口、协议等对ip包进行过滤,natd提供网络地址转换功能,这样就隐藏了内部网络的拓扑等信息,ipfw和natd结合就构成了强大的包过滤网关。而squid是Internet上最流行的Web代理服务器之一,虽然它提供的是普通的正向代理能力,但其为开放源代码软件,并且具有强大的可配置性,因此很容易可以将其更改为反向代理服务器。

  这种方式对内部网络的保护能力,要小于双层防火墙软件,等于普通的单层防火墙软件,然而其对Web服务器的保护却大于双层防火墙系统中对位于对停火区内的Web服务器的保护。然而其本身为单层系统,因此比双层系统配置起来更方便,是一种简单有效的方案。其中反向代理功能能够提供丰富的连接记录,可以用来提供预防和捕获攻击的能力,而包过滤和网络地址翻译可以让内部网络的主机可以使用多种协议访问外部网络,不需要考虑防火墙对应用协议的支持问题。这种方式适用于大多数Intranet系统。

  三、讨论

  当需要对内部网络提供更进一步的保护时,仍然可以使用双层防火墙模式,这样兼具反向代理对Web服务器的保护能力,和双层防火墙对内部数据的更大的保护能力。

  当组织向外提供信息发布的时候,并不仅仅要提供一些静态的网页,更大的可能是要根据实际的数据动态发布信息。因此发布的网页便需要通过访问数据库动态生成,通常使用的动态生成技术有CGI或服务器端文档解析等方式生成的。然而无论那种方式,都需要使得Web服务器能够和数据库服务器进行连接、通信。然而系统数据库应该是内部网络中应该首要保护的系统,因此要求安全性要求不高的对外发布信息的Web服务器和内部数据库服务器放置在同一个网段,就会造成相应的安全问题。

  为了提高访问数据库服务器的安全性,就需要对能够访问数据库的CGI程序进行限制,这就要求对启动CGI的URL请求比对普通url进行更严格的限制。与普通包过滤型防火墙不同,反向代理能够理解http协议,能区分出不同的url请求,从而能够实现对cgi请求比普通http请求更严格的控制,甚至可以将cgi请求发送到一台专用的CGI服务器进行处理,从而分别处理普通url请求和cgi请求。这台cgi服务器可以具有访问数据库的能力,保证数据库的安全。

  总结本文中的论述,可以看出,反向代理方式是一种对外提供Web发布时使用的有效的防火墙技术,使用它和传统防火墙技术相结合,就能实现简单有效的防火墙系统。


顶(0)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论