儘管如今購買的雲服務器不少都有一鍵web環境安裝包,可是若是是本身配置web環境則須要對各類安全配置十分了解,今天咱們就來嘗試這作好web服務器安全配置。這裏的配置不盡完善,如有紕漏之處還望指出。php
通常狀況下,Apache是由Root 來安裝和運行的。若是Apache Server進程具備Root用戶特權,那麼它將給系統的安全構成很大的威脅,應確保Apache Server進程以最可能低的權限用戶來運行。html
User apache Group apachegroup
window系統中建立apache用戶,給予apache用戶讀取和執行(RX)全部文檔和腳本目錄(例如:htdocs 和cgi-bin)的權限。 對Apache的logs目錄具備讀/寫/刪除(RWD)的權限。對httpd.exe二進制文件具備讀取和執行(RX)的權限。
在service.msc服務中選擇Aapche屬性,登陸帳號改成apache便可web
Indexes 的做用就是當該目錄下沒有 index.html文件時,就顯示目錄結構。
默認apache在當前目錄下沒有index.html入口就會顯示目錄。讓目錄暴露在外面是很是危險的事,以下操做禁止apache顯示目錄:apache
Options FollowSymLinks
將Options Indexes FollowSymLinks中的Indexes 去掉,就能夠禁止 Apache 顯示該目錄結構。安全
在Apache 服務器的配置文件中進行如下的設置,阻止用戶創建、修改 .htaccess文件,防止用戶超越能定義的系統安全特性。服務器
AllowOveride None Options None Allow from all
而後再分別對特定的目錄進行適當的配置。ide
ServerSignature Off ServerTokens Prod
ErrorDocument 400 /custom400.html ErrorDocument 401 /custom401.html ErrorDocument 403 /custom403.html ErrorDocument 404 /custom404.html ErrorDocument 405 /custom405.html ErrorDocument 500 /custom500.html
刪除默認的HTML文件: # apache網頁根目錄htdocs下的html文件 刪除默認的icons文件: # apache安裝目錄下的icons文件夾及裏面的文件 刪除默認的的CGI腳本: # apache安裝目錄下的cgi-bin文件夾及裏面的文件 刪除Apache說明文件: # apache安裝目錄下的manual文件夾及裏面的文件以及安裝目錄下的其餘介紹性文件
CustomLog "|bin/rotatelogs.exe logs/access.log 86400 480" combined
rotatelogs logfile [ rotationtime [ offset ]] | [ filesizeM ]
logfile:它加上基準名就是日誌文件名。若是logfile中包含’%’,則它會被視爲用於的strftime(3)的格式字串;不然,它會被自動加上以秒爲單位的.nnnnnnnnnn後綴。這兩種格式都表示新的日誌開始使用的時間。
rotationtime:日誌文件回捲的以秒爲單位的間隔時間,86400 表示一天,即天天生成一個新的日誌文件。
offset:相對於UTC的時差的分鐘數。若是省略,則默認爲0,並使用UTC時間。好比,要指定UTC時差爲-5小時的地區的當地時間,則此參數應爲-300,北京時間爲+8時間,應設置爲480。這樣日誌裏的時間纔會和服務器上的時間一致,方便查看日誌。
filesizeM:指定回捲時以兆字節爲單位的後綴字母M的文件大小,而不是指定回捲時間或時差。函數
date.timezone = "PRC"日誌
expose_php = Offcode
disable_functions = phpinfo, get_cfg_var safe_mode = On //開啓安全模式,這個開了,可能會有些php功能沒辦法使用了