亚洲韩日午夜视频,欧美日韩在线精品一区二区三区,韩国超清无码一区二区三区,亚洲国产成人影院播放,久草新在线,在线看片AV色

您好,歡迎來到思海網絡,我們將竭誠為您提供優質的服務! 誠征網絡推廣 | 網站備案 | 幫助中心 | 軟件下載 | 購買流程 | 付款方式 | 聯系我們 [ 會員登錄/注冊 ]
促銷推廣
客服中心
業務咨詢
有事點擊這里…  531199185
有事點擊這里…  61352289
點擊這里給我發消息  81721488
有事點擊這里…  376585780
有事點擊這里…  872642803
有事點擊這里…  459248018
有事點擊這里…  61352288
有事點擊這里…  380791050
技術支持
有事點擊這里…  714236853
有事點擊這里…  719304487
有事點擊這里…  1208894568
有事點擊這里…  61352289
在線客服
有事點擊這里…  531199185
有事點擊這里…  61352288
有事點擊這里…  983054746
有事點擊這里…  893984210
當前位置:首頁 >> 技術文章 >> 文章瀏覽
技術文章

用SSL構建一個安全的Apache

添加時間:2011-3-1  添加: admin 

 這篇文章要說明的是如何將阿帕奇與SSL(Secure Socket Layer)結合起來安裝
配置。眾所周知,在網絡上以明文傳遞敏感信息是相當不安全的,因此SSL提供
了一種加密手段,在底層上為上層協議提供服務和加密方案,因此當用戶在以
HTTP協議傳輸數據時,窺探者將難以獲取數據的信息。當然加密只是在傳輸過程
中的,對用戶是完全透明的。

那么就開始吧……

二、準備工作

如果你的系統是從頭裝起的話,建議你留出一個叫/chroot的分區用來運行Apache。
至于這個分區的大小,取決于你自已,一般來說,一個普通的網站有40M也就夠了。
但你的系統如果早就運行了Apache,你可以另外開辟一個分區,或者選擇不用獨立
分區來安裝,僅僅在根下面開一個目錄。

另外我假定你的系統已經通過了一定的安全檢測——在安裝Apache之前(如果有其它
漏洞存在的話,你認為運行在其上的Apache會怎樣,所謂覆巢之下,焉有完卵icon_smile.gif,檢
測至少要包括(但不僅限于)——移除不安全的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很簡單,它的
版本號是<mod_ssl-version>-<apache-version>格式的,也就是說,你如果用的是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:

#cd apache_1.3.11

在編譯以前我們可以再做一件事——編輯包含http server版本號的文件,使想得到它的入
侵者摸不著腦袋長哪兒icon_smile.gif

#<your favorite text editor> src/include/httpd.h

尋找下面的行 (approx. 454)并且改變server的名字及版本號——可以隨便用你想改成的東西。

define SERVER_BASEVERSION "Apache/1.3.11"

現在你可以編譯阿帕奇了

#make

現在你可以生成一個CA了(actual certificate).

#make certificate

按照該授權書的安裝介紹做。

#make install

這將會把阿帕奇裝在/usr/local/apache。

測試web server (還沒裝SSL)是否運行正常 ----調用web server:

/usr/local/apache/bin/apachectl start

當WEB服務器運行起來后,你可以用 lynx或者任意什么瀏覽器連接你的80端口,如果能看到apache
的歡迎頁,就OK了。

停止server:

/usr/local/apache/bin/apachectl stop

測試web server (同時起SSL) - 調用帶SSL的WEB服務器

/usr/local/apache/bin/apachectl startssl

服務器運行時你用Netscape或者其它支持SSL的瀏覽器來看

要停止SERVER:

/usr/local/apache/bin/apachectl stop


六、阿帕奇的配置

現在我們可以來看看阿帕奇的配置文件了——需要記住的是如果你對它做了更改,
在未重新啟動httpd守護進程前,它是不會發生作用的。好,現在我們可以進目錄
/usr/local/apache/conf看看了。

httpd.conf -
這是阿帕奇的主要配置文件,你可以在這里設定服務器啟動時的基礎環境,比如服務
器的啟動方式、端口號、允許的最多連接數等等,這一文件的注釋非常詳細,要看明
白應該沒什么問題。

access.conf -

這一文件是設定系統中的存取方式和環境的,但現在已經可以在httpd.conf中設定了,
所以推薦你別動它,放空好了。

srm.conf -

這家伙主要做的是資源上的設定,你也可以放空,僅僅設定httpd.conf中的相關項。

現在重啟web server來使改動生效:

#/usr/local/apache/bin/apachectl restart


七、將阿帕奇設定在chroot環境下

現在我們開始把剛才建立的東西移到chroot環境下——包括阿帕奇服務器以及所有需
要的庫文件。當然如前面所說的,這部份是可選的,如果你怕麻煩的話就算了,但轉
移后可以對你的web server多一個可靠的保護。

建立/chroot目錄

#mkdir /chroot

建立一些必需的子目錄

#mkdir /chroot/dev
#mkdir /chroot/lib
#mkdir /chroot/etc
#mkdir /chroot/bin
#mkdir /chroot/usr
#mkdir /chroot/usr/local


在我們的chroot建立/dev/null

#mknod -m 666 /chroot/dev/null c 1 3

將阿帕奇拷貝到/chroot目錄中

#cp -rp /usr/local/apache/ /chroot/usr/local

拷貝必需的二進制文件

#cp /bin/sh /chroot/bin

確定哪些庫是必需的——這取決于你編譯時內建了哪些模塊

#ldd /usr/local/apache/bin/httpd

將需要的庫拷貝到chroot目錄

#cp /lib/libm.* /chroot/lib/
#cp /lib/libgdbm.* /chroot/lib
#cp /lib/libdb.* /chroot/lib
#cp /lib/libdl.* /chroot/lib
#cp /lib/libc.* /chroot/lib

拷貝網絡連接所需要的函數庫

#cp /lib/libnss* /chroot/lib
拷貝必需的/etc下的文件到chroot

#cp /etc/passwd /chroot/etc
#cp /etc/shadow /chroot/etc
#cp /etc/group /chroot/etc
#cp /etc/resolv.conf /chroot/etc
#cp /etc/hosts /chroot/etc
#cp /etc/localtime /chroot/etc
#cp /etc/localtime /chroot/etc
#cp /etc/ld.so.* /chroot/etc

測試chroot下的阿帕奇

#chroot /chroot /usr/local/apache/bin/apachectl start


現在再

#chroot /chroot /usr/local/apache/bin/apachectl stop

服務器就停下來了,如果不行的話,再次確認是否所有需要的庫都拷到了/chroot/lib
下了,如果仍然無幫助的話,或者可以以strace方式運行httpd,它的輸出可能會有一
些有價值的內容可以幫助確定是丟失了哪些庫或者二進制文件。

然后我們可以做一些小工作了:默認情況下阿帕奇是以nobody用戶及用戶組運行的,不
要更改它。

在passwdshadowgroup等文件中包含了大量系統信息,所以你可以替換掉它們。

建立一個用戶名為httpd,UID為80
建立一個組名為httpd,GID為80

用下面的命令來將/chroot下的passwd,shadow,group替換掉

#echo "httpd:x:80:100:,,,:/home/httpd:/bin/false" > /chroot/etc/passwd
#echo "httpd:*LK*:11010:0:99999:7:::" > /chroot/etc/shadow
#echo "httpd:x:80:" > /chroot/etc/group

設定好文件的許可權限

#chmod 600 /chroot/etc/passwd shadow group

現在我們可以編輯apache的配置文件并進行需要的配置,文件在
/chroot/usr/local/apache/conf/httpd.conf,尋找到包含apache運行用戶
及組的信息的行并改變它(approx. line 263),當然是改成httpd/httpd。

一切運行正常后我們可以刪除前面的那些服務器安裝的東西——/usr/local下的,
包括服務器以及那些內建的模塊等等。

#rm -rf /usr/local/apache
#rm -rf /usr/local/mod_ssl-2.5.0-1.3.11/
#rm -rf /usr/local/mod_perl-1.21/
#rm -rf /usr/local/openssl-0.9.4/
#rm -rf /usr/local/rsaref

如果以后還想改變它們的配置,增加新的模塊,那么將原先的apache留下來也行。

將阿帕奇設定為在開機時自啟動,修改/etc/rc.d/rc.local并且加入以下行:

echo "Starting Apache-SSL"
/usr/sbin/chroot/apache/bin/apachectl startssl

如果一切都運行正常的話,那么恭喜你,你已經成功地運行了帶SSL支持的阿帕奇
了,這會使你的web server更加安全,如果你希望加入更多的模塊實現其它功能的
話,自己動手吧,最后要說明的是:在chroot環境中最好只有必需的一些二進制程
序,而SUID程序還是干掉比較好些。

關鍵字:SSL 構建 安全 Apache

分享到:

頂部 】 【 關閉
版權所有:佛山思海電腦網絡有限公司 ©1998-2024 All Rights Reserved.
聯系電話:(0757)22630313、22633833
中華人民共和國增值電信業務經營許可證: 粵B1.B2-20030321 備案號:粵B2-20030321-1
網站公安備案編號:44060602000007 交互式欄目專項備案編號:200303DD003  
察察 工商 網安 舉報有獎  警警  手機打開網站