您查看的文章来源于http://www.oklinux.cn
本章要点
◆ Web服务器软件Apache简介
◆ Apache服务器面临的安全问题
◆ 配置一个安全的Apache服务器
6.1 Web服务器软件Apache简介
随着网络技术的普及、应用和Web技术的不断完善,Web服务已经成为互联网上重要的服务形式之一。原有的客户端/服务器模式正在逐渐被浏览器/服务器模式所取代。本章将重点介绍Web面临的主要威胁,并结合在Linux中使用最多的Apache服务器,介绍进行Web服务器安全配置的技巧。
6.1.1 Apache的发展历史
Apache源自于NCSA(University of Illinois, Urbana-Champaign)所开发的httpd。在1994年中期,许多Web主管自行发展自己的外加功能及修正码。一小批的Web主管通过私人电子邮件聚集在一起来实现他们的改变(以“patches”,即补丁的形式出现)。在1995年2月底,八位核心贡献者成立原始的Apache组织(取自A PAtCHE),1995年4月,Apache 0.6.2公布。
在1995年5月到7月,一个新的服务器架构被开发出来(程序名为Shambhala),包含了模块结构及API。这个服务器架构是基于存储池的存储器配置及要调整的预设分支处理模式开发的。这个开发群体在7月份将此服务器架构转换到新的服务器上,并为Apache 0.7.x新增特色,于8月推出了Apache 0.8.8。在一年之内,Apache服务器超过了NCSA的httpd成为Internet上排名第一的服务器。
Apache的强项是极大的市场占有率:Apache是今天网际网络金字招牌第一号,远远将竞争者抛在后面。特别是,Apache市场占有率表现出几个使对方望尘莫及的优势:
① 起源于HTTP协议——降低了用户加入协议来支援新的应用软件的门槛;
② 给UNIX/Linux带来生机——Apache走到哪里,UNIX/Linux就走到哪里;
③ 支援厂商的支持,为Apache提供的工具/模块持续成长。
特别是IBM宣布将把Apache作为其WebSphere应用服务器的一部分,这一轰动的宣布被商业报纸称为是开放源代码软件的一次突破。
6.1.2 市场情况
统计显示,最流行的Web服务器是OSS/FS。比6-1反映的是1995年9月至2006年6月,Web服务器市场份额的变化情况(链接http://news.netcraft.com/archives/web_server_survey.html)。
图6-1 Netcraft公司统计的Web服务器使用情况
2.商业网站统计
E-soft(http://www.securityspace.com/s_survey)进行的另外一个独立的调查也显示了Apache在Web服务器领域占有统治地位。截至2006年7月1日该调查把Web服务器进行了细分,共调查了8 676 467个Web服务器,得出商业站点(.com)使用的Apache名列第一,市场份额是70.60%,接下来是IIS(23.93%)。链接http://www.securityspace.com/s_survey/data/200606/domain.html,6-2所示。
3.安全服务器领域
Netcraft报道,Apache已经超越微软成为开发者首选的SSL服务器,有44.0%的加密链接网站使用Apache作为服务器,43.8%使用微软产品。作为SSL协议的最初开发者,Netscape原本拥有最多的市场。但是Netscape的市场份额很快被微软借助IIS所超越,IIS在几年内始终拥有40%~50%的市场。Apache的第一版本不支持SSL,因为美国对加密算法有出口限制,所以开源项目的加密部分必须放到美国境外进行开发,同时必须单独发布。因此许多独立的项目为Apache提供了SSL支持,包括Apache-SSL和mod_ssl。但是当时一些商业版本的SSL模块,比6-2 E-soft统计的.com网站使用Web服务器的情况
E-soft也专门对安全的服务器(支持SSL/TLS的Web服务器,比片文件一般都已经被压缩过,因此,这种压缩对图片多的网页不太有效。除持久链接及其他改进后的性能之外,HTTP/1.1还允许多个域名共享同一IP地址。这简化了网络服务器对虚拟主机数目管理的处理量。
6.1.4 Apache服务器的特点
Apache的主要特征如下。
(1)支持HTTP/1.1协议。Apache是最先使用HTTP/1.1协议的Web服务器之一,它完全兼容HTTP/1.1协议并与HTTP/1.0协议向后兼容。Apache已为新协议所提供的全部内容做好了必要的准备。
(2)支持通用网关接口(CGI)。Apache用mod_cgi模块来支持CGI,它遵守CGI/1.1标准并且提供了扩充的特征,如定制环境变量和很难在其他Web服务器中找到的调试支持功能。
(3)支持HTTP认证。Apache支持基于Web的基本认证,它还为支持基于消息摘要的认证做好了准备。Apache通过使用标准的口令文件DBM SQL调用,或通过对外部认证程序的调用来实现基本的认证。
(4)集成的Perl语言。Perl已成为CGI脚本编程的基本标准。Apache肯定是使Perl成为这样流行的CGI编程语言的因素之一,现在Apache比以往任何时候都更加支持Perl,通过使用它的mod_perl模块你可以将基于Perl的CGI脚本装入内存,并可以根据需要多次重复使用该脚本。这消除了经常与解释性语言联系在一起的启动开销。