1. 程式人生 > >apache配置Directory目錄權限的一些配置

apache配置Directory目錄權限的一些配置

安全 clear 用戶 掌握 客戶機 語句 否則 con 文件刪除

可以使用<Directory 目錄路徑>和</Directory>這對語句為主目錄或虛擬目錄設置權限,它們是一對容器語句,必須成對出現,它們之間封裝的是具體 的設置目錄權限語句,這些語句僅對被設置目錄及其子目錄起作用。下面是主配置文件中設置目錄權限的例子。

<Directory "/var/www/icons">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>

(1)定義目錄使用哪些特性

Options Indexes MultiViews

Options選項用於定義目錄使用哪些特性,包括Indexes、MultiViews和ExecCGI等,如表7-1所示。

表7-1 目錄特性選項

命 令 說 明
Indexes 允許目錄瀏覽

當客戶僅指定要訪問的目錄,但沒有指定要訪問目錄下的哪個文件,而且目錄下不存在默認文檔時,Apache以超文本形式返回目錄中的文件和子目錄列表(虛擬目錄不會出現在目錄列表中),如圖7-8所示

MultiViews 允許內容協商的多重視圖

MultiViews其實是Apache的一個智能特性。當客戶訪問目錄 中一個不存在的對象時,如訪問“http://192.168.16.177/icons/a”,則Apache會查找這個目錄下所有a.*文件。由於 icons目錄下存在a.gif文件,因此Apache會將a.gif文件返回給客戶,而不是返回出錯信息

All All包含了除MultiViews之外的所有特性,如果沒有Options語句,默認為All
ExecCGI 允許在該目錄下執行CGI腳本
FollowSymLinks 可以在該目錄中使用符號連接
Includes 允許服務器端包含功能
IncludesNoExec 允許服務器端包含功能,但禁用執行CGI腳本

讓主目錄允許目錄瀏覽

細心的用戶可能會發現雖然在主目錄設置了Indexes權限,且主目錄中並不存在默認文檔,但訪問時並不會出現目錄列表,而只出現Apache的測 試頁面。解決這個問題的方法很簡單,只要將位於/etc/httpd/conf.d/目錄下的welcome.conf文件刪除後重啟Apache即可。

允許目錄瀏覽要小心

一旦定義允許目錄瀏覽,就會將Web站點的文件夾和文件名結構暴露給黑客。目錄瀏覽還會允許黑客瀏覽文件並掌握服務器配置信息,所以指定該權限往往帶來安全性上的隱患。除非有充足的理由要使用目錄瀏覽,否則應該禁用它。

(2)設置.htaccess文件中的指令類型

AllowOverride None

AllowOverride選項用於定義位於每個目錄下.htaccess(訪問控制)文件中的指令類型。基於安全和效率的原因,雖然可以通 過.htaccess來設置目錄的訪問權限,但應盡可能地避免使用.htaccess文件,所以一般將AllowOverride設置為”None”,即 禁止使用.htaccess文件,而將目錄權限的設置放在主配置文件httpd.conf的<Directory> 和</Directory>語句之間。

(3)設置缺省的訪問權限與Allow和Deny語句的處理順序

Order allow, deny

Order選項用於定義缺省的訪問權限與Allow和Deny語句的處理順序。Allow和Deny語句可以針對客戶機的域名或IP地址進行設置,以決定哪些客戶機能夠訪問服務器。Order語句通常設置為以下兩種值之一。

allow, deny:缺省禁止所有客戶機的訪問,且Allow語句在Deny語句之前被匹配。如果某條件既匹配Deny語句又匹配Allow語句,則Deny語句會起作用(因為Deny語句覆蓋了Allow語句)。

deny, allow:缺省允許所有客戶機的訪問,且Deny語句在Allow語句之前被匹配。如果某條件既匹配Deny語句又匹配Allow語句,則Allow語句會起作用(因為Allow語句覆蓋了Deny語句)。
下面舉一些例子來說明Order、Allow和Deny語句的使用方法。

【例1】允許所有客戶機的訪問。

Order allow,deny
Allow from all

【例2】除了來自hacker.com域和IP地址為192.168.16.111的客戶機外,允許所有客戶機的訪問。

Order deny ,allow
Deny from hacker.com
Deny from 192.168.16.111

【例3】僅允許來自網絡192.168.16.0/24客戶機的訪問。

Order allow,deny
Allow from 192.168.16.0/24

對比:

Order deny ,allow
Allow from 192.168.16.0/24

這兩條語句是允許所有客戶機的訪問。

【例4】僅允許來自網絡192.168.16.0/24客戶機的訪問,但IP地址為192.168.16.111的客戶機除外。

Order allow,deny
Allow from 192.168.16.0/24
Deny from 192.168.16.111
對比:
Order deny ,allow
Allow from 192.168.16.0/24
Deny from 192.168.16.111

由於Allow語句覆蓋了Deny語句,因此這3條語句是允許所有客戶的訪問

apache配置Directory目錄權限的一些配置