網頁 貼吧 文章 作者 工作  
網頁搜尋
 
 愛PO吧 >> 楓之谷小遊戲 >> 瀏覽文章
回覆 加入我的最愛 與好友分享

.htaccess 與認證網頁設定

本被文章 0 次, 共有回覆 4  
0
 
0
每次只要一陣子沒用linux就常常都忘記怎麼用,連解壓縮都要查個指令,我實在不是MIS的料。還好我都有鳥哥的網站可以惡補一下。
下文參考自 鳥哥的linux私房菜:WWW 伺服器

對於保護 Apache 本身的資料方面,除了上述的 Order 以及 Limit 之外,還有什麼方式呢? 因為 Order 與 Limit 主要是針對 IP 網域或者是主機名稱來管理,那如果我們用戶端是使用撥接方式取得 IP , 那麼 IP 會一直變動的,如此一來那個保護的目錄使用者也就不能在任何地方進入了,會造成一些困擾。

此時如果能夠使用密碼保護的方式,讓使用者可以輸入帳號/密碼即可取得瀏覽的權限的話, 那用戶端就不用受到那個 order 的 Allow, deny 的限制啦!真好~ 呵呵!Apache 確實剛好有提供一個簡單的認證功能,讓我們可以輕鬆愉快的就設定好保護的網頁呢!

Tips:
什麼是受保護的資料呢?舉例來說,學校老師們可能會提供一些教學教材或者是習題給同學, 這些資料不想給所有人取得,那麼就可以將這些資料放在特定的受保護的目錄中。還有例如某些重要的 Apache 主機分析的資料 (本章後面提及的一些分析工具),這些資料建置的方法需要啟用 CGI 程式運動類DVD 而 CGI 程式的執行是有風險的,而且那些分析所得的資料也很重要。 此時,該程式與輸出結果就需要放在受保護的目錄啦!

那麼那個認證網頁如何搞定?簡單的說,他要這樣處理:

1. 建立受保護的目錄:既然我們是『按了某個連結進入某個目錄之後,才會出現對話視窗』, 那麼首先當然就是要有那個設定為認證網頁的『目錄』囉!請注意,是要目錄才行喔!

2. 設定 Apache 所需參數:然後,在對話視窗中,既然我們需要輸入 ID 與密碼,那麼自然就需要密碼檔囉! 另外,雖然 Apache 有支援 LDAP 及 MySQL 等等的巧連智DVD認證機制,不過我們這裡並不討論其他的認證機制, 完全使用 Apache 的預設功能而已,所以,底下我們會使用基本 (Basic) 的認證模式喔!

3. 建立密碼檔案:處理完基本的設定後,再來則是建立登入時所需要的帳號與密碼!

4. 最後,重新啟動 Apache 就 OK 啦!

其中,第二個步驟會比較有趣,我們說過,任何的xyz設定資料都可以直接寫到 httpd.conf 這個設定檔當中, 所以設定保護目錄的參數資料確實可以寫入 httpd.conf 當中。不過,想一想,如果你的 Apache 主機有 30 個使用者具有個人首頁,然後他們都需要製作保護目錄,那個 httpd.conf 只有身為 root 的你才能夠修改, 更可怕的是『每次改完都需要重新啟動 Apache』~請問,你的時間精力是否會受到『很嚴厲的考驗?』

所以啦,如果我們能夠透過外部的檔案來取代設定 httpd.conf 內的參數,那麼是否會比較好? 而且最好能夠該檔案設定即生效,不需要重新啟動 Apache 的話,那就更好啦!因為如此一來, 你就可以交給使用者自行管理他們的認證網頁囉!呵呵~ 透過 httpd.conf 內的 AllowOverride 參數,配合 .htaccess 這個檔案的設定就 OK 搞定! 這個設定項目與設定檔 httpd.conf 的關係可以這樣看:



htaccess 與主要設定檔 httpd.conf 的相關性

也就是說:

1. 你必需要在 httpd.conf 這個主設定檔當中先以 AllowOverride 指定某個目錄下的 .htaccess 能夠進行取代的參數為何?一般有 AuthConfig, Options 等等,考慮到系統資料的安全,建議提供 AuthConfig 的項目就好了。設定完畢後請重新啟動 Apache。

2. 在該目錄底下務必要存在 .htaccess 這個檔案,透過這個檔案即可修改 httpd.conf 內的設定啊!

3. .htaccess 設定完『立刻生效』,不需要重新啟動 Apache ,因為該檔案的內容是『當有用戶端瀏覽到該目錄時, 該檔案才會被使用來取代原有的設定。

既然 .htaccess 的用途比較廣,所以底下我們不介紹 httpd.conf 的認證參數了, 請您自行測試測試即可。底下主要以 .htaccess 檔案的設定為主喔!趕緊來看看吧!


1. 建立保護目錄的資料
假設我要將受保護的資料放置到 /var/www/html/protect 當中,記得,這個目錄要讓 Apache 可以瀏覽到才行。 所以你可以立刻將一些重要的資料給他搬一到這裡來。我們先這樣測試一下吧!建立個簡單的測試網頁即可。

[root@linux ~]# mkdir /var/www/html/protect
[root@linux ~]# vi /var/www/html/protect/index.html


看到這個畫面了嗎?如果看到的話,表示你可以順利進入本受保護網頁啦!


2. 以 root 的身份處理 httpd.conf 的設定資料
這個動作是僅有 root 能作的啦!你要開始編輯 httpd.conf ,讓受保護的那個目錄可以使用 .htaccess 啊!

[root@linux ~]# vi /etc/httpd/conf/httpd.conf
# 確定底下這幾行是存在的!
AccessFileName .htaccess

Order allow,deny
Deny from all


# 在某個不受影響的地方加入這一段:

AllowOverride AuthConfig
Order allow,deny
Allow from all


[root@linux ~]# apachectl restart <==重新啟動,不要忘記了!

這樣就設定妥當了,很簡單吧!再接下來要準備 .htaccess 的建立了。


3. 建立保護目錄下的 .htaccess 檔案:只要有權限建立者即可進行
要注意,這個檔案是在保護目錄底下喔!不要放錯地方啦!所以你要這樣做:

[root@linux ~]# cd /var/www/html/protect
[root@linux ~]# vi .htaccess
# 只要加入底下這幾行即可
AuthName "Protect test by .htaccess"
Authtype Basic
AuthUserFile /var/www/apache.passwd
require user test

這些參數的意義是這樣的:

AuthName:在出現要你輸入帳號與密碼的對話視窗中,出現的『提示字元』就是了;
AuthType:認證的類型,我們這裡僅列出 Apache 預設的類型,亦即是『basic』的啦
AuthUserFile:這個保護目錄所使用的帳號密碼設定檔。 也就是說,這個檔案是隨便你設定的,當然啦,所以使用者當然可以自行設定帳號與密碼囉。 檔案內的帳號不限在 /etc/passwd 出現的使用者!另外,這個檔案不要放置在 Apache 可以瀏覽的目錄內,所以我將他放置在首頁之外!避免被不小心竊取。
require:後面接可以使用的帳號。假如 /var/www/apache.passwd 內有三個帳號, 分別是 test, test1, test2 ,那我這裡只寫了 test ,因此 test1, test2 將無法登入此目錄。 如果要讓該密碼檔內的使用者都能夠登入,就改成『require valid-user』即可啊!
設定好就立刻生效了,不需要重新啟動任何東西啊!


4. 建立密碼檔案 htpasswd (只要有權限即可執行)
Apache 預設讀取的帳號/密碼設定資料是由 htpasswd 所建立的,這個指令的語法是這樣的:


[root@linux ~]# htpasswd [-c] 密碼檔檔名 使用者帳號
參數:
-c :建立後面的密碼檔案。如果該檔案已經存在,則原本的資料會被刪除!
所以如果只是要新增使用者(檔案已存在時),不必加上 -c 的參數!

(1) 建立 apache.passwd ,帳號為 test
[root@linux ~]# htpasswd -c /var/www/apache.passwd test
New password: <==這裡輸入一次密碼,注意,螢幕不會有任何訊息。
Re-type new password: <==這裡再輸入一次
Adding password for user test

[root@linux ~]# cat /var/www/apache.passwd
test:FIquw/..iS4yo <==您瞧瞧!電腦中文遊戲已經建立一個新使用者!

(2) 在已存在的 apache.passwd 內增加 test1 這個帳號:
[root@linux ~]# htpasswd /var/www/apache.passwd test1

再次強調,這個檔案檔名需要與 .htaccess 內的 AuthUserFile 相同,且不要放在瀏覽器可以瀏覽到的目錄! 這樣就算設定完畢啦!你可以使用瀏覽器在網址列輸入:『http://your.hostname/protect』試看看,結果會如何?

最後測試的結果會像底下這個樣子:

逛上一篇:   逛下一篇:

作者: cyenpztfx
  (2010-01-10 05:11)
推薦文章: 將本文章推薦到【百度收藏】 將本文章推薦到【YouPush】 將本文章推薦到【udn共享書籤】 將本文章推薦到【Fiigo】書籤

 本文章共有回覆 4 篇,分 1 頁
 聲明:以上內容不代表本站立場,且內容由網友發表提供,若有爭議或違法由發表者承擔,本站將不負責連帶責任,謝謝。

 IPoBar  愛PK  愛遊戲  愛online
新手教學 客服中心 站務公告 交換連結 合作提案 關於我們
 
版權所有©ipobar Ltd., All Rights Reserved.
論壇內會員言論僅代表個人觀點,不代表本站同意其說法,本討論區不承擔由該言論所引起的法律責任