Как заблокировать ip адрес на сайте
Перейти к содержимому

Как заблокировать ip адрес на сайте

  • автор:

Как заблокировать IP на сайте

Как заблокировать IP на сайте

Иногда бывает ситуации, когда на сайте требуется заблокировать доступ к нему с определённого IP. Самый простой пример — заблокировать IP-адрес спамера. И как заблокировать IP-адрес на сайте через .htaccess, я подробно объясню в этой статье.

Очень часто нужно, чтобы был заблокирован даже не конкретный IP, а целая подсеть. Вновь, .htaccess — это идеальное средство для этого. В коде, представленном ниже, мы блокируем различные придуманные IP-адреса и подсети (.htaccess должен находиться в корне сайта, либо в директории, к которой Вы хотите подключить данные блокировки):

<Limit GET POST>
order allow,deny
deny from 15.29.29.12
deny from 13.110.145.
deny from 21.173.
allow from all
</Limit>

Немножко поясню данный код. Строка «deny from 15.29.29.12» — блокирует конкретный IP-адрес. А вот следующая строка: «deny from 13.110.145.» — блокирует уже целую подсеть с диапазоном адресов: «13.110.145.0 — 13.110.145.255«. И, наконец, последняя блокировка: «deny from 21.173.«, — блокирует ещё более широкий диапазон IP-адресов: «21.173.0.0 — 21.173.255.255«.

Надеюсь, теперь Вы знаете, как заблокировать доступ по IP для недображелателя, и даже всю его подсеть. Главное, помните, что в России очень распространена ситуация, когда пользователи сидят под одним IP-адресом. И из-за одного «негодяя» могут пострадать ни в чём не виноватые люди, поэтому блокируйте по IP только в самом крайнем случае.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

Она выглядит вот так:

Комментарии ( 5 ):

А если нужно заблокировать все IP-адреса, кроме определённого диапазона адресов,(напр. диапазон IP Российской Федерации)

allow from 127.0.0. — просто одна эта строка.

Михаил, для HTML сайта htaccess таким же образом работает?

Уважаемый Алексей. Почитайте, что такое .htaccess и зачем он.

уважаемые программисты, подскажите, как правильно перенаправить посетителя по ip или по ip диапазону-подсети на другой адрес? пробывал во такой вариант: RewriteEngine on RewriteCond % ^82\.145\.220\.88$ RewriteRule ^(.*)$ http://www.yandex.ru/ [L] просто переадресация по ip работает, а как добавить несколько ip диапазонов или подсетей что бы работала переадресация? 🙂

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.

Как запретить доступ на сайт по ip-адресу клиента

Учитывая, что порой на сайт могут осуществляться различные атаки недобросовестных конкурентов или ботов, то это можно прекратить путем запрета доступа к сайту с определённого IP адреса или даже нескольких IP адресов. Для запрета доступа к сайту и папкам сайта достаточно в файле .htaccess воспользоваться директивами allow и deny.

Для того, чтобы запретить доступ с определенного ip-адреса на ваш сайт необходимо вставить в файл .htaccess следующий код:

Как ограничить доступ к сайту с помощью .htaccess и cPanel IP Blocker

Если вы хотите ограничить доступ к своему сайту, это можно сделать с помощью файла .htaccess или cPanel IP Blocker.

Ограничение доступа к сайту с помощью файла .htaccess

.htaccess — это файл конфигурации, используемый веб-сервером Apache . Параметры .htaccess переопределяют глобальные настройки каталога, в котором находится этот файл.

Файл .htaccess создается на сервере автоматически, когда вы устанавливаете WordPress, Drupal и Magento. Его также можно создать в текстовом редакторе и загрузить на сервер. А также с помощью файлового менеджера cPanel .

Чтобы начать, войдите в панель управления хостингом.

Ограничение доступа к сайту с помощью файла .htaccess

В верхнем меню навигации выберите пункт « Моя cPanel» .

Ограничение доступа к сайту с помощью файла .htaccess - 2

Затем выберите пункт «Менеджер файлов» .

В правом верхнем углу экрана нажмите кнопку « Настройки» .

Файлы .htaccess по умолчанию скрыты от просмотра. Чтобы открыть их, установите флажок « Показать скрытые файлы (dot- файлы)» ( панель «Настройки») , а затем нажмите кнопку « Сохранить» .

Перейдите в корень сайта, используя левую боковую панель. Проверьте, существует ли файл .htaccess .

Выделите его и нажмите кнопку « Изменить» в верхнем меню.

Также можно создать новый файл .htaccess, нажав кнопку «+ Файл» .

В открывшейся панели « Новый файл» введите .htaccess в качестве имени файла и нажмите кнопку « Создать новый файл» . Если нужно подтвердить используемые кодировки, оставьте значения по умолчанию и нажмите « Изменить» .

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

Запретить доступ ко всем файлам и папкам с помощью .htaccess

Чтобы запретить доступ ко всем файлам и папкам сайта, создайте файл .htaccess в корневом каталоге сервера и добавьте в него следующее правило:

Запретить доступ к определенным типам файлов с помощью .htaccess

Этот пример блокирует доступ к файлам .php .

Чтобы блокировать доступ к другим форматам файлов, измените расширение файла, указанное в первой строке правила. Например, приведенное ниже правило блокирует доступ к файлам .inc :

Запретить доступ к определенному файлу через .htaccess

Блокировка доступа к определенному файлу осуществляется с помощью следующего правила:

В этом примере блокируется доступ к файлу config.php, который находится в том же каталоге, что и файл .htaccess.

Запретить доступ с определенных IP-адресов с помощью .htaccess

Если нужно запретить определенному пользователю доступ к вашему сайту, используйте его IP-адрес или доменное имя, с которого он переходит. Например:

Чтобы запретить доступ определенной группе IP, уберите из адреса последний октет:

Приведенное выше правило блокирует доступ к сайту IP-адресам в диапазоне от 123,456,789,0 до 123,456,789,255.

Запретить доступ с определенных доменов через .htaccess

Приведенное ниже правило будет выводить ошибку 403 Forbidden для любого пользователя, перешедшего на сайт по ссылке, размещенной в problemdomain.com:

Также для всех, кто перешел с указанного домена, можно выводить ошибку 500 Internal Server Error :

Ограничить доступ к сайту с помощью IP Blocker cPanel

Альтернативный способ запретить доступ к сайту заключается в использовании функции блокирования IP-адресов cPanel .

Перейдите в «Моя cPanel» , раздел « Безопасность ».

Ограничить доступ к сайту с помощью IP Blocker cPanel

IP Blocker обеспечивает меньшую гибкость по сравнению с файлом .htaccess. Но он проще в использовании. Например, с его помощью вы сможете заблокировать доступ к сайту по IP, диапазону IP-адресов или домену. Но при этом не сможете ограничить доступ к определенным файлам.

Ограничить доступ к сайту с помощью IP Blocker cPanel - 2

В поле « Добавить IP-адрес или диапазон» введите IP-адрес, диапазон IP-адресов или домен, для которого вы хотите заблокировать доступ, и нажмите кнопку « Добавить» .

Снять ограничения доступа в файле .htaccess

Чтобы снять ограничения доступа, указанные в .htaccess, просто удалите правило из файла с помощью текстового редактора cPanel File Manager .

Запретить доступ с IP-адресов через IP-блокиратор cPanel

IP Blocker работает аналогично правилу .htaccess. Вы можете указать IP-адреса в следующих форматах:

  • Один IP-адрес: 168.0.1
  • Диапазон: 168.0.1-192.168.0.40
  • Подразумеваемый диапазон: 168.0.1-40
  • Формат CIDR: 168.0.1/32
  • Блок IP: 192.

Введите IP-адрес или диапазон и нажмите кнопку « Добавить» .

Запретить доступ с IP-адресов через IP-блокиратор cPanel

Запретить доступ с определенных доменов через IP Blocker cPanel

Чтобы заблокировать трафик, идущий на ваш сайт с конкретного домена, введите имя домена в поле » Добавить IP или диапазон» .

Запретить доступ с определенных доменов через IP Blocker cPanel

cPanel свяжет доменное имя с его IP-адресом через поиск. Если IP-адрес не будет найден, вы не сможете заблокировать домен.

Управление заблокированными IP-адресами и доменами с помощью IP Blocker cPanel

В разделе « Заблокированные в настоящее время IP-адреса» приводится список IP-адресов, которые заблокированы. Чтобы снять ограничения доступа, нажмите кнопку « Удалить» рядом с IP-адресом или диапазоном.

Управление заблокированными IP-адресами и доменами с помощью IP Blocker cPanel

Вадим Дворников автор-переводчик статьи « How to restrict access to your website with .htaccess and the cPanel IP Blocker »

Вычисляем потенциальных «злых» ботов и блокируем их по IP

Доброго дня! В статье расскажу как можно пользователям обычного хостинга отловить IP адреса генерирующие излишнюю нагрузку на сайт и затем блокировать их при помощи средств хостинга, будет «чуть-чуть» php кода, несколько скриншотов.

Вводные данные:

  1. Сайт созданный на CMS WordPress
  2. Хостинг Бегет (это не реклама, но скрины админки будут именно этого хостинг провайдера)
  3. WordPress сайт запущен где то в начале 2000 и имеет большое количество статей и материалов
  4. Версия PHP 7.2
  5. WP имеет последнюю версию
  6. С некоторых пор сайт начал генерировать высокую нагрузку на MySQL по данным хостинга. Каждый день это значение превышало 120% от нормы на учётную запись
  7. По данным Яндекс. Метрика сайт посещает 100-200 человек в сутки
  1. Очищены таблицы БД от накопившегося мусора
  2. Отключены не нужные плагины, убраны участки устаревшего кода

То как выглядела примерная нагрузка по базам данных хостинга


В топе находится сайт о котором идёт речь, чуть ниже другие сайты которые имеют ту же cms и примерно такую же посещаемость, но создают меньше нагрузки.

  • Было предпринято много попыток с вариантами кеширования данных, проводились наблюдения в течении нескольких недель (благо хостинг за это время мне ни разу не написал что я такой плохой и меня отключат)
  • Был анализ и поиск медленных запросов, затем была немного изменена структура БД и тип таблиц
  • Для анализа в первую очередь использовался встроенный AWStats (он кстати помог вычислить самый злой IP адрес по объему трафика
  • Метрика — метрика даёт информацию только о людях, а не о ботах
  • Были попытки использовать плагины для WP, которые умеют фильтровать и блокировать посетителей даже по стране нахождения и по различным комбинациям
  • Совсем радикальный способ оказался закрыть сайт на сутки с пометкой «Мы на техническом обслуживании» — это было так же сделано при помощи знаменитого плагина. В этом случае нагрузка ожидаем упала, но не до 0-левых значений, так как идеология WP базируется на хуках и плагины начинают свою активность при наступлении какого — либо «хука», а до наступления «хука» могут быть уже сделаны запросы к БД
  1. Вычислить IP адреса которые делают много запросов за короткий промежуток времени.
  2. Зафиксировать количество обращений к сайту
  3. На основе количества обращений блокировать доступ к сайту
  4. Блокировать при помощи записи «Deny from» в файле .htaccess
  5. Другие варианты, вроде iptables и правил для Nginx не рассматривая, ибо пишу про хостинг

    Создаём таблицы для накопления данных

Дальше просто, скопировали «вредный» IP, открыли файл .htaccess и добавили в конец файла

Всё, теперь 94.242.55.248 — не имеет доступа к сайту и не генерирует нагрузку на БД

Но каждый раз так руками копировать не очень праведное занятие, да и к тому же код задумывался как автономный

Добавим файл, который будет исполняться по CRON каждые 30 минут:

Код файла достаточно прост и примитивен и главная его идея в том что бы взять кандидатов на блокировку и вписать правила блокирвоки в файл .htaccess между комментариями
# start_auto_deny_list и # end_auto_deny_list

Теперь «вредные» ip блокируются сами собой, а файл .htaccess выглядит примерно так:

В итоге после начала действия такого кода можно увидеть результат в хостинг панели:

PS: Материал авторский, хоть его часть я и публиковал на своём сайте но на Habre получилась более расширенная версия.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *