欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Linux Apache Web 服務(wù)器(續(xù)三)

 更新時(shí)間:2008年03月15日 18:45:15   作者:  
八、建立Apache站點(diǎn)的基本安全機(jī)制 對于WWW服務(wù)來說,在WWW服務(wù)器和WWW瀏覽器之間并不始終維持對話過程。辦要WWW服務(wù)器完成對一個(gè)URL請求的服務(wù),連接就斷開了
。

在這種情況下,在WWW上保證可以使用的唯一認(rèn)證機(jī)制是由HTTP本身提供 的。在標(biāo)準(zhǔn)的Apache服務(wù)器實(shí)現(xiàn)了這樣的認(rèn)證,它能控制哪些主機(jī)可能訪問特定的站點(diǎn)或特點(diǎn)的站點(diǎn)的一部分。

這種認(rèn)證可以分為兩種,一種是基于主機(jī)的的認(rèn)證,另一種是基于用戶名/口令的認(rèn)證。由于互聯(lián)網(wǎng)上的決大多數(shù)用戶的IP地址是動(dòng)態(tài)獲得的,所以基于主機(jī)的認(rèn)證方式并不總適用。所以在大多數(shù)情況下,傳統(tǒng)的基于用戶名/口令的認(rèn)證方式更為現(xiàn)實(shí)。下面我們就對這兩種認(rèn)證的實(shí)現(xiàn)做一簡要的介紹。

8.1 基于主機(jī)的認(rèn)證方式

在種認(rèn)證模式顧名思義,訪問是用主機(jī)名或主機(jī)IP地址來控制的。支持這種認(rèn)證方式的是Apache的mod_access模塊,這個(gè)模塊缺省狀態(tài)下是被安裝了的。該模塊用以下幾種Apache命令來提供訪問控制功能。


allow命令

語法:allow from host1 host2 host3 ...

這個(gè)命令定義了允許訪問站點(diǎn)或目錄的主機(jī)清單。主機(jī)清單可以用以下幾

種形式表示:

ALL:代表所有主機(jī);

主機(jī)的全域名,如:www.mot.com;

主機(jī)的部分域名,如:.mot.com;

完整的IP地址,如:202.98.2.32;

部分IP地址,如:202.98

網(wǎng)絡(luò)地址/網(wǎng)絡(luò)掩碼對,如:202.98.0.0/255.255.0.0

網(wǎng)絡(luò)地址/nn(CIDR定義),如:202.98.0.1/16


deny命令

語法:deny from host1 host2 host3 ...

這個(gè)命令定義了禁止訪問站點(diǎn)或目錄的主機(jī)清單,其他與allow命令相似。


order命令

語法:order deny,allow | allow,deny

這個(gè)命令定義評價(jià)allow和deny命令的先后順序。

例如:

<Directory /home/httpd/html>
order deny,allow
deny from www.mot.com
allow all
</Directory>

這組命令設(shè)置了禁止www.mot.com訪問/home/httpd/html目錄下的文件。

請大家注意,順序是先deny后allow,如果是:order allow,deny 那么,先允許所有的主機(jī)訪問,然后再禁止,這樣是無效的,所有主機(jī)仍然能夠訪問。

8.2 基于用戶名/口令的認(rèn)證方式

這種認(rèn)證方式其實(shí)相當(dāng)簡單,當(dāng)WWW瀏覽器請求經(jīng)此認(rèn)證模式保護(hù)的URL

時(shí),將會(huì)出現(xiàn)一個(gè)對話框,要求用戶鍵入用戶名和口令。用戶輸入后,傳給WWW服務(wù)器,WWW服務(wù)器驗(yàn)證它的正確性,如果正確,返回頁面,否則返回401錯(cuò)誤。要說明的一點(diǎn)是,這種認(rèn)證模式是基本的,并不能用于安全性要求極高的場合。

Apache中有許多模塊可以支持這種認(rèn)證方式,下面我們就介紹一下最基本、最標(biāo)準(zhǔn)的mod_auth模塊。正如前面提到的一樣,mod_auth模塊使用存儲(chǔ)在文本文件中的用戶名、組名和口令來實(shí)現(xiàn)認(rèn)證。這種方法非常適合處理少量用戶,它能工作得很好。如果你需要對大量的用戶,如數(shù)以千計(jì)的用戶做認(rèn)證時(shí),這種方法的性能將急劇下降到不可忍受,所以當(dāng)這種情況下,就需要考慮使用mod_dbm模塊或mod_mysql模塊來獲得更好的性能。


實(shí)例一:需要用戶名和口令的訪問控制

下面我們就一起來看一下如何建立需要用戶名/口令才能進(jìn)行訪問的目錄。

基本情況: www.xxx.com

的站點(diǎn)有設(shè)置為:

DocumentRoot /home/httpd/html
AccessFileName .htaccess
AllowOverride All

需求:限制/home/httpd/html/backup/目錄的訪問,只允許用戶“super”以口令“fill-06”訪問此目錄。

實(shí)現(xiàn)步驟:


使用htpasswd建立用戶文件

htpasswd –c /home/httpd/secr/.htpasswd super

此程序會(huì)詢問用戶“super”的口令,你輸入“fill-06”,兩次生效。


建立.htaccess文件

用vi在/home/httpd/html/backup/目錄下建立一個(gè)文件.htaccess,寫入

以下幾行:

AuthName My Friend Only (注:這個(gè)名字是任取的)
AuthType Basic
AuthUserFile /home/httpd/secr/.htpasswd
require user super


設(shè)置文件權(quán)限,確保Apache用戶有讀的權(quán)限

這樣就完成了設(shè)置工作,你可以試一試效果了。


實(shí)例二:允許一組用戶訪問一個(gè)目錄

假設(shè),現(xiàn)在www.xxx.com想讓myfriend組中的mf1與mf2兩個(gè)用戶分別能

使用口令“mf001-1”“mf002-2”訪問/home/httpd/html/backup/目錄。

實(shí)現(xiàn)步驟:


使用htpasswd建立用戶文件

htpasswd –c /home/httpd/secr/.htpasswd mf1
htpasswd –c /home/httpd/secr/.htpasswd mf2


建立組文件

用vi/home/httpd/secr/目錄下建立一個(gè)文件.htgroup,寫入:

myfriend:mf1 mf2


建立.htaccess文件

用vi在/home/httpd/html/backup/目錄下建立一個(gè)文件.htaccess,寫入

以下幾行:

AuthName My Friend Only
AuthType Basic
AuthUserFile /home/httpd/secr/.htpasswd
AuthGroupFile /home/httpd/secr/.htgroup
require group myfriend

配置工作到此結(jié)束,試一試吧!


實(shí)例三:混合使用基于主機(jī)與基于用戶名/口令的認(rèn)證方式

如果你除了只允許讓mf1與mf2兩個(gè)用戶訪問外,還想禁止除www.mot.com

外的主機(jī)訪問這個(gè)目錄的話,就將/home/httpd/html/backup/.htaccess修改成為:

AuthName My Friend Only
AuthType Basic
AuthUserFile /home/httpd/secr/.htpasswd
AuthGroupFile /home/httpd/secr/.htgroup
require group myfriend
order deny,allow
deny from all
allow from www.mot.com

九、解讀Apache日志

當(dāng)你一步步地看到這里的時(shí)候,相信你的WWW站點(diǎn)已經(jīng)建好,并且已經(jīng)在

Internet上展現(xiàn)出來了。這時(shí)你可能就會(huì)關(guān)心誰造訪過你的站點(diǎn),或者想知道你的Apache服務(wù)器現(xiàn)在的運(yùn)行狀態(tài)與性能如何。下面我們一起通過解讀Apache的日志來實(shí)現(xiàn)這個(gè)偉大的愿望。

9.1 盯著Apache服務(wù)器

Apache允許通過WWW監(jiān)視服務(wù)器的配置信息與運(yùn)行狀態(tài)。

1.觀看配置信息

如果你的Apache象缺省配置一樣加入了mod_info模塊的話,你就可以通過訪問http://localhost/server-info查看服務(wù)器信息。

2.使用狀態(tài)頁

如果你的Apache象缺省配置一樣加入了mod_status模塊的話,你就可以

通過訪問http://localhost/apache-status查看服務(wù)器的運(yùn)行狀態(tài)信息,其中包括:

¨ 服務(wù)器系統(tǒng)的當(dāng)前時(shí)間;

¨ 服務(wù)器最近一次重啟時(shí)間;

¨ 服務(wù)器啟動(dòng)后的運(yùn)行時(shí)間;

¨ 到目前為止服務(wù)的訪問總數(shù);

¨ 到目前為止傳輸?shù)淖止?jié)總數(shù);

¨ 服務(wù)請求的子進(jìn)程數(shù);

¨ 空閑子進(jìn)程數(shù);

¨ 每個(gè)進(jìn)程狀態(tài)、子進(jìn)程服務(wù)的請求數(shù)以及該子進(jìn)程傳輸?shù)淖止?jié)總數(shù);

¨ 每秒平均請求數(shù)、每秒傳輸?shù)淖止?jié)數(shù)、每次請求平均傳輸字節(jié)數(shù);

¨ 目前每個(gè)子進(jìn)程CPU占用及Apache的總的CPU占用率;

¨ 當(dāng)前主機(jī)及處理的請求。

9.2 什么是日志文件

日志文件是Apache工作的記錄,Apache包括了mod_log_config模塊,它

用來記錄日志。在缺省情況下,它用通用日志格式CLF規(guī)范來寫。

CLF日志文件內(nèi)對每個(gè)請求均有一個(gè)單獨(dú)行,形如:

host ident anthuser date request status bytes

其含義如下:

¨ host&#0;&#0;客戶端主機(jī)的全稱域名或IP地址;

¨ ident&#0;&#0;存放客戶端報(bào)告的識(shí)別信息;

¨ authuser&#0;&#0;如果是基于用戶名認(rèn)證的話,值為用戶名;

¨ date&#0;&#0;請求的日期與時(shí)間;

¨ request&#0;&#0;客戶端的請求行;

¨ status&#0;&#0;返回到客戶端的三們數(shù)字的HTTP狀態(tài)碼;

¨ bytes&#0;&#0;除去HTTP頭標(biāo)外,返回給客戶端的字節(jié)數(shù)。

9.3 分析日志文件

有了日志文件后,我們可以利用UNIX的一些工具和一此專門的日志分析工具對日志文件進(jìn)行分析。


實(shí)例一:列出訪問過本網(wǎng)站的主機(jī)名或IP:

對于這個(gè)需求,我們可以通過一個(gè)Unix的一個(gè)腳本語句來完成:

cat /var/log/httpd/access_log | awk ‘{print $1}'


用上面的方法雖然可以得到訪問過本網(wǎng)站的主機(jī)名或IP,但是由于有些是多次訪問的,我們希望在上面得到的結(jié)果的基礎(chǔ)上做一些優(yōu)化,使得列出的表中,每個(gè)主機(jī)只出現(xiàn)一次。我們可以使用:

cat /var/log/httpd/access_log | awk ‘{print $1}' | wc –l

3.當(dāng)然,我們可以根據(jù)需要選擇第三方提供日志分析工具甚至自己開發(fā)一些日志分析工具來滿足我們的需求。常見的第三方日志分析工具有:WebTrends、Wusage、wwwstat、http-analyze、pwebstats、WebStat Explorer、AccessWatch。

9.4 一些提示

日志一方面是我們分析網(wǎng)站的第一手資料,一方面卻是吞噬大量磁盤空間的罪魁禍?zhǔn)?。所以別忘了定期轉(zhuǎn)儲(chǔ)或刪除一些老的日志文件。

十、Apache與代理服務(wù)器

代理服務(wù)器是位于客戶和客戶要訪問的服務(wù)器之間的系統(tǒng)。當(dāng)客戶機(jī)使用URL請求訪問遠(yuǎn)程資源時(shí),代理服務(wù)器接受該請求并取得該資源以滿足客戶機(jī)的請求。在通常情況下,代理服務(wù)器是客戶機(jī)的服務(wù)器,同時(shí)也是遠(yuǎn)程服務(wù)器的客戶。

代理服務(wù)器可以在自己的緩沖區(qū)中存儲(chǔ)被請求的內(nèi)容,當(dāng)這些信息再次被請求的時(shí)候,代理服務(wù)器就無需再從遠(yuǎn)程服務(wù)器上取了,這樣代理服務(wù)器就減輕了網(wǎng)絡(luò)的瓶頸問題。

Apache可以配置成為代理服務(wù)器。

10.1 前向代理服務(wù)器和逆向代理服務(wù)器

1.前向代理服務(wù)器

前向代理服務(wù)器通常位于用戶主機(jī)和要訪問的遠(yuǎn)程網(wǎng)絡(luò)之間。它從遠(yuǎn)程服務(wù)器取得所要求的資源,然后返回給用戶,同時(shí)存在磁盤上,以供下次使用。

在這種情況下,客戶端的主機(jī)知道它們正在使用代理服務(wù)器,因?yàn)槊總€(gè)主機(jī)都必須配置為使用代理服務(wù)器。

例如,必須告訴WWW瀏覽器使用代理服務(wù)器,它才能使用代理服務(wù)器。所有的遠(yuǎn)程請求都通過代理服務(wù)器傳輸。

這類代理服務(wù)器也稱為緩沖代理服務(wù)器。逆向服務(wù)器也可以緩沖數(shù)據(jù),但它的作用愉好與前向服務(wù)器相反。

前向代理服務(wù)器的結(jié)構(gòu)圖如下所示: 



圖4 前向代理服務(wù)器

2.逆向代理服務(wù)器

逆向代理服務(wù)器位于互聯(lián)網(wǎng)資源前面,逆向服務(wù)器從原始服務(wù)器找到被請求的資源,并反它返回給用戶主機(jī)。

與前向代理服務(wù)器不同的是,逆向代理服務(wù)器的用戶并不知道它們連接的是代理服務(wù)器而不是資源服務(wù)器本身。其結(jié)構(gòu)如下圖所示: 



圖5 逆向代理服務(wù)器

10.2 配置代理服務(wù)器

為了允許Apache作為代理服務(wù)器,需要將ProxyRequests設(shè)為On,然后根據(jù)你希望代理服務(wù)器做什么而增加什么附加配置。無論你希望做什么,你所選的代理配置都應(yīng)該放入一個(gè)特殊的<Directory>容器中。

<Directory proxy:*>



</Directory>


實(shí)例一:將私有IP網(wǎng)連到互聯(lián)網(wǎng)

假設(shè)私有網(wǎng)上只有一臺(tái)計(jì)算機(jī)被分配了互聯(lián)網(wǎng)上合法的IP地址,這臺(tái)計(jì)算

機(jī)運(yùn)行Apache代理服務(wù)器,ProxyRequest設(shè)置為On,并且不需要附加其他配置,所有請求均可由這臺(tái)代理服務(wù)器代理服務(wù)。


實(shí)例二:讓Apache允當(dāng)遠(yuǎn)程WWW站點(diǎn)的緩沖

第一步:將ProxyRequest設(shè)置為On

第二步:創(chuàng)建配置如下:

<Directory proxy:*>
CacheRoot /www/cache
CacheSize 1024
CacheMaxExpire 24
</Directory>

這里的意思是設(shè)置Cache目錄為/www/cache;大小為1024KB,即1MB;緩沖中的內(nèi)容在24小時(shí)后失效。


實(shí)例三:建立鏡像站點(diǎn)(其實(shí)這也就是所謂的逆向代理服務(wù)器)

第一步:將ProxyRequest設(shè)置為On

第二步:創(chuàng)建配置如下:

<Directory proxy:*>
ProxyPass / www.mot.com /
CacheRoot /www/cache
CacheDefaultExpire 24
</Directory>

10.3 一些提示

代理服務(wù)器,我們將會(huì)在后面的章節(jié)中詳細(xì)介紹,這里只是針對Apache的功能介紹的。用Apache作代理服務(wù)器的性能并不高,效果并不好。不建議使用。

相關(guān)文章

最新評論