Как заблокировать доступ на сайт по IP?
Станислав, Пермь 0
С одного и того же адреса постоянно долбят форму заявки на сайте спамом, встроенный антиспам не справляется. Хочу просто закрыть доступ этому IP, но не знаю, где и как это делается технически.
Дмитрий Акиндинов технический администратор сайтов
ответил
Проще всего заблокировать IP на уровне сервера. Если хостинг работает на Apache, в файл .htaccess в корне сайта добавляют строку «Require not ip 1.2.3.4» — это синтаксис Apache 2.4, актуальный сейчас на большинстве хостингов; в старых версиях (2.2) использовалась конструкция «Deny from 1.2.3.4». Для nginx блокировка делается в конфиге сайта директивой «deny 1.2.3.4;», но её обычно нельзя прописать самому через FTP — нужен доступ к конфигурации сервера или помощь хостинг-провайдера.
Блокировать можно не только один адрес, а целую подсеть — например, «Require not ip 1.2.3.0/24» закроет доступ сразу 256 адресам этого диапазона. Это удобно, если атака идёт с провайдера, у которого адреса меняются в пределах одной подсети, а не с одного конкретного IP.
У способа есть ограничение: если у атакующего или спамера динамический IP, который меняется при каждом переподключении к интернету, блокировка конкретного адреса перестаёт работать уже через несколько часов. В таких случаях эффективнее не гоняться за IP вручную, а подключить сервис вроде Cloudflare на бесплатном тарифе — он фильтрует подозрительный трафик по поведению, а не только по адресу, и блокирует автоматически.
Перед тем как сохранять правило, стоит дважды проверить свой собственный IP через поиск по фразе «мой ip» — при опечатке в .htaccess легко заблокировать самого себя или весь свой офис, если IP статический и общий на всю сеть.
Задать свой вопрос
Вопросы проходят модерацию. Ответ появляется на сайте в течение пары дней.
Вопрос отправлен. После проверки он появится на сайте вместе с ответом.
Вопрос не отправлен: нужно подтвердить согласие на обработку персональных данных.