首 页文章中心

Linux学习网

您的位置Linux学习网 > Linux服务器应用 > 文章内容

用SSL构建安全的Apache

作者:佚名  来源:不详  发布时间:2008-6-24 8:17:00
一、简介

  这篇文章要说明的是如何将阿帕奇与SSL(Secure Socket Layer)结合起来安装配置。众所周知,在网络上以明文传递敏感信息是相当不安全的,因此SSL提供了一种加密手段,在底层上为上层协议提供服务和加密方案,因此当用户在以HTTP协议传输数据时,窥探者将难以获取数据的信息。当然加密只是在传输过程中的,对用户是完全透明的。
  
  那么就开始吧……
  
  二、准备工作
  
  如果你的系统是从头装起的话,建议你留出一个叫/chroot的分区用来运行Apache。至于这个分区的大小,取决于你自已,一般来说,一个普通的网站有40M也就够了。但你的系统如果早就运行了Apache,你可以另外开辟一个分区,或者选择不用独立分区来安装,仅仅在根下面开一个目录。
  
  另外我假定你的系统已经通过了一定的安全检测——在安装Apache之前(如果有其它漏洞存在的话,你认为运行在其上的Apache会怎样,所谓覆巢之下,焉有完卵,检测至少要包括(但不仅限于)——移除不安全的SUID程序、升级某些守护进程,去掉不必要的服务。还假定你是的WEB SERVER是运行TCP/IP而且有自己的地址。
  
  三、平台
  
  以下测试都在下列平台下通过:
  
  1、Slackware 4.x distribution using gcc 2.7.2.3 and Perl v5.005_02
  
  2、Solaris 7 on Sparc using gcc v2.8.1 and Perl v5.005_03
  
  四、获取所需要的软件
  
  因为阿帕奇并没有在她的包里自己SSL,因此我们必须先下载到这些加密网页所必需的部份:
  
  1、Apache Web Server - http://www.apache.org/dist/
  
  不必多说,我们当然需要获得这个web server,现在的版本是1.3.11,阿帕奇是现在世界上使用最广泛的web server。
  
  2、mod_ssl - http://www.modssl.org
  
  这是一个为Apache1.3.x web server提供强力加密的的软件模块,它使用的是SSL v2和v3以及TLS(Transport Layer Security)v1 协议。该软件包是在BSD的license下开发的,在非商业的情况下,你可以自由地使用它,要判断该使用哪一个版本的mod_ssl很简单,它的版本号是-格式的,也就是说,你如果用的是1.3.11的Apache,那么就该用2.50-1.3.11的mod_ssl。
  
  3、mod_perl - http://perl.apache.org/dist/
  
  4、Open SSL - http://www.openssl.org
  
  这一软件包提供了SSL v2/v3(Secure Sockets Layer)及TLS v1(Transport Layer Security)协议的加密保护。
  
  5、RSAref - 用搜索引擎查找一下"rsaref20.tar.Z"应该就能找到了
  
  我们将把这些程序安装于/usr/local目录下增加功能模块可以给阿帕奇更强大的功能,如果你需要更多的模块的话,自己去获得它并且加载,比如mod_php这一模块也是现在流行的,可以使阿帕奇提供php脚本支持……
  
  五、软件包的安装
  
  在实际安装前我们要决定我们将把web server安装在什么环境下,对于一个对安全有相当高要求的人来说,可以将服务器和软件安装于chroot环境,chroot改变root 目录并且仅在这一目录中执行程序,这提供了一个内建的小环境,即使入侵者已经通过cgi程序或者其它办法通过80端口获得了系统的进入权限,它也只能够在这一受限的环境中活动,从安全角度考量,这当然是最好的,但对系统管理员来说,这样安装相对麻烦一些,还必须把一些必要的库,perl以及相关工具也搬到chroot中,所以——你自己决定吧,这里我们介绍的是在chroot下安装。
  
  展开这些软件包:
  
  #gzip -d -c apache_1.3.11.tar.gz | tar xvf -
  
  #gzip -d -c mod_ssl-2.5.0-1.3.11.tar.gz | tar xvf -
  
  #gzip -d -c openssl-0.9.4.tar.gz | tar xvf -
  
  #gzip -d -c mod_perl-1.21.tar.gz | tar xvf -
  
  展开并且编译rsaref
  
  #mkdir rsaref
  
  #cd rsaref
  
  #gzip -d -c ../rsaref20.tar.Z | tar xvf -
  
  #tar xvf rsaref.tar
  
  #cp -rp install/unix temp
  
  #cd temp
  
  #make
  
  #mv rsaref.a librsaref.a
  
  #cd ../../
  
  编译OpenSSL
  
  #cd openssl-0.9.4
  
  #perl util/perlpath.pl /usr/bin/perl (Path to Perl)
  
  #./config -L`pwd`/../rsaref/temp/
  
  #make
  
  #make test
  
  #cd ..
  
  将mod_perl加到Apache的编译选项里
  
  #cd mod_perl-1.21
  
  #perl Makefile.PL APACHE_PREFIX=/usr/local/apache
  APACHE_SRC=../apache_1.3.11/src
  USE_APACI=1
  
  你会得到下面的提示:
  
  Configure mod_perl with ../apache_1.3.11/src ? [y]
  
  直接按enter就是默认的yes
  
  然后Makefile会问你是否建立httpd,可以用n选择不。
  
  #make
  
  #make install
  
  #cd ..
  
  将mod_ssl加到Apache中
  
  #cd mod_ssl-2.5.0-1.3.11
  
  #./configure --with-apache=../apache_1.3.11
  --prefix=/usr/local/apache
  --with-ssl=../openssl-0.9.4
  --with-rsa=../rsaref/temp
  --activate-module=src/modules/perl/libperl.a
  
  #cd ..
  
  编译Apache:
  
 

[1] [2]  下一页

收藏本页到: 365Key | del.icio.us | | 添加到雅虎收藏+
  • 网站帮助 - 广告合作 - 网站地图