Модуль es-nginx-access был разработан компанией Extra Systems для защиты web-сервера nginx от хакерской активности в рамках системы fail2ban. Суть его деятельности заключается в выявлении подозрительной активности в файле /var/log/nginx/access.log.
Подключение es-nginx-access к fail2ban производится таким способом:
[es-nginx-access] enabled = true filter = es-nginx-access logpath = /var/log/nginx/access.log action = iptables-allports[name=es-nginx-access, blocktype=DROP, protocol=all]
Обратите внимание на тот факт, что данный фильтр блокирует для изобличенного хакера все протоколы на всех портах, причем делает это по методу DROP - что превращает после этого ваш хост в абсолютно "черную дыру" для данного конкретного злоумышленника. Ни на один свой последующий IP-пакет он не получит вообще никакого ответа. Таким образом нами обеспечивается значительная экономия ресурсов вашего сервера.
Код нашего фильтра es-nginx-access имеет такой вид:
[Definition]
failregex = ^<HOST> - - \[.*\] ".*" 400\s
^<HOST> - - \[.*\] "GET /.*\.php HTTP/.*" 404
^<HOST> - - \[.*\] "POST /wp-login.php HTTP/\d\.\d" (200|301)\s
^<HOST> - - \[.*\] "(GET|POST) /\.(?!well-known/acme-challenge/).*" 404
^<HOST> - - \[.*\] "GET /\$\(pwd\)/\..*" 404
^<HOST> - - \[.*\] "(GET|POST) /.*(\.\.\/\.\.\/\.\.\/|cgi-bin|eval-stdin).*" 404
^<HOST> - - \[.*\] "GET /\?(p|m|author)=\d+ HTTP/\d\.\d" 404\s
^<HOST> - - \[.*\] "POST //?xmlrpc\.php HTTP/\d\.\d" 200\s
^<HOST> - - \[.*\] "GET /(dns-query|query|resolve)\?(dns|name)=.*" 404\s
ignoreregex =
В условиях практической эксплуатации на наших Linux-серверах данный фильтр показал очень высокую эффективность в деле подавления хакерской активности в рамках web-сервера nginx.
| © Extra Systems, 2026 |
|