- 新建祕密基地 所屬資料夾(本範例是假設祕密基地位於 /usr/local/apache/sec )
cd /usr/local/apache
mkdir sec
這個祕密基地必須要有二個檔案:
.htaccess 設定檔
.htpasswd 帳號、密碼檔
- 建立 /usr/local/apache/sec/.htaccess
cd /usr/local/apache/sec
.htaccess 檔案的範例如下:(使用vi編輯器)
AuthName "祕密基地"
AuthType Basic
AuthUserFile "/usr/local/apache/sec/.htpasswd"
require valid-user
- 建立 /usr/local/apache/sec/.htpasswd
用 touch 指令建立空檔案:
touch .htpasswd
再用 htpasswd 指令一筆筆新增帳號與密碼(htpasswd程式應當與httpd放在同一資料夾中,找找看。):
htpasswd -m .htpasswd $username (一次建立一筆,$username是帳號,系統稍後會要求您輸入密碼)
htpasswd -b .htpasswd $username $passwd (一次建立一筆,$username是帳號,$passwd是該帳號之密碼,系統不會出現要求您輸入密碼的對話)
只有打htpasswd的話,系統會顯示出相關的語法。
- 編輯 Apache Server 的設定檔:httpd.conf
自行加入下列四行:
Alias /sec/ "/usr/local/apache/sec/"
/usr/local/apache/sec">
AllowOverride All
(如果還有其他目錄要如此,請比照。)
- 重新啟動 Apache Server
apachectl restart
- 使用網頁瀏覽器測試祕密基地
在網址列輸入 httpd://貴校網址/sec/
- 請問於 Apache Server 中,如何避免讓別人以瀏覽目錄方式看到User的檔案表列?
修改 httpd.conf 中有關 User 網頁設定的部份:
Options MultiViews Indexes SymLinksIfOwnerMatch Includes ExecCGI
AllowOverride None
Order allow,deny
Allow from all
將其中之
AllowOverride None
改為
AllowOverride All
然後重新啟動Apache。
--------------------------
User只要建立$HOME/public_html/.htaccess檔案,並寫入一行:
Options -Indexes
--------------------------
這兩個網址都沒有 index.html
lulu沒有建立.htaccess,而tim則建立了.htaccess。
上面的例子是User的網站設定,系統主網站的設定方式可比照辦理。
- 只允許特定網域(如學術網域 .edu.tw)才能瀏覽網頁:
假設是 ~tim/test_allow/ 這個資料要做管制,請於該資料夾中再建立 .htaccess ,並設定如下: Order deny,allow
Deny from all
Allow from .edu.tw
先deny再allow,把全部的連線都deny掉之後,才allow部份的連線。
測試網址:
這個資料夾有建立 index.html 。
PS.我真的是這樣設,所以只有學術網路的朋友才能看見該測試網頁,而且你的IP要有FQDN。
這些是我在臺中師院宿網中測試,宿網似乎強制經過proxy系統,中師的proxy有FQDN,但是它的parent卻沒有,所以目前這個proxy系統的FQDN是不正常的,我自己要看也很困難。
這裡除了使用FQDN方式來設定,您也可以使用IP的方式,例如:
Allow from 163.19.
修改過 .htaccess 檔案後,不需要重新啟動 Apache ,設定值可立即生效。
- 最後再強調一次,要讓 .htaccess 檔案的設定能讓 Apache 讀取與生效,必須在 httpd.conf 中相關目錄的 AllowOverride 的值設定為 All 。
- 參考書目:
博碩文化--Apache Server徹底研究,頁106認證和安全組態指令。
旗標--Apache Server管裡手冊,頁3-48驗證與安全指示命令。
清大網管班88.12.22作業
阅读(1111) | 评论(0) | 转发(0) |