Блокировка Apache на основе комбинации ip, request и useragent - может ли fail2ban сделать это?

3 раза за последние 48 часов у нас был примерно 6-кратный всплеск трафика, который длился несколько часов. Сервер обрабатывал это каждый раз, но едва. Это был почти весь трафик плохого бота (или, возможно, неудачные попытки DOS). Мне нужно настроить некую стену, чтобы автоматически блокировать это, пока это происходит (не вручную просматривая журналы на следующий день). Конечно, fail2ban часто встречается в моем поиске, но я не могу найти хороших примеров или документации, чтобы узнать, подходит ли он мне.

Мне нужно реализовать фильтр для Apache, который игнорирует большую часть журнала в зависимости от регулярного выражения как для запрошенного URL-адреса, так и для агента пользователя. И только тогда начинает определяться, сильно ли нас бьет по IP.

Проблема в том, что я не могу просто использовать простой порог запрета на IP-адреса. За каждым допустимым запросом страницы немедленно следует множество других запросов на поддержку контента (GET /images/...; GET /extensions/...; GET /skins/...), поэтому просто блокируется любой, кто сделал даже 10 запросов через 2 секунды поймают почти всех. Мне нужно отфильтровать эти записи из любых вычислений и учитывать только запросы верхнего уровня.

Но даже если мне удастся просмотреть только запросы верхнего уровня (так что теперь, возможно, я забаню 20 запросов за 10 минут), моя проблема будет состоять в том, что я могу легко заблокировать сканеры, которым я с радостью обслуживаю страницы (GoogleBot, Slurp и т. Д.), Поэтому я тоже хочу, чтобы это пропустить.

Является ли Fail2Ban или любой другой продукт таким надежным? Я могу получить необходимую информацию довольно быстро с помощью пары выражений grep -v, но существует ли уже существующая программа, которая уже делает это?

0 ответов

Другие вопросы по тегам