Назад | Перейти на главную страницу

fail2ban: регулярное выражение для блокировки \ x00 запросов?

Время от времени мой сервер выходит из строя, и когда я проверяю журналы nginx, я обычно вижу что-то вроде этого:

78.37.54.31 - - [20/Apr/2016:20:58:51 +0300] "\x00\x00\x00TZ\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x04\x010I\x00\x00\x00\x00\xFC\x01\xA8\xC0\x00!\x00\xFDk\x00\x00\x00\x00\x00\x00\x00\x00" 400 166 "-" "-" 89.169.219.212 - - [21/Apr/2016:11:37:22 +0300] "\x00\x00\x00 c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" 400 166 "-" "-"

Я устанавливаю fail2ban с рекомендуемой конфигурацией по умолчанию, рекомендованной этим Статья DigitalOcean, но это не помешало таким сканерам время от времени перегружать мой сервер. Установка naxsi сейчас для меня не вариант. Может ли кто-нибудь помочь мне сформировать правильные правила регулярного выражения для fail2ban? Тюрьмы "apache-badbots" и "apache-wootwoot" (которые можно легко найти в Google) у меня не работали.

В /etc/fail2ban/jail.conf

[nginx-x00]
enabled  = true
port     = http,https
filter   = nginx-x00
logpath  = /var/log/nginx/access.log
bantime = 3600
maxretry = 1

и в /etc/fail2ban/filter.d/nginx-x00.conf

[Definition]

failregex = ^<HOST> .* ".*\\x.*" .*$

и вы сделали. В следующий раз, когда кто-то будет с вами связываться, его / ее забанят на час или в любое другое время, которое вы укажете в бантайме.

Не беспокойтесь о правильно сформированных запросах с \ x, потому что они закодированы по URL и будут обрабатываться нормально.