close

對目錄設密碼保護

在網頁伺服器中,可能有某些特定的目錄只能允許特定人存取

因此必須在該網頁目錄上加上密碼

讓使用者瀏覽到該網頁時必須輸入帳號與密碼才能瀏覽該網頁

以下將介紹如何達成目錄設密碼的功能

1. 開放網頁認證功能
    目前 Apache 已經採用 DSO (動態公用物件) 的機制
    因此要啟用目錄密碼保護的功能就必須在啟動伺服器時
    同時載入 mod_auth 模組
    請開啟 httpd.conf 設定檔
# vi /etc/httpd/conf/httpd.conf
    找到下面的參數行段
...
# LoadModule  auth_module                 modules/mod_auth.so
    如果前方有 # 註解符號請 刪除 該 # 註解符號以啟動該功能
    接著請存檔離開 :wq 並重新請動 Apache 伺服器
 
2. 啟動目錄認證功能
    接下來管理者則到要開放密碼保護的目錄之參數區塊中
    加入相關參數使目錄認證功能生效
    開啟 httpd.conf 設定檔
# vi /etc/httpd/conf/httpd.conf
    跳到要啟動密碼保護的目錄參數設定區塊中
...
   要在改目錄下啟動密錄認證功能
    AllowOverride All        將此項目設定時改為 All 啟動目錄認證功能
    ...          以下參數保持不變
    存檔離開 :wq
 
3. 設定保護目錄的設定檔名稱
    啟動伺服器的目錄認證功能之後,網頁就可以在需被保護的目錄下
    自行編寫設定檔,已決定要如何保護此目錄
    預設值是指定 .htaccess 為預定檔的名稱
AccessFileName   .htaccess
    其 .htaccess 將在稍後第 7 點介紹
 
4. 建立密碼檔
    假設管理者想為 test 使用者的 private 網頁目錄作密碼保護
    並允需 test 的使用者讀取該目錄即可透過以下方式達成
    首先請切換到 /home/test/public_html 目錄底下
# cd  /home/test/public_html
# htpasswd -c .htpasswd  test      建立 .htpasswd 密碼檔並新增 test 帳號
New password:                           請輸入密碼
Re-type new password:              請再輸入密碼一次
Adding password for user test    看到此行就代表成功的完成新增帳號了
    當完成以上設定後將再該目錄底下新增一個叫做 .htpasswd 密碼檔
    我們可以開啟 .htpasswd 密碼檔了解一下內容
# cat  .htpasswd
    其內容如下
test : pbgGjiFilzy        格式為 --> 帳號:編譯過的密碼
 
5. 新增其他使用者
    在密碼檔 .htpasswd 建立好後,可以再以 htpasswd 指令在新增其他使用者
# htpasswd  .htpasswd  iris
New password:
Re-type new password:
Adding password for user iris
    在完成密碼檔 .htpasswd 建立後在新增使用者時
    htpasswd 指令後不要再加上 -c 參數就可以直接輸入新的帳號來新增
    如果後面有再加上 -c 參數後那將會再創一個新的密碼檔
    但是之前輸入的密碼檔將會被覆蓋過去喔
 
6. 修改使用者密碼
    建立好密碼檔之後,如果想在更改已設定好的密碼
    即可執行 htpasswd -m 指令修改
# htpasswd -m .htpasswd test       要修改 test 使用者的密碼
New password:
Re-type new password:
Updating password for user test
 
7. 設定目錄保護方式
    建立好密碼檔之後,接下來也在該目錄底下編寫 .htaccess 設定檔
    來設定要如何保護此目錄
    以下就是簡單的範例,首先請新增一個 .htaccess 檔案
# vi .htaccess
    打上以下設定值
AuthUserFile    /home/test/public_html/  .htpasswd    指定密碼檔路徑(要絕對路徑)
AuthName     "Private  directory"            設定顯示出要求輸入帳號與密碼的文字
AuthType      Basic        設定傳送密碼的編碼方式,此例採用"Basic"方式
require  valid-user          設定可存取此目錄的使用者
                                       valid-user 指允許 .htpasswd 密碼檔內所有使用者皆可存取
                                       require user 帳號  -- 此格式是指只能再密碼檔中某一位使用者存取
                                       require user test     -- 表示該目錄只能給密碼檔中的 test 使用者存取
    完成後請存檔離開 :wq
    接著到 test 使用者網頁瀏覽時會出現要求輸入帳號與密碼視窗即表示完成設定
 
8. 保護設定檔與密碼檔
    由於 .htaccess 設定檔與 .htpasswd 密碼檔是相當重要檔案
    所以當然不希望瀏覽者能有機會存取此 2 個檔案
    此時管理者可在 httpd.conf 設定檔中禁止任何人以網頁方式
    瀏覽存取該檔案
    首先請先開啟 httpd.conf 設定檔
# vi /etc/httpd/conf/httpd.con
    在設定檔中加入以下設定值
...
                設定只要是 .ht 開頭的檔案名稱就禁止瀏覽
    Order  allow , deny
    Deny form all
    設樣子瀏覽者就無法透過瀏覽器下載瀏覽開頭為 .ht 的檔案了


arrow
arrow
    全站熱搜

    evantw 發表在 痞客邦 留言(0) 人氣()