📄 1251.html
字号:
<TR>
<TD vAlign=top align=middle width="60%">
<TABLE cellSpacing=0 cellPadding=0 width="100%"
background="images/back.gif" tppabs="http://www.linuxhero.com/docs/images/back.gif" border=0>
<TBODY>
<TR>
<TD vAlign=top width="80%">
<DIV align=center>
<FORM action="search.html" tppabs="http://www.linuxhero.com/docs/search.html" method=get>
</FORM>
<TABLE cellSpacing=0 cellPadding=0 width="95%"
border=0><TBODY>
<TR>
<TD background="images/bgi.gif" tppabs="http://www.linuxhero.com/docs/images/bgi.gif"
height=30></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=3 width="95%"
align=center border=0>
<TBODY>
<TR>
<TD>
<TABLE cellSpacing=0 cellPadding=3 width="100%"
border=0>
<TBODY>
<TR>
<TD vAlign=top>
<p><FONT class=normalfont><B><font color=blue>用SSL构建一个安全的Apache</font></B></FONT><BR><FONT class=smallfont color=#ff9900>2004-04-23 15:18 pm</FONT><BR><FONT class=normalfont>作者:quack<br>来自:Linux知识宝库<br>联系方式:无名<br><br>参考资料:Installing and Securing the Apache Webserver with SSL
一、简介<br>
<br>
这篇文章要说明的是如何将阿帕奇与SSL(Secure Socket Layer)结合起来安装<br>
配置。众所周知,在网络上以明文传递敏感信息是相当不安全的,因此SSL提供<br>
了一种加密手段,在底层上为上层协议提供服务和加密方案,因此当用户在以<br>
HTTP协议传输数据时,窥探者将难以获取数据的信息。当然加密只是在传输过程<br>
中的,对用户是完全透明的。<br>
<br>
那么就开始吧……<br>
<br>
二、准备工作<br>
<br>
如果你的系统是从头装起的话,建议你留出一个叫/chroot的分区用来运行Apache。<br>
至于这个分区的大小,取决于你自已,一般来说,一个普通的网站有40M也就够了。<br>
但你的系统如果早就运行了Apache,你可以另外开辟一个分区,或者选择不用独立<br>
分区来安装,仅仅在根下面开一个目录。<br>
<br>
另外我假定你的系统已经通过了一定的安全检测——在安装Apache之前(如果有其它<br>
漏洞存在的话,你认为运行在其上的Apache会怎样,所谓覆巢之下,焉有完卵icon_smile.gif,检<br>
测至少要包括(但不仅限于)——移除不安全的SUID程序、升级某些守护进程,去掉不<br>
必要的服务。还假定你是的WEB SERVER是运行TCP/IP而且有自己的地址。<br>
<br>
三、平台<br>
<br>
以下测试都在下列平台下通过:<br>
<br>
1、Slackware 4.x distribution using gcc 2.7.2.3 and Perl v5.005_02<br>
<br>
2、Solaris 7 on Sparc using gcc v2.8.1 and Perl v5.005_03<br>
<br>
四、获取所需要的软件<br>
<br>
因为阿帕奇并没有在她的包里自己SSL,因此我们必须先下载到这些加密网页所必需的<br>
部份:<br>
<br>
1、Apache Web Server - http://www.apache.org/dist/<br>
<br>
不必多说,我们当然需要获得这个web server,现在的版本是1.3.11,阿帕奇是现在世界<br>
上使用最广泛的web server。<br>
<br>
2、mod_ssl - http://www.modssl.org<br>
<br>
这是一个为Apache1.3.x web server提供强力加密的的软件模块,它使用的是SSL v2和v3<br>
以及TLS(Transport Layer Security)v1 协议。该软件包是在BSD的license下开发的,在<br>
非商业的情况下,你可以自由地使用它,要判断该使用哪一个版本的mod_ssl很简单,它的<br>
版本号是<mod_ssl-version>-<apache-version>格式的,也就是说,你如果用的是1.3.11<br>
的Apache,那么就该用2.50-1.3.11的mod_ssl。<br>
<br>
3、mod_perl - http://perl.apache.org/dist/<br>
<br>
4、Open SSL - http://www.openssl.org<br>
<br>
这一软件包提供了SSL v2/v3(Secure Sockets Layer)及TLS v1(Transport Layer Security)<br>
协议的加密保护。<br>
<br>
5、RSAref - 用搜索引擎查找一下"rsaref20.tar.Z"应该就能找到了<br>
<br>
我们将把这些程序安装于/usr/local目录下<br>
<br>
增加功能模块可以给阿帕奇更强大的功能,如果你需要更多的模块的话,自己去获<br>
得它并且加载,比如mod_php这一模块也是现在流行的,可以使阿帕奇提供php脚本<br>
支持……<br>
<br>
五、软件包的安装<br>
<br>
在实际安装前我们要决定我们将把web server安装在什么环境下,对于一个对<br>
安全有相当高要求的人来说,可以将服务器和软件安装于chroot环境,chroot<br>
改变root 目录并且仅在这一目录中执行程序,这提供了一个内建的小环境,即<br>
使入侵者已经通过cgi程序或者其它办法通过80端口获得了系统的进入权限,它<br>
也只能够在这一受限的环境中活动,从安全角度考量,这当然是最好的,但对<br>
系统管理员来说,这样安装相对麻烦一些,还必须把一些必要的库,perl以及<br>
相关工具也搬到chroot中,所以——你自己决定吧,这里我们介绍的是在chroot<br>
下安装。<br>
<br>
展开这些软件包:<br>
<br>
#gzip -d -c apache_1.3.11.tar.gz | tar xvf -<br>
#gzip -d -c mod_ssl-2.5.0-1.3.11.tar.gz | tar xvf -<br>
#gzip -d -c openssl-0.9.4.tar.gz | tar xvf -<br>
#gzip -d -c mod_perl-1.21.tar.gz | tar xvf -<br>
<br>
<br>
展开并且编译rsaref<br>
<br>
#mkdir rsaref<br>
#cd rsaref<br>
#gzip -d -c ../rsaref20.tar.Z | tar xvf -<br>
#tar xvf rsaref.tar<br>
#cp -rp install/unix temp<br>
#cd temp<br>
#make<br>
#mv rsaref.a librsaref.a<br>
#cd ../../<br>
<br>
<br>
编译OpenSSL<br>
<br>
#cd openssl-0.9.4<br>
#perl util/perlpath.pl /usr/bin/perl (Path to Perl)<br>
#./config -L`pwd`/../rsaref/temp/<br>
#make<br>
#make test<br>
#cd ..<br>
<br>
<br>
将mod_perl加到Apache的编译选项里<br>
<br>
#cd mod_perl-1.21<br>
#perl Makefile.PL APACHE_PREFIX=/usr/local/apache <br>
<br>
APACHE_SRC=../apache_1.3.11/src <br>
<br>
USE_APACI=1<br>
<br>
你会得到下面的提示:<br>
<br>
Configure mod_perl with ../apache_1.3.11/src ? [y]<br>
<br>
直接按enter就是默认的yes<br>
<br>
然后Makefile会问你是否建立httpd,可以用n选择不。<br>
<br>
#make<br>
#make install<br>
#cd ..<br>
<br>
将mod_ssl加到Apache中<br>
<br>
#cd mod_ssl-2.5.0-1.3.11<br>
#./configure --with-apache=../apache_1.3.11 <br>
<br>
--prefix=/usr/local/apache <br>
<br>
--with-ssl=../openssl-0.9.4 <br>
<br>
--with-rsa=../rsaref/temp <br>
<br>
--activate-module=src/modules/perl/libperl.a<br>
#cd ..<br>
<br>
<br>
编译Apache:<br>
<br>
#cd apache_1.3.11<br>
<br>
在编译以前我们可以再做一件事——编辑包含http server版本号的文件,使想得到它的入<br>
侵者摸不着脑袋长哪儿icon_smile.gif<br>
<br>
#<your favorite text editor> src/include/httpd.h<br>
<br>
寻找下面的行 (approx. 454)并且改变server的名字及版本号——可以随便用你想改成的东西。<br>
<br>
define SERVER_BASEVERSION "Apache/1.3.11"<br>
<br>
现在你可以编译阿帕奇了<br>
<br>
#make<br>
<br>
现在你可以生成一个CA了(actual certificate).<br>
<br>
#make certificate<br>
<br>
按照该授权书的安装介绍做。<br>
<br>
#make install<br>
<br>
这将会把阿帕奇装在/usr/local/apache。<br>
<br>
测试web server (还没装SSL)是否运行正常 ----调用web server:<br>
<br>
/usr/local/apache/bin/apachectl start<br>
<br>
当WEB服务器运行起来后,你可以用 lynx或者任意什么浏览器连接你的80端口,如果能看到apache<br>
的欢迎页,就OK了。<br>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -