Linux安裝Web伺服器並不難,但是其維護和安全強化並非易事,這需要深入瞭解Linux系統以及Apache的各種配置選項這裡需瞭解的問題是如何在安全性,可操作性和易用性上找到平衡點,但這也取決於項目的具體需求,下面的最佳實務將總結出LAMP項目中所有伺服器都有的共同點。
使用配置指令進行存取控制
利用Apache實現存取控制的配置指令包括如下3種。
1.Order指令。
Order指令用於指定執行允許存取控制規則或者拒絕存取控制規則的順序。
Order只能設定為“Order Allow,Deny”或“Order Deny,Allow”,分別用來表明使用者先設定允許的訪問地址還是先設定禁止訪問的地址。
Order選項用於定義預設的存取權限與Allow和Deny語句的處理順序。而Allow和Deny語句可以針對客戶機的網域名稱或IP進行設定,以決定哪些客戶機能夠訪問伺服器。
Order語句設定的兩種值的具體含義如下。
(1)Allow,Deny
預設禁止所有客戶機的訪問,且Allow語句在Deny語句之前被匹配,如果某條件即匹配Deny語句,又匹配Allow語句,則Deny語句會起作用(因為Deny語句覆蓋了Allow語句)。
(2)Deny,Allow
預設允許所有客戶機的訪問,且Deny劇在Allow語句之前被匹配。如果條件即匹配Deny語句又匹配Allow語句,則Allow語句會起作用(因為Allow語句覆蓋了Deny語句)。
2.Allow語句
Allow指令指明允許訪問的地址或地址序列,例如Allow From All 指令表明允許所有IP來的訪問請求。
3.Deny指令
Deny指令指明禁止訪問的地址或地址序列。例如Deny from all 指令表明禁止所有IP來的訪問請求。
下面舉幾個簡單的例子,對上述的Order、Allow和Deny命令的使用進行示範。
在本例中,itchenyi.com域中的所有主句都允許訪問網站,而其他非該域中的任何主句都被拒絕,因為Deny訪問都被拒絕,因為Deny在前,Allow在後,Allow語句覆蓋了Deny語句。
具體命令如下:
Order Deny,Allow Deny from all Allow from itchenyi.com
在本例中,itchenyi.com域中所有主機,除了ls.itchenyi.com子域包含的主機被拒絕訪問以外,其他都允許訪問,所有不在itchenyi.com域中的主句都不允許訪問,因為預設狀態是拒絕對伺服器的訪問(Allow在前,Deny在後,Deny語句覆蓋了Allow語句)。
具體命令如下:
Order Allow,Deny Allow from itchenyi.com Deny from ls.itchenyi.com
使用.htaccess進行存取控制
任何出現在設定檔httpd.conf中的指令都可能出現在.htaccess檔案中。.htaccess檔案在httpd.conf檔案的Access FileName指令中指定,用於進行針對單一目錄的配置,注意:htaccess檔案也只能設定對目錄的存取控制。
作為管理員,可以指定.htaccess檔案的名字和可以通過該檔案內容覆蓋伺服器配置,當網站有多組內容提供者並希望控制這些使用者對他們空間的操作時,該指令非常有用。
需要注意的是,除了可以使用.htaccess檔案針對單一目錄進行存取控制配置外,該檔案還可以在不重啟Apache伺服器的前提下使配置生效,使用起來非常方便。