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

Возможно ли использование обратных ссылок в фильтрах fail2ban?

Время от времени я вижу коллекции подозрительных ошибок «Файл не найден» в моих журналах Apache, в основном с использованием шаблона

File does not exist: /var/www/file, referer: http://my.server.com/file

Говоря человеческим языком: файл не был найден, хотя он сам ссылался здесь. Явная попытка взлома, так как это вряд ли возможно (и REQUEST_URIs достаточно часто предлагают то же самое). В моих глазах ясный довод в пользу fail2ban - если бы я мог получить здесь обратные ссылки:

failregex = ^%(_apache_error_client)s File does not exist: /var/www(.+), referer: http://.+\1$

(Джастин Кейс: приведенные выше примеры предполагают DIRECTORY_ROOT этого веб-сервера /var/www)

Я гуглил часами, искал fail2ban вики вверх и вниз - но нигде я не смог найти утверждения относительно обратных ссылок в его фильтрах. Они не поддерживаются, или я неправильно сделал? Любые подсказки, как заставить его работать (кроме «грязных хаков», таких как первая отправка запроса на другой поддельный URL-адрес с использованием , а затем уловить это (если кому-то интересно, я могу уточнить этот подход в ответе) или сделать что-то подобное, используя )?


поскольку была запрошена вся строка журнала:

[Fri Nov 08 14:57:28 2013] [error] [client 50.67.234.213] File does not exist: /var/www/text/files.htm++++++++++++++++++++++++++Result:+using+proxy+27.34.142.47:9090;+no+post+sending+forms+are+found;, referer: http://www.myserver.com/text/files.htm++++++++++++++++++++++++++Result:+using+proxy+27.34.142.47:9090;+no+post+sending+forms+are+found;

(извините, журналы были только что переключены, поэтому этот длинный кандидат остался единственным В настоящее время; незначительные изменения были внесены из соображений конфиденциальности)

Похоже, нумерация обратных ссылок немного дурацкая. Попробуйте использовать Именованная группа ... что-то вроде этого:

failregex = ^%(_apache_error_client)s File does not exist: /var/www(?P<snoop_file>.+), referer: http://.+(?P=snoop_file)$