Apache漏洞修復記錄
阿新 • • 發佈:2020-08-17
一、慢http攻擊漏洞
1、在Apache中配置reqtimeout_module設定header和body的最大響應時間。
Apache配置LoadModule reqtimeout_module modules/mod_reqtimeout.so
<
IfModule
reqtimeout_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原始碼包後,進行安裝
.
/config
shared --prefix=
/opt/app/openssl-1
.0.2h/ --openssldir=
/opt/app/openssl-1
.0.2h
/ssl
make
make
install
# 在/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/apachectl
restart
六、洩露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
<
IfModule
mod_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配置
<
IfModule
mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxRequestWorkers 250
MaxConnectionsPerChild 0
GracefulShutdownTimeout 10
</
IfModule
>
<
IfModule
mpm_worker_module>
StartServers 10
MinSpareThreads 75
MaxSpareThreads 250
ThreadLimit 64
ThreadsPerChild 64
MaxRequestWorkers 1600
ServerLimit 25
MaxConnectionsPerChild 0
GracefulShutdownTimeout 10
</
IfModule
>
<
IfModule
mpm_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。