1. 程式人生 > >Windows下Apache應用環境塔建安全設定(目錄許可權設定)

Windows下Apache應用環境塔建安全設定(目錄許可權設定)

目的:為Apache,php配置受限制的使用者許可權。保護系統安全。需要的朋友可以參考下。

環境配置情況:
apache安裝目錄:d:\www-s\apache
php目錄:d:\www-s\php5
mysql目錄:d:\www-s\mysql
網站根目錄:d:\www\htdocs

專門為執行Apache執行所使用的使用者:apache-u(可不隸屬於任何使用者組)

PS:這裡只說Windows下Apache應用環境相關的目錄許可權設定,至於其他基本的伺服器目錄許可權設定就不提啦!

Windows下Apache應用環境塔建目錄安全設定操作步驟:

配置目錄許可權


Apache所在的根目錄(也就是D盤),只需要讀取的許可權,並且這個讀取許可權不需要繼承到子目錄與檔案(可以在許可權設定高階裡選擇——應用到:只有該資料夾——許可權:列出資料夾/讀取資料, 讀取屬性,讀取擴充套件屬性,讀取許可權——確定)。

Apache安裝目錄的上級目錄(d:\www-s),需要“讀取”的許可權(和根目錄D盤的許可權雷同)。

Apache安裝目錄,需要“列出資料夾目錄”和“讀取”的許可權(可以為了方便使用繼承)。

Apache安裝目錄下的子目錄許可權設定


“bin”和“modules”目錄需要“讀取和執行”、“列出資料夾和目錄”、“讀取”的許可權。

“logs”目錄需要“列出資料夾和目錄”、“讀取”、“寫入”的許可權(若Apache安裝目錄的許可權使用啦繼承,可只新增“寫入”許可權即可)。

到這裡Apache的許可權已經設定完畢,接下來設定PHP的許可權

PHP目錄(PHP5)可簡單的設定為“讀取和執行”、“列出資料夾和目錄”、“讀取”的許可權。

Mysql目錄下的bin資料夾和檔案(mysql)需要為新增apache使用者的“遍歷資料夾和執行檔案”、“列出資料夾和讀取資料”的許可權(可以在許可權高階設定裡找到)。

到這裡Apache+Mysql+Php已經基本可以使用,接著配置網站根目錄許可權


網站根目錄(www\htdocs)的上級目錄www需要讀取(“列出資料夾和讀取資料”、“讀取屬性”、“讀取擴充套件屬性”、“讀取許可權”)的許可權(和Apache的上級目錄許可權雷同,不需要繼承到子目錄和檔案中去)。

網站根目錄(htdocs)可簡單的設定“讀取”許可權就可以啦(然後可以根據需要對快取資料夾設定可寫許可權)。

到這裡Apache+PHP+Mysql的環境受限制許可權設定基本完成。

為Apache服務啟用受限制使用者
進入服務管理器(Services.msc,或者“我的電腦——屬性——管理——服務”),找到Apache的服務項(Apache2.2),設定屬性,登入使用者選擇受限使用者(Apache-u)輸入受限使用者的密碼,應用,確定。

這裡“確定”之後一般會有提示(已授予賬戶.\apache-u“以服務方式登入”的權利)。這個提示相當於在組策略(開始->管理工具->本地安全策略,或者使用gpedit.msc開啟)中的“使用者權利分配”中選擇“作為服務登陸”,新增apache-u使用者。

可在工作管理員中檢視httpd.exe程序的使用者名稱為apache-u,使用PHP+Mysql的程式都可正常執行。
到這裡已經完成啦“Windows下Apache應用環境目錄許可權”的受限制使用設定。

補充3:
可以在目錄(具有可寫許可權的)下建個 .htaccess 內容寫上:

RewriteEngine On
Order Allow,Deny
Deny from all
<files ~ “.(css|js)$”>
Allow from all
</files>

css和js為允許的檔案擴充套件型別!

補充2:
1.Apache的許可權設定錯誤提示
apache目錄,php目錄,網站目錄中的一個許可權設定不夠都不能正常啟動Apache服務,一般提示為:

Windows 不能再 本地計算機 啟動 Apache2.2。有關更多資訊,查閱系統事件日誌。如果這是非 Microsoft服務,請與服務廠商聯絡,並參與特定服務錯誤程式碼 1。

檢視系統事件日誌中的提示為:

Apache2.2 服務因 1 (0×1) 服務性錯誤而停止。

若是php的許可權配置錯誤會在應用程式事件日誌中有記錄。

2.另外Mysql的目錄許可權配置錯誤,不會對正常啟動Apache服務造成影響,但不能網站程式使用Mysql服務(PHPINFO中顯示並沒有載入Mysql模組)。

補充1:
這個東東在本地機子上用來做測試基本是不用理會這些許可權的,因為預設是使用系統使用者來啟動這個Apache服務的!不過若是暴露在外網就很危險啦!

安全是全方面的架構考慮,這裡說的僅僅是冰山一角,不能以點蓋面!

發現有遺漏的地方歡迎指正。。