原文來自: http://www.petefreitag.com/item/505.cfm
一. 確定你安裝了最新的安全補丁.先把本文del.icio.us了,然後再回來看其他的。 二. 隱藏Apache的版本號,以及其他一些信息apache的默認設置公開了apache的版本號,操作系統,甚至還有已經安裝了的apache組件。黑客們會利用這些信息更方便的去攻擊你。並且,這些信息告訴了所有人:你的apache並沒有經過配置 你可以在httpd.conf文件中,加上或者修改兩條代碼,隱藏信息。 ServerSignature Off ServerTokens Prod ServerSignature apache生成的一些頁面底部,比如404頁面,文件列表頁面等等。 ServerTokens指向被用來設置Server的http頭回響。設置爲Prod可以讓HTTP頭回響顯示成這樣…. Server: Apache 如果是個超級偏執狂,你可以修改源代碼或者使用mod_security,來顯示比Apache更多的東西. 確定apache是運行在它之下的用戶和組之下。很多apache安裝之後他們是運行在nobody之下的。所以,每個運行在nobody之下的apache,將會被同組的郵件服務其攻擊。chown apache.apache /var/… User apache Group apache 確認根目錄的東西是關閉的我們不惜王apache有修改根目錄的全縣。 所以,建議你所有的網站都放在一個目錄下面(我們稱爲/web,你可以象這樣設置: Order Deny,Allow Deny from all Options None AllowOverride None Order Allow,Deny Allow from all QUOTE: 由於我們設置了Options None 和AllowOverride None,這將關閉options權限和覆蓋權限,你現在必須爲每個文件夾加上explicitly,爲他們恢復Option和Override權限。 關閉文件夾瀏覽你可以在httpd.conf的Directory標籤中間加上一個Options指令 。 設置Options爲None或者-Indexes Options -Indexes 關閉服務器的side includes也要添加一條Optoions指令到Directory 標籤中, 使Options 爲 None或者-Includes Options -Includes 關掉CGI如果你不用CGI,那就在Directory標籤中加上一條Options指令關掉他。 使Options爲None或者-ExecCGI Options -ExecCGI 不要讓apache進入象徵性links中(我理解的是#)也是在directory中修改Options 爲 -FollowSymLinks Options -FollowSymLinks 關閉多選項關閉所有選項 Options none 關閉幾個選項 Options -ExecCGI -FollowSymLinks -Indexes 關閉對 .htaccess 文件的支持。也在Directory標籤中,但是AllowOverride指令 AllowOverride none 如果你需要Overrides,需要確認他們不能被下載。改變他們的文件名,而不是原來的.htaccess, 比如可以改爲.httpdoveride, 或者屏蔽所有的.ht開頭的文件。 AccessFileName .httpdoverride Order allow,deny Deny from all Satisfy All 運行 mod_securitymod_security 是一個非常好用的Apache組件. 通過mod_security你可以達到以下效果: 簡單的過濾 正則表達式過濾 URL 編碼驗證 Unicode編碼驗證 覈查 Null值攻擊預防 上傳大小限制 服務器身份掩藏 內置Chroot支持 更多… 關掉一些不需要的組件去module documentation 看一下你到底需要哪些組件. 好多時候你會發現,你並不需要…. 一行一行去查找你的httpd.conf裏是否包含LoadModule, 可以用#放在行首去關閉組件。 如果象搜索組件,可以運行: grep LoadModule httpd.conf 這裏有些組件常常打開的,但是不需要。 mod_imap,mod_include,mod_info,mod_userdir,mod_status,mod0cgi,mod-autoindex. 去人只有root有閱讀apache配置文件和bin文件的權限。chown -R root:root /usr/local/apache chmod -R o-rwx /usr/local/apache 減少Timeout值默認設置timeout指令是300秒。 你可以減小他,以預防一些潛在攻擊。 Timeout 45 減小最大請求apache有很多指令來減小請求數,一個很好的指令是LimitRequestBody指令。 這條指令默認設置是無線的。 如果你想設置上傳文件不能超過1MB, 你可以這樣寫: LimitRequestBody 1048567 如果不允許問文件上傳。你可以設得更小。 其他得指令,可以看看LimitRequestFields,LimitrequestFieldSize , LimitRequestLine. 這些指令都是默認設置。但是你必須去優化他們,成爲你需要的。 可以看看這個文檔 限制XML body區的大小如果你運行了mod_dav,你會希望限制XML 請求的body大小。 LimitXMLRequestBody指令只有在Apache2中有。 並且他的默認值是1個millon字節大小,大約1M, 很多教材上說這裏設置爲0比較好,這就意味着多大的文件都可以上傳,如果你需要上傳大文件的話。 但是如果你簡單的改變一下控制。 你可以大概的設置成10MB LimitXMLRequestBody 10485760 限制併發apache有些設置可以限制併發請求。MaxClients就是服務器能承受的最大用戶值。 其他的指令比如MaxSpareServers,MaxRequestsPerChild, Apache2上的 ThreadsPerChild,ServerLimit,和MaxSpareThreads 和你的系統硬件配置的配合都是很重要的。 IP限制地址段如果你有一些資源只能給特定的網段使用…176。16.0.0–176.16.0.16 Order Deny,Allow deny from all Allow from 176.16.0.0/16 或者也可以限定單一IP Order Deny,Allow Deny from all Allow from 127.0.0.1 調整KeepAlive 設置MaxKeepAliveRequests –> 100 — (你需要的數) KeepAliveTimeout –> 15 –(你需要的數) 在Chroot環境運行apache(沒翻譯. )chroot allows you to run a program in its own isolated jail. This prevents a break in on one service from being able to effect anything else on the server. It can be fairly tricky to set this up using chroot due to library dependencies. I mentioned above that the mod_security module has built in chroot support. It makes the process as simple as adding a mod_security directive to your configuration: SecChrootDir /chroot/apache There are however some caveats however, so check out the docs for more info |
20種讓你的Apache更安全的設置(翻譯)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.