用SSL技术保护Apache服务器通信

2008-1-11    来源:互联网    我要评论
   | |

导读:由于Apache在全球的应用范围相当广泛,因此其安全性就显得举足轻重,本文将对在Linux环境中使用SSL技术保护Apache服务器通信的方法进行详细介绍。

关键词:SSL技术 保护Apache服务器

 
正在加载数据...

        由于Apache在全球的应用范围相当广泛,因此其安全性就显得举足轻重,本文将对在Linux环境中使用SSL技术保护Apache服务器通信的方法进行详细介绍。

        Apache是世界排名第一的Web服务器,世界上60%以上的Web服务器是使用的Apache。Apache是一个免费的软件,用户可以免费从Apache的官方网站下载。任何人都可以参加其组成部分的开发。Apache允许世界各地的人对其提供新特性。当新代码提交到Apache Group后,Apache Group对其具体内容进行审查并进行测试和质量检查。如果他们满意,该代码就会被集成到Apache的主要发行版本中。

        但是,Apache服务器与客户端的通信是明文方式,很多通过HTTP协议传送数据的应用将受到黑客的威胁,信息的安全性难以得到保障。因此,本文就将对在Linux中,使用SSL技术保护Apache服务器通信做详细介绍。

        Apache的安装和启动

        Apache的RPM软件包既可以在Red Hat Linux 9安装光盘中找到,也可以在Red Hat的FTP服务器上找到。同任何其他RPM软件包安装一样,Apache的RPM软件包的安装也可以使用命令行形式的RPM工具安装。用户可以到www.redhat.com下载Apache的免费RPM软件包,其文件名为ant-apache-bsf-1.6.1-1jpp_3rh.noarch.rpm,执行如下命令即可完成Apache的安装:

        #rpm -Uvh ant-apache-bsf-1.6.1-1jpp_3rh.noarch.rpm

        ApacheRPM将把文件安装在如下的目录中:

        ●/etc/httpd/conf:这一目录包含Apache的所有配置文件,包括access.conf、httpd.conf和srm.conf。

        ●/etc/rc.d/:位于这一目录下的目录树包含系统的启动脚本。ApacheRPM在这里安装了Web服务器的整套脚本,这些脚本可用来从命令行启动和停止服务器,并且也可在工作站关闭、启动或重新引导时自动启动或停止服务器。

        ●/home/httpd: RPM在这一目录安装默认的服务器图标、CGI脚本和HTML文件。如果想在其他地方保存Web内容,通过在服务器的配置文件适当的地方进行更改可以实现。

        ●/usr/doc和/usr/man: RPM包含手册页和readme文件,它们被放在这些目录中。像大多数RPM软件包一样,readme文件以及其他相关的文档放在/usr/doc下的一个以服务器软件包的版本命名的目录中。

        ●/usr/sbin:可执行程序放在这一目录中。包括服务器程序本身,还有各种工具,如用于创建验证口令文件的htpasswd程序。

        ●/var/log/http: 服务器日志文件存放于该目录。在默认情况下,有两个日志文件:access_log和error_log,但是可以定义任意多个包含各种信息的自定义日志文件。

        Apache服务器的手动启动很简单,假设Apache服务器安装在/usr/sbin/目录下,在Linux终端启动Apache的命令为:

        #.cd /usr/sbin

        #./httpd start

        重新启动Apache的命令为:

        #.cd /usr/sbin

        #./httpd restart

        停止Apache的命令为:

        #.cd /usr/sbin

        #./httpd stop

        SSL的原理

        通常的连接方式中,通信是以非加密的形式在网络上传播的,这就有可能被非法窃听到,尤其是用于认证的口令信息。为了避免这个安全漏洞,就必须对传输过程进行加密。对HTTP传输进行加密的协议为HTTPS,它是通过SSL进行HTTP传输的协议,不但通过公用密钥的算法进行加密保证传输的安全性,而且还可以通过获得认证证书CA,保证客户连接的服务器没有被假冒。

        SSL是一种国际标准的加密及身份认证通信协议,用户采用的浏览器就支持此协议。SSL(Secure Sockets Layer)最初是由美国Netscape公司研究出来的,后来成为了Internet网上安全通信与交易的标准。SSL协议使用通信双方的客户证书以及CA根证书,允许客户/服务器应用以一种不能被偷听的方式通信,在通信双方间建立起了一条安全的、可信任的通信通道。它具备以下基本特征:信息保密性、信息完整性、相互鉴定。

        在SSL通信中,首先采用非对称加密交换信息,使得服务器获得浏览器端提供的对称加密的密钥,然后利用该密钥进行通信过程中信息的加密和解密。为了保证消息在传递过程中没有被篡改,可以加密Hash编码来确保信息的完整性。

        服务器数字证书主要颁发给Web站点或其他需要安全鉴别的服务器,证明服务器的身份信息,同样客户端数字证书用于证明客户端的身份。

        使用公用密钥的方式可以保证数据传输没有问题,但如果浏览器客户访问的站点被假冒,这也是一个严重的安全问题。这个问题不属于加密本身,而是要保证密钥本身的正确性问题。要保证所获得的其他站点公用密钥为其正确的密钥,而非假冒站点的密钥,就必须通过一个认证机制,能对站点的密钥进行认证。当然即使没有经过认证,仍然可以保证信息传输安全,只是客户不能确信访问的服务器没有被假冒。如果不是为了提供电子商务等方面对安全性要求很高的服务,一般不需要如此严格的考虑。

        下面给出使用SSL进行通信的过程:

        ● 客户端向服务器端发起对话,协商传送加密算法。例如:对称加密算法有DES、RC5,密钥交换算法有RSA和DH,摘要算法有MD5和SHA。

        ● 服务器向客户端发送服务器数字证书。比如:使用DES-RSA-MD5这对组合进行通信。客户端可以验证服务器的身份,决定是否需要建立通信。

        ● 客户端向服务器传送本次对话的密钥。在检查服务器的数字证书是否正确,通过CA机构颁发的证书验证了服务器证书的真实有效性之后,客户端生成利用服务器的公钥加密的本次对话的密钥发送给服务器。

        ● 服务器用自己的私钥解密获取本次通信的密钥。

        ● 双方的通信正式开始。

        在一般情况下,当客户端是保密信息的传递者时,不需要数字证书验证自己身份的真实性,如我们通常使用的网上银行交易活动,客户需要将自己的隐秘信息如账号和密码发送给银行,因此银行的服务器需要安装数字证书来表明自己身份的有效性,否则将会使得信息泄露。当然,在某些安全性要求极高地B2B应用,服务器端也需要对客户端的身份进行验证,这时客户端也需要安装数字证书以保证通信时服务器可以辨别出客户端的身份,验证过程类似于服务器身份的验证过程。而在通常情况下,浏览器都会通过交互的方式来完成上述的通信过程。

        在Linux中使用Apache+SSL

        虽然Apache服务器不支持SSL,但Apache服务器有两个可以自由使用的支持SSL的相关计划:一个为Apache-SSL,它集成了Apache服务器和SSL;另一个为Apache+mod_ssl,它是通过可动态加载的模块mod_ssl来支持SSL的。其中后一个是由前一个分化出来的,并由于使用模块,易用性很好,因此使用范围更为广泛。还有一些基于Apache并集成了SSL能力的商业Web服务器,然而使用这些商业Web服务器主要是北美,这是因为在那里SSL使用的公开密钥的算法具备专利权,不能用于商业目的,其他的国家不必考虑这个专利问题,而可以自由使用SSL。

        Apache+mod_ssl依赖于另外一个软件:openssl,它是一个可以自由使用的SSL实现,首先需要安装这个Port。

        openssl-0.9.7a-2.i386.rpm下载地址为:ftp://rpmfind.net/linux/redhat/9/en/os/i386/RedHat/RPMS/openssl-0.9.7a-2.i386.rpm,也可以在Red Hat Linux 9或者Fedora Core 4等Linux发行版本的光盘中找到该RPM包。并且,在默认条件下,执行系统安装将会安装该软件包。

        安装命令如下:

        #rpm - ivh openssl- 0.9.7a-2.i386.rpm

        安装好openssl之后,就可以安装Apache+mod_ssl了。然而为了安装完全正确,需要清除原先安装的Apache服务器的其他版本,并且还要清除所有的设置文件及其缺省设置文件,以避免出现安装问题。最好也删除 /usr/local/www目录(或更名),以便安装程序能建立正确的初始文档目录。如果是一台没有安装过Apache服务器的新系统,就可以忽略这个步骤,而直接安装Apache+mod_ssl了。

        启动和关闭该服务器的命令如下所示:

        ●#apachectl start:启动apache

        ●#apachectl startssl:启动apache ssl。注意,此处若使用start参数,则仅仅启动普通Apache的httpd守护进程,而不启动其SSL能力,只有startssl才能启动Apache的SSL能力。如果之前Apache的守护进程正在运行,便需要使用stop参数先停止服务器运行。

        ●#apachectl stop:停止apache。

        ●#apachectl restart:重新启动apache。

        ●#apachectl status:显示apache的状态。

        ●#apachectl configtest:测试httpd.conf配置是否正确。

        启动apache ssl后,就可以启动Mozilla、IE或其他支持SSL的浏览器,输入URL为:https://ssl_server/来查看服务器是否有响应,https使用的缺省端口为443,如果一切正常,服务器将会返回给客户端证书,由客户端进行验证并且判断,是否接受该证书并进行下一步的通信过程。

 
 
 
 
 
 

Apache安全

 
在操作系统不定发布并在你的环境中测试的时候,Web服务器应该第一批打补丁,防御Web服务器的攻击。在发现漏洞的几天内,任何人都可以获得攻击代码……
 
保证Web服务器的安全是信息安全专家面对的最不讨好的事情。你需要平衡允许对Web资源的公共合法访问和阻止恶意认识之间的冲突。你甚至需要考虑……
 
日志通常是说系统日志、日志管理或者位于网络上的SIM系统。所以大问题就出来了:如何筛选Web服务器日志数据,发现相关的安全信息呢?本文介绍第四部分。
 
日志通常是说系统日志、日志管理或者位于网络上的SIM系统。所以大问题就出来了:如何筛选Web服务器日志数据,发现相关的安全信息呢?本文介绍第三部分。
 
日志通常是说系统日志、日志管理或者位于网络上的SIM系统。所以大问题就出来了:如何筛选Web服务器日志数据,发现相关的安全信息呢?本文介绍第二部分。

热门技术手册排行

 

虚拟专用网络 VPN(Virtual Private Network )能通过公用网络Internet建立一个临时的、安全的连接,是一条穿过混乱的公用网络的安全、稳定的隧道。VPN是对企业内部网的扩展,它可以帮助远程用户、公司分支机构、商业伙伴及供应商同公司的内部网建立可信的安全连接,并保证数据的安全传输。许多公司使用VPN向公司外部的员工提供企业网络接入。本手册将围绕VPN进行全方位的讲解。

 

“最佳实践”来自英文Best Practice。维基百科对最佳实践的定义是一个管理学概念,认为存在某种技术、方法、过程、活动或机制可以使生产或者管理实践的结果达到最优,并减少出错的可能性。学习应用IT企业安全的最佳实践,其实就是借鉴别人成功的经验,让自己在保护企业安全方面少走弯路。在本手册中,将集合IT业内关于企业安全的最佳实践,并不断更新,以期在企业安全防护方面提供帮助。

 

虚拟化是数据中心的流行技术,它起源于20世纪60年代。它是把昂贵的计算机资源的利用最大化的方式。典型的服务器的利用率不足40%,虚拟化可以更有效地利用技术资源,并节约固定费用。虚拟化的最大优势是,它允许管理员从中央区域为个人电脑和客户设备提供软件。虚拟化不需要管理员对一般任务进行分别考虑。服务器的关机可以带动多用户的关机。

 

黑客策略和技术一直都在进步。黑客还在继续开发新的攻击工具和黑客方法,来恶意访问系统并攻击你的网络,这样企业在开发和采取恰当的方法防御黑客的攻击就变得非常困难。《黑客攻击技术和策略》的技术指南将介绍黑客的内心想法,并帮助你理解恶意攻击者的动机,也提供了一些黑客攻击具体信息的方式,采用的方法以及企业应该采用的保护敏感数据的方法。这里将会提供大量黑客技术和策路的信息,例如允许黑客获取网络系统或者文件访问的系统特征探测。

 

假如你正在寻找一个漏洞扫描器,你可能已经遇到了大量的非常昂贵的商业解决方案,这些方案都有一长串的性能和优点。不幸的是,如果你和我们之中大部分人的情况一样的话,你一般根本没有运行这些奇特的系统的预算。你可能已经退而求其次,转向考虑使用像SATAN或Saint的免费工具。然而,你可能觉得使用这些工具是一种折衷的办法,因为它们的性能设置不能与商业解决方案相比。这时候你就应该学会使用Nessus! 2005年12月Nessus背后的公司Tenable Network Security Inc.发布了Nessus 3,引进了对该产品的全面检查。在写这篇文章时候的最近版本,Nessus 3.2是在2008年3月发布的。Nessus现在可以在多种平台上使用,包括Windows、各种版本的Linux、FreeBSD、Solaris和Mac OS X。以下是这次Nessus3中的重大变化: 下面将介绍如何使用Nessus工具以及Nessus工具的更新。

查看更多
 
 

登录TechTarget中国

关闭
本服务仅向TechTarget中国的会员开放,请登录或立即免费注册
登录Email
请输入您的登录Email
密码
下次自动登录