新建祕密基地 所屬資料夾(本範例是假設祕密基地位於 /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的話,系統會顯示出相關的語法。
設定相關檔案權限(應依據httpd.conf中之User、Group的設定值而決定檔案擁有者是誰--該檔案的讀取權與suExec有關):
chown nobody.nogroup .ht*
chmod 600 .ht*
用 ls -al指令檢查,結果如下:
drwxr-xr-x 2 nobody nogroup 512 28 Dec 17:18 .
drwxrwxr-x 34 nobody nogroup 1024 28 Dec 17:12 ..
-rw-r--r-- 1 nobody nogroup 97 28 Dec
17:36 .htaccess
-rw-r--r-- 1 nobody nogroup 130 28 Dec 18:38 .htpasswd
--
編輯 Apache Server 的設定檔:httpd.conf
自行加入下列四行:
Alias /sec/ "/usr/local/apache/sec/"
<Directory "/usr/local/apache/sec">
AllowOverride All
</Directory>
(如果還有其他目錄要如此,請比照。)
重新啟動 Apache Server
apachectl restart
使用網頁瀏覽器測試祕密基地
在網址列輸入 httpd://貴校網址/sec/
例如
請問於 Apache Server 中,如何避免讓別人以瀏覽目錄方式看到User的檔案表列?
修改 httpd.conf 中有關 User 網頁設定的部份:
<Directory /home/*/public_html>
Options MultiViews Indexes SymLinksIfOwnerMatch Includes ExecCGI
AllowOverride None
Order allow,deny
Allow from all
</Directory>
將其中之
AllowOverride None
改為
AllowOverride All
然後重新啟動Apache。
--------------------------
User只要建立$HOME/public_html/.htaccess檔案,並寫入一行:
Options -Indexes
--------------------------
http://www.lab.mlc.edu.tw/~lulu/
http://www.lab.mlc.edu.tw/~tim/
這兩個網址都沒有 index.html
lulu沒有建立.htaccess,而tim則建立了.htaccess。
上面的例子是User的網站設定,系統主網站的設定方式可比照辦理。
只允許特定網域(如學術網域 .edu.tw)才能瀏覽網頁:
假設是 http://www.lab.mlc.edu.tw/~tim/test_allow/ 這個資料要做管制,請於該資料夾中再建立 .htaccess ,並設定如下:
Order deny,allow
Deny from all
Allow from .edu.tw
先deny再allow,把全部的連線都deny掉之後,才allow部份的連線。
測試網址:http://www.lab.mlc.edu.tw/~tim/test_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作業