Apache2 anti ddos stuff
Категория: / DEV Блог
/ Сервер (FreeBSD)
mod_evasive
Порт:
/usr/ports/www/mod_evasive
Простой метод защиты от потенциальных ddos атак
Улов по-умолчанию пишет в /var/log/messages
mod_security
Создадим файлы для счетчиков
Создадим правило для блокировки (превышение 5 хитов в секунду блочится с 403 ошибкой)
Правила борьбы с ддос атаками позаимствованы с firstvds вики.
Порт:
/usr/ports/www/mod_evasive
Простой метод защиты от потенциальных ddos атак
<IfModule mod_evasive20.c>
DOSHashTableSize 3097
DOSPageCount 5
DOSSiteCount 100
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 600
#DOSEmailNotify admin@root.com
#DOSEmailNotify root
#DOSSystemCommand “cmd %s …’”
#DOSLogDir “/var/log/httpd/ddos”
</IfModule>
Улов по-умолчанию пишет в /var/log/messages
Jun 9 12:07:17 mod_evasive[59289]: Blacklisting address 62.63.88.19: possible DoS attack.
Jun 9 12:18:18 mod_evasive[61239]: Blacklisting address 85.91.114.2: possible DoS attack.
Jun 9 12:27:17 mod_evasive[63723]: Blacklisting address 80.249.153.52: possible DoS attack.
Jun 9 12:34:35 mod_evasive[65799]: Blacklisting address 213.247.230.130: possible DoS attack.
Jun 9 12:37:07 mod_evasive[66560]: Blacklisting address 85.233.132.253: possible DoS attack.
mod_security
Создадим файлы для счетчиков
#/tmp
touch ip.dir
touch ip.pag
chmod 666 ip.dir
chmod 666 ip.pag
Создадим правило для блокировки (превышение 5 хитов в секунду блочится с 403 ошибкой)
# /usr/local/etc/modsecurity] cat ./modsecurity_crs_11_dos_protection.conf
#
# Anti-Automation rule set for detecting Denial of Service Attacks.
#
SecRule REMOTE_ADDR "^127\.0\.0\.1$" "id:'400000',phase:1,nolog,allow"
SecRule REQUEST_BASENAME "!(\.avi$|\.bmp$|\.css$|\.doc$|\.flv$|\.gif$|\
\.htm$|\.html$|\.ico$|\.jpg$|\.js$|\.mp3$|\
\.mpeg$|\.pdf$|\.png$|\.pps$|\.ppt$|\.swf$|\
\.txt$|\.wmv$|\.xls$|\.xml$|\.zip$)"\
"id:'400001',phase:1,nolog,pass,initcol:ip=%REMOTE_ADDR,setvar:ip.requests=+1,expirevar:ip.requests=1"
SecRule ip:requests "@eq 5" "id:'400002',phase:1,pass,nolog,setvar:ip.block=1,expirevar:ip.block=5,setvar:ip.blocks=+1,expirevar:ip.blocks=3600"
SecRule ip:blocks "@ge 5" "id:'400003',phase:1,deny,log,msg:'DDOS protection',logdata:'req/sec: %{ip.requests}, blocks: %{ip.blocks}',status:403"
SecRule ip:block "@eq 1" "id:'400004',phase:1,deny,nolog,status:403"
SecMarker END_DOS_PROTECTION_CHECKS
Правила борьбы с ддос атаками позаимствованы с firstvds вики.