Apache中實現身份驗證和訪問控制

 Linux不僅是UNIX操作系統的優秀例子,它還爲實現和檢查與CIW安全專家考試相關的許多安全概念提供了條件。在這個練習中,可以對 Red Hat Linux系統的Apache Web服務器的目錄執行訪問控制。使用.htacces訪問文件和htpaswd程序爲一個日錄建立ACL。這個目錄稱爲/acltest.
  1.以root身份登錄Linux系統。
  
  2.檢查是否安裝了Web服務器:
  host# rpm -qa | grep apache
  hostft apache-1.3.9-4
  
  3.如果任何有關Apache服務器的信息被返回,說明已安裝過了。如果沒有安裝,從下列其中一個網站獲取Apache Red Hat Package Manager(RPM):
  http: //www.rpmfind.net
  http: / /www.apache.org
  
  4.打開一個瀏覽器,看http是否在運行,或使用下列命令:ps aux |grep httpd。既然已經知道httpd已在運行,改變到根目錄下:cd /
  
  5.建立一個名字爲acltest的目錄,這就是你將進行訪問控制的目錄.
  mkdir acitest
  
  6.使用chmod命令,使得此目錄的所有者是名字爲apache的用戶和名字爲apache的組.同樣,允許名字爲apache的用戶對此目錄的權限爲可讀和可執行.
  host# chown apache acltest/
  host# chgrp apache acltest/
  host# chmod 500 acltest/
  
  7.使用cd命令改變到acltest目錄下,使用touch命令在acltest目錄下建立一個名爲index.htm的文件,你需要這個文件,否則,Apache服務器不允許訪問這個目錄.
  touch index.html
  
  8.使用文本編輯器如vi,輸入下列代碼到index.html文件中:
  
  
  
  
  
  This is a secret page
  
  
  
  9.先按Esc鍵,然後輸入ZZ(確保都是大寫字母)保存這個文件的變化並退出.這一系列命令由vi保存所做的變化.
  
  10.你已經建立了一個簡單的HTML文件,下一步,要編寫Apache服務器程序識別這個新目錄,這樣你就可以在瀏覽器中看到它.改變到/etc/httpd/conf目錄下:
  Cd /etc/httpd/conf/
  Red Hat Linuxwgkq/conf/目錄.其他版本的Linux和其他Apache的安裝可能將配置文件存儲在不同的錄中,如/var/usr/httpd/conf.
  
  11.使用文本編輯器,打開httpd.conf文件:
  Vi httpd.conf
  
  12.向下滾動屏幕到文件的Aliases部分,然後正確地輸入下列代碼:
  Alias /acltest  "/acltest"
  
  AllowOverride All
  Order allow/deny
  Allow from all
  
   輸入部分的第一行建立一個別名爲/acltest。用戶輸入這個別名進入瀏覽器。別名指令的語法非常嚴格。首先,列出別名的名字(如用戶輸入瀏覽器的文 本),然後是存在硬盤上的目錄名。第二行開始是對硬盤上/acltest目錄的一個目錄定義。Allow-Override指令允許你指定一個。 htaccess文件,文件中允許定製這個目錄的行爲。下面兩行代碼中Apacne服務器允許訪問所有的用戶,除了.htacces*文件中定義的語句。 最後要結束目錄定義。
  如果URL路徑中多包含了一個斜槓(/),表示服務器要求用這個斜線擴展別名。換句話說,如果你使用Alias/acltest//acltest/。則URL/acltest將不由Apache服務器起別名。你將不得不使用反斜線符號/acltest/.
  
  13.一旦你正確輸入完新的別名和目錄定義後,退出vi並確認保存所做的變化。
  
  14.你只是建立了一個虛擬目錄。現在,Apache服務器需要重讀它的配置文件,這樣你先前建立的新虛擬目錄和別名纔會起作用。完全停止並重新啓動Apache服務器:
  /etc/rc.d/init.d/httpd restart
   只簡單地使用kill HUP命令或httpd start命令不會很快起作用,因爲Apache服務器是多線程處理各種連接。爲保證練習進行得快一些,停止所有httpd進程,然後使用 /etc/rc.d/rc.local/httpd stop命令從根目錄重新啓動httpd。也可以使用如下killal1命令:killall apache。如果知道Apache的進程ID(PID),還可以使用kill命令。要保證完全停止Web瀏覽器上的以前的全部實例,它可能會緩存舊的信 息。

    15.打開一個瀏覽器,如Netscape Navigator或Lynx(一種基於文本的Web瀏覽器)用來測試工作。你可能希望使用完全資格域名(FQDN),例如,如果使用的FQDN爲 myserver.mynetwork.com,則輸入下列語句:

  lynx myserver.mynetwork.com/acltest
   如果只使用一個IP地址或服務器的的第一個名字,你不得不輸入兩次口令,因爲Apache服務器認爲請求來自它的FQDN,而不是IP地址或相關的(如 部分)DNS名字。如果想改變這種設置,可以通過在httpd.conf中輸入ServerName指令。假設服務器名是student1O,則輸入下列 語句:
  ServerName myserver
  然後必須重新啓動Apacne服務器。因爲許多Web瀏覽器緩存信息,如果有必要,退出並重新啓動瀏覽器以保證能從後臺程序讀到當前的輸出結果。
  
  16.檢驗此目錄工作正常後。準備爲它建立一個ACL。改變到/acltest目錄下:
  cd/acltest/
  
  17.用touch命令建立一個隱藏文件,名子爲.htacess。這個隱藏文件是此資源的ACL.爲執行這個操作,在文件名前使用一個點號:
  touch .htacces
  必須在htacces
文件前添加一個點號,如果不這樣做,就無法建立ACL,因爲點號表示建立一個隱藏文件。
  
  18.使用vi文本編輯器,打開.htacces文件。確保文件名前使用了點號,否則,你會打開一個名字爲htacces的新文件,而不是你實際想編輯的隱藏文件.htacces:
  vi .htacces

  
  19.輸入下列代碼
  AuthUserFile /apachepasswd/ .htpasswd
  AuthGroupFile /dev/null/
  AuthName "My secret directory"
  AuthType Basic
  require valid-user
  
  20.你剛剛建立了一個允許使用ACL的文件。這個被編輯過的文件必須在你所希望限制訪問(/acltest)的目錄中存在。AuthName語句用於指定文本,幫助用戶知道在服務器的什麼地方進行驗證。現在退出這個文件,確保保存所做的改變。
  
  21.下一步,你要建立一個新的用戶賬號數據庫,Apache服務器用它識別驗證用戶。這個數據庫將是ACL,它是與/etc/passwd或/etc/shadow分隔開的用戶數據庫。第一步,建立數據庫所在的目錄:
  Mkdir/apachepaswd
  可以給這個目錄起任何名字,在這個練習中使用/apache passwd.
  
  22.讓/apache pas
wd目錄的所有者是名字爲apache的用戶和名字爲apache的組。同樣,允許名字爲apache的用戶對此目錄的權限爲可讀和可執行,如下所示:
  host# chown apache apachepaswd/
  hosttt chgrp apache apachepas
wd/
  host# chmod 500 apachepaswd/
  
  23.輸入下列命令建立用戶身份驗證數據庫。會立即要求你爲新用戶wennseri設置口令,設置口令爲:pas
words
  htpaswd -c /apachepaswd/.htpasswdwebuserl
  New pasword:
  Re-type new pas
word:
  
   24.目前,你已經在/apachepaswd目錄下建立了一個名爲.htpasswd的文件,並用名字爲webuseri的用戶填充它。你還給這個 用戶設置了口令。現在,要爲這個數據庫填充其他用戶賬號。名字爲webuser2、webuser3和webuser4。當創建其他用戶時,不能像上面一 樣使用-C選項。要確保你沒有使用向上的箭頭鍵。每次使用htpasswd命令就會建立一個新的賬號,然後要求你立刻設置新口令讓所有的賬號都使用 pasword作爲口令:
  host@ htpaswd /apachepaswd/.htpaswd webuser2
  New pas
word:
  Re-type new pasword:
  再次強調,不要在htpas
wd命令後使用-C選項,因爲這樣做會刪掉現有的文件並重建一個新的文件。
  目前,你已經爲Apache服務器建立了一個用戶賬號數據庫。
  
  25.現在。從你的X-Window系統使用一個瀏覽器,如Lynx或Netscape Navigator(或來自於獨立的Windows2000系統的瀏覽器),通過/acltest別名訪問/acltest/目錄。
  
   26.你應該被提示輸入口令,如果沒有,就要確認是否正確建立了虛擬目錄和爲.htpaswd文件指定了合適的位置。檢查你的.htacces文 件,它應該被隱藏(名字前面應該有個點號)。還應包含第19步中的代碼。最後,你要確認使用了FQDN,保證瀏覽器不是簡單地給你緩存中的信息。
  
  27.現在,使用下列命令:
  tail /var/log/httpd/acces*_log
  你應該看到哪些人訪問了Weh服務器的紀錄。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章