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

Правильный способ автоматической блокировки IP-адресов

Эта проблема:

Я управляю сайтом, на котором много динамически генерируемых страниц. Ежедневно боты из Google, Yahoo и других поисковых систем загружают более 100 тысяч страниц. И иногда у меня возникают проблемы с «хакерами», пытающимися массово загрузить весь сайт.

Я хотел бы заблокировать IP-адреса «хакеров», при этом поисковые роботы будут сканировать страницы. Как лучше всего это сделать?

Примечание:
Прямо сейчас я решаю проблему следующим образом. Я сохраняю ip каждого запроса страницы в файл каждые X секунд. И у меня есть скрипт crontab, который считает повторяющиеся IP-адреса каждые 30 минут. Для IP-адресов, которые повторяются слишком много раз, сценарий проверяет имя хоста - если оно не принадлежит Google / Yahoo / Bing / и т. Д., То у нас есть кандидат на бан. Но мне не очень нравится мое решение, и я думаю, что автоматическую блокировку можно было бы сделать лучше или использовать какое-то нестандартное решение.

Вы не указали свою ОС, поэтому я с радостью сообщу вам версию OpenBSD: в pf.conf поместите в свой набор правил что-то вроде следующего (максимум 100 подключений за 10 секунд):

table <bad_hosts> persist
block quick from <bad_hosts>
pass in on $ext_if proto tcp to $webserver port www keep state \
                 (max-src-conn-rate 100/10, overload <bad_hosts> flush global)

вы можете добавить белый список и задание cron, удаляющее адреса из bad_hosts через день или два.

Посмотри на Простой коррелятор событий. Он может автоматически запускать команды (т.е. добавлять блок в iptables) после того, как определенное количество строк, соответствующих регулярному выражению, было просмотрено в течение определенного промежутка времени. Он также может определять истекающий «контекст». По истечении срока действия контекста вы можете разблокировать рассматриваемый IP-адрес (т.е. удалить из iptables).

Я бы подумал, что fail2ban - это ответ.

Ты можешь использовать белый списокs, чтобы предотвратить блокировку поисковых систем.