FreeBSD對IP地址和域名的控制(轉)

gugu99發表於2007-08-11
FreeBSD對IP地址和域名的控制(轉)[@more@]

  

伺服器的安全控制

  Apache提供的各種特性非常豐富,主要是由於其採用的是模組化的結構,這樣就很容易進行分散式開發。 Internet上的眾多開發者為Apache提供了各種各樣的能力,使其能具備其他的Web伺服器不能與之相比的能力。在伺服器所具備的眾多特性中,安全控制的特性最為有用。

  • 對IP地址和域名的控制

  Apache伺服器可以基於IP地址和基於使用者對訪問伺服器進行控制。在設定檔案httpd.conf(或 access.conf)中,這些訪問控制的設定是放置在Directory、File和Location語句中的,分別針對主機上的目錄、檔案以及URI進行存取控制。然而,由於不是每個使用者都可以隨便更改系統Web伺服器的設定檔案,並能重新啟動伺服器的,因此在設定檔案中的控制語句只是提供了基本的訪問控制策略,而更靈活的方式是透過各個文件目錄中的訪問控制檔案來實現的。

  為了在需要訪問控制的每個目錄下都設定訪問控制檔案,首先要在系統配置檔案中設定這個訪問控制檔案及其訪問作用。需要使用AccessFileName定義訪問控制檔案的名字,預設它被設定為.htaccess。預設設定檔案將在針對根目錄及/usr/local/www/data這個文件根目錄的訪問控制語句中設定AllowOverride None ,這就意味著不允許這個目錄及其子目錄中的訪問控制檔案起作用,為了使得訪問控制檔案發揮作用,必須針對需要設定訪問控制的目錄設定AllowOverride All或其他有部分訪問控制功能的選項,此時該目錄及其子目錄下的訪問控制檔案也會發揮作用。

  AllowOverride All將允許.htaccess檔案能改變所有的訪問控制功能,如果僅僅希望目錄的所有者只控制部分訪問控制功能,可以使用AllowOverride的其他設定選項,那樣.htaccess只能使用允許的設定選項。

  要在.htaccess檔案中針對IP地址和域名進行控制,就需要使用訪問控制語句的Limit語句。因此就要求httpd.conf中必須允許控制檔案使用Limit功能,對應的設定為AllowOverride Limit選項(或All選項)。

  Limit語句可以使用不同的引數,這些引數為HTTP協議的請求方法,如使用 限制HTTP協議中的GET方法,限制http協議中的POST方法,使用標識這個控制段的結束。對於一般的情況,可以對大部分客戶開啟GET、POST和HEAD 請求,而關閉PUT、DELETE等其他更復雜且不常用的請求。

  如果在.htaccess中沒有使用Limit語句指定具體的訪問方法,那麼就表示訪問控制命令將對所有的請求方法都進行控制。

  Order定義伺服器查詢訪問控制的順序,當設定為Order Allow, Deny的時候將先處理Allow 語句,再處理Deny語句。Order Deny, Allow的處理順序相反。由於這兩種不同的方式代表不同的訪問控制策略,Order deny, allow和deny from all合作,是用於只允許設定過的客戶機訪問伺服器,而Order allow, deny和allow from all合作,是允許所有的客戶機訪問,而僅僅遮蔽部分具有惡意的網路地址。

  在每個Allow或Deny命令中,可以使用域名(從後向前匹配)、IP(從前向後匹配),all(代表所有主機)來標識Internet上的計算機。這裡是一個例子:

order deny, allow

deny from all

allow from 192.168.1.

allow from example.org.cn

allow from 127.

  這個例子是一個專有網路的例子,它採用的封閉式策略,以保證伺服器的安全性。對於對整個 Internet開放的公共Web伺服器,那麼採取的策略應該與之相反。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-944578/,如需轉載,請註明出處,否則將追究法律責任。

相關文章