對目錄設密碼保護
在網頁伺服器中,可能有某些特定的目錄只能允許特定人存取
因此必須在該網頁目錄上加上密碼
讓使用者瀏覽到該網頁時必須輸入帳號與密碼才能瀏覽該網頁
以下將介紹如何達成目錄設密碼的功能
| 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 的檔案了 |
文章標籤
全站熱搜
