1. 程式人生 > 實用技巧 >Apache漏洞修復記錄

Apache漏洞修復記錄

一、慢http攻擊漏洞

1、在Apache中配置reqtimeout_module設定header和body的最大響應時間。

Apache配置 LoadModule reqtimeout_module modules/mod_reqtimeout.so <IfModulereqtimeout_module> requestReadTimeout header=5,MinRate=100 body=5,MinRate=100 </IfModule>

儲存後重啟Apache。

再進行測試可以看到,受到攻擊後,服務中斷時間大幅減少,伺服器正常服務的時間保持在80%左右,可維持正常的服務狀態。

2、由於緩慢http攻擊的攻擊性質,攻擊者一般操作單臺計算機就可以進行攻擊,所以假設在生產環境下,受到攻擊後,可以通過reqtimeout_module模組匯出的日誌,找到攻擊者的ip,進行ip封停,這樣可以有效的解決這類攻擊。

二、伺服器啟用了TRACE方法

在Apache中新增如下配置:

Apache配置

TraceEnable off

儲存後重啟Apache。

三、SSL/TLS存在Bar Mitzvah Attack漏洞

在Apache的ssl_module標籤中進行如下配置:

Apache配置

SSLCipherSuite HIGH:!ADH:!aNULL:!MD5:!RC4

儲存後重啟Apache。

四、SSLv3存在嚴重設計缺陷漏洞(CVE-2014-3566)

在Apache的ssl_module標籤中進行如下配置:

Apache配置

SSLProtocol all -SSLv2 -SSLv3 SSLHonorCipherOrder on 儲存後重啟Apache。 五、SSL/TLS存在FREAK攻擊漏洞 選擇一個已修復此問題的openssl版本,生產環境為1.0.2h,通過以下步驟完成配置: Apache配置 # 下載openssl原始碼包後,進行安裝 ./configshared --prefix=/opt/app/openssl-1.0.2h/ --openssldir=/opt/app/openssl-1
.0.2h/ssl make makeinstall # 在/root/.bash_profile下新增LD_LIBRARY_PATH=/opt/app/openssl-1.0.2h/lib vim/root/.bash_profile # source啟動環境變數 source/root/.bash_profile # 重啟Apache /opt/app/apache2/bin/apachectlrestart 六、洩露Apache server-status資訊 在 httpd.conf 中新增以下配置: Apache配置 <Location/server-status> SetHandler server-status Require all denied </Location> 儲存後重啟Apache。 七、登入支援弱SSL密碼套件 在 httpd.conf 中新增以下配置: Apache配置 SSLCipherSuite HIGH:MEDIUM:!MD5:!EXP:!NULL:!LOW:!ADH:!RC4:!aNULL 儲存後重啟Apache。 八、點選劫持ClickJacking 在httpd.conf中新增以下配置: Apache配置 # 檢查配置中是否包含以下模組 LoadModule headers_module modules/mod_headers.so # 在全域性中新增以下配置 Header always append X-Frame-Options SAMEORIGIN 儲存後重啟Apache。 注:現階段生產環境不適合改配置,修改配置會導致官網功能無法使用,將引數 SAMEORIGIN 修改為 ALLOW-FROM <url> 可以解決功能問題,但會導致瀏覽器相容性問題。故此問題不建議通過使用該配置進行修復。 九、檢測到目標伺服器存在web應用預設目錄 該漏洞現象為訪問目錄時,會出現改路徑下檔案和資料夾資訊。在 httpd.conf 中進行配置修改: Apache配置 # 檢查 DirectoryIndex 的引數值 # 搜尋所有 Options 引數的值 Options -Indexes FollowSymLinks Includes IncludesNOEXEC # 去掉所有 Options 引數下的 Indexes 值 Options FollowSymLinks Includes IncludesNOEXEC 儲存後重啟Apache。 十、啟用了不安全的http方法 在 httpd.conf 中新增如下配置: Apache配置 <Location/> Require all denied </Location> 儲存後重啟Apache。 十一、DDos攻擊

下載 evasive 模組並進行配置https://github.com/jzdziarski/mod_evasive

具體配置含義可以在 README 中得到幫助。

在 httpd.conf 中新增如下配置:

Apache配置

LoadModule evasive20_module modules/mod_evasive20.so <IfModulemod_evasive20.c> DOSHashTableSize 8000 DOSPageCount 5 DOSSiteCount 100 DOSPageInterval 1 DOSSiteInterval 1 DOSBlockingPeriod 86400 DOSLogDir "/opt/app/apache2/logs/mod_evasive" DOSSystemCommand "sudo -u root /sbin/iptables -A INPUT -s %s -p tcp -j DROP" DOSWhiteList 127.0.0.1 DOSWhiteList 10.96.*.* DOSWhiteList 172.25.*.* #DOSWhiteList 116.246.41.51 #DOSWhiteList 218.80.232.37 #DOSWhiteList 218.1.115.14 #DOSWhiteList 210.13.*.* #DOSWhiteList 101.231.49.* DOSWhiteList 116.246.41.51 DOSWhiteList 210.13.105.28 DOSWhiteList 210.13.105.7 DOSWhiteList 218.1.115.14 DOSWhiteList 218.80.232.37 </IfModule> 儲存後重啟Apache。 十二、scoreboard is full, not at MaxRequestWorkers(請求長時間處於Gracefully finishing 狀態) 在http-mpm.conf 中新增如下配置: Apache配置 <IfModulempm_prefork_module> StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxRequestWorkers 250 MaxConnectionsPerChild 0 GracefulShutdownTimeout 10 </IfModule> <IfModulempm_worker_module> StartServers 10 MinSpareThreads 75 MaxSpareThreads 250 ThreadLimit 64 ThreadsPerChild 64 MaxRequestWorkers 1600 ServerLimit 25 MaxConnectionsPerChild 0 GracefulShutdownTimeout 10 </IfModule> <IfModulempm_event_module> StartServers 3 MinSpareThreads 75 MaxSpareThreads 250 ThreadsPerChild 25 MaxRequestWorkers 400 MaxConnectionsPerChild 0 GracefulShutdownTimeout 10 </IfModule> 儲存後重啟Apache。 十三、關閉 HTTP 頭中版本號顯示 在httpd.conf 中新增如下配置: Apache配置 ServerTokens Prod ServerSignature Off 儲存後重啟Apache。