Как заблокировать IP-адрес на сайте?
Виталий, Тюмень 0
Здравствуйте! На сайт третий день ломится один и тот же IP с левыми запросами к несуществующим страницам, логи хостинга раздуваются. Как закрыть ему доступ, чтобы обычные посетители ничего не заметили?
Дмитрий Акиндинов технический администратор сайтов
ответил
IP-адрес блокируется на уровне сервера через .htaccess: на Apache 2.4 внутри блока `<RequireAll>` пишете `Require all granted` и следующей строкой `Require not ip 1.2.3.4`, на старых конфигурациях (Apache 2.2) хватает строки `deny from 1.2.3.4`. Файл сохраняется, и блокировка работает сразу, без перезапуска сервера и обращения в поддержку хостинга.
Найти нужный адрес проще всего в логах хостинга (в панели обычно раздел «Статистика» или «Логи доступа») либо в плагине вроде Wordfence, который показывает неудачные попытки входа в админку и IP атакующего. Смотрите не на один запрос, а на серию за короткое время — это отличает бота от случайного посетителя, который просто ошибся ссылкой.
Если сайт работает через Cloudflare, блокировать в .htaccess бесполезно: сервер видит уже IP Cloudflare, а не реального посетителя. Правило добавляется в разделе Security -> WAF -> Firewall Rules самого Cloudflare, там же можно блокировать по стране или диапазону.
Осторожно с массовой блокировкой: мобильные операторы и часть провайдеров раздают клиентам общий IP через NAT, и под запрет может попасть сразу сотня живых пользователей. Для одиночного назойливого адреса ручная блокировка — нормальное решение, а для постоянных атак ботов лучше подключить лимит запросов на хостинге или в том же Cloudflare, а не вести список вручную. Заблокированный посетитель увидит стандартную ошибку 403.
Задать свой вопрос
Вопросы проходят модерацию. Ответ появляется на сайте в течение пары дней.
Вопрос отправлен. После проверки он появится на сайте вместе с ответом.
Вопрос не отправлен: нужно подтвердить согласие на обработку персональных данных.