Как запретить доступ к сайту по IP
Последнее обновление: 21 февраля 2023 г.
Сначала, создается файл .htaccess
как простой документ текстового формата без расширения. Обычно файл по умолчанию существует в корневой директории сайта в популярных CMS. Если его нет, то необходимо его создать через менеджер файлов.
Ниже мы рассмотрим различные варианты ограничения доступа с примерами кода.
Полное закрытие сайта
Для того чтобы полностью закрыть сайт от посещений и возможности просмотра его содержимого в .htaccess необходимо добавить следующее:
Order Deny, Allow
Deny from all
После этого ни с какого IP-адреса зайти на сайт будет невозможно. При такой попытке на стороне клиента выдается 403 ошибка, обозначающая запрет на просмотр.
Файл .htaccess для этой операции необходимо расположить в корне сайта.
Запрет доступа для целевого IP-адреса
Для закрытия доступа с определенного IP-адреса добавьте в файл . htaccess
следующие строки:
Order Allow,Deny
Allow from all
Deny from 123.123.123.123
Deny from 122.122.122.122
где 123.123.123.123, 122.122.122.122 — IP-адреса, для которых запрещается доступ к сайту.
Внимание!
Не заблокируйте случайно свой IP-адрес.
Разрешение только для конкретных IP-адресов
Для открытия доступа с определенного IP-адреса, добавьте в файл .htaccess следующие строки:
Order Allow,Deny
Order Deny,Allow
Deny from all
Allow from xxx.xxx.xxx.xxx
Вместо xxx.xxx.xxx.xxx укажите IP-адреса, для которых хотите открыть доступ к сайту.
Блокировка подсети IP
Если вам нужно заблокировать не отдельные IP-адреса, а подсеть IP-адресов (некий диапазон), сначала определите нужное значение с помощью безклассовой адресации CIDR (калькулятор IP-диапазона в CIDR).
Затем добавьте в файл .htaccess, находящийся в корневой папке сайта, следующие строки:
Order Deny,Allow Deny from 123. 123.0.0/26
где 123.123.0.0/26 — подсеть IP, которую вам нужно заблокировать.
Ограничение доступа к целевой папке
Помимо прочего, запрет доступа для определенных IP-адресов к разделам сайта помогает повысить безопасность административной части. В файле .htaccess, который расположен в корневой директории сайта добавьте следующий код:
<Directory /wp-admin/> order deny, allow deny from all #Адреса, которым разрешен вход записываются через пробел allow from 198.69.144.98 198.69.144.94 </Directory>
Также можно просто создать файл .htaccess в нужной директории с необходимым правилом.
Ограничение доступа к определенному файлу на сайте
Нередко возникают ситуации, при которых необходимо закрыть возможность просмотра не сайта или папки, а только определенного файла или группы файлов. Для этого используются директивы – files и filesmatch. Они несколько похожи на мета-теги, используемые для разметки HTML-кода.
Как пример приведем ограничение просмотра для архива site.zip:
<Files "site.zip"> deny from all </Files>
После размещения .htaccess с кодом в папке, где находится целевой файл при обращении к нему напрямую на стороне клиента появится сообщение об ошибке 403.
Для ограничения просмотра группы файлов используется директива filesmatch и регулярные выражения, позволяющие создать необходимую маску. Пример ограничения доступности архивных и графических файлов выглядит следующим образом:
FilesMatch ".(gif|png|jpe?g|rar|zip)$"> deny from all </FilesMatch>
Как настроить запрет доступа к файлу, каталогу и сайту через htaccess
Многие пользователи серверов Apache для настройки работы сайта используют файл конфигураций htaccess. С одной стороны, нельзя назвать это решение мудрым и стоящим, поскольку чересчур наполненный файл htaccess может навредить скорости работы сервера. Но некоторые опции этого конфигурационного документа сложно настроить без использования файла htaccess, например, ограничение доступа к файлу, каталогу или сайту в целом. В приведенной ниже статье вы узнаете, как использовать эту функцию файла htaccess, и для чего она нужна.
Содержание
Кому нужен запрет доступа и как им пользоваться
Стоит учитывать, что файл htaccess позволяет не только делать запрет доступа сразу ко всему сайту, но и создавать белые и черные списки пользователей. То есть вы сможете, к примеру, закрыть доступ для некоторых IP. Точно так же вы сможете снять запрет только для выбранных вами IP, создав тем самым белый список пользователей. Но зачем вообще использовать эту функцию?
Порой обстоятельства так складываются, что к сайту нельзя никого подпускать. К примеру, когда на нем ведутся какие-то важные техработы. В этот момент вы можете заблокировать доступ для каждого пользователя, кроме своего IP. Тогда посетители не будут присутствовать на ресурсе, когда он в нестабильном состоянии. Кроме того, используя черный список пользователей, вы сможете запретить доступ к сайту для IP недоброжелательных посетителей, которые спамят, флудят, ругаются и плохо обзываются о вашем портале.
Таким образом, вы сможете закрыть свой сайт от нежеланных гостей, создав подобие бан-листа. И во всем этом вам поможет файл htaccess с его незаменимыми директивами.
Как запретить доступ к файлу, каталогу, сайту через htaccess
Для управления уровнем доступа к сайту, файлу или папке вам необходимо будет использовать директивы Deny и Allow. Первая директива нужна, чтобы запретить доступ, а вторая — чтобы разрешить. Во многом эти директивы зависят от того, куда вы поместите файл htaccess. Если он будет расположен в корневом каталоге, то запрет или разрешение будет действовать на весь сайт целиком. Если же вы загрузите htaccess в какую-то папку, то опции Deny и Allow будут действовать на каталог, в котором находится, а также на внутренние папки. Именно таким образом и блокируют доступ к определенным директориям и разделам сайта.
Синтаксис директив запрета и разрешения предельно прост. Начинать опцию следует со строки Order Deny, Allow. Она обозначает активацию функций Deny и Allow. А в следующих строках вы должны указать конкретно, какие условия доступа вы планируете установить. Так, чтобы закрыть доступ для всех, вам нужно прописать всего две строки:
Order Deny,Allow - открытие функции.
Deny from all - указание правила.
Нижняя строка говорит: «Запретить (deny) для (from) всех (all)». Точно таким же образом вы можете вместо Deny прописать Allow для активации противоположной опции. Но поскольку эта опция активирована по умолчанию, нет смысла ее дополнительно указывать в htaccess. Allow from скорее используют для того, чтобы указывать исключения, то есть чтобы сформировать белый список пользователей.
Чтобы открыть доступ только для некоторых IP, вам нужно сначала закрыть сайт или каталог для всех остальных. Вот пример создания белого списка для двух адресов IP:
Order Deny,Allow
Deny from all
Allow from 136.68.81.3, 135.67.82.1 - IP писать через запятую.
По аналогии с написанной функцией вы сможете блокировать только определенные адреса IP. Только для этого вам нужно будет сначала прописать разрешение для всех через Allow from all, а потом указывать через Deny from IP-адреса, либо названия хостов, для которых доступ строго воспрещен.
Для ограничения прав на файл через закрытие доступа, вам нужно создать отдельный документ htaccess, и поместить его в директорию, где содержится файл. Директива запрета для файла выглядит примерно так же, как опция ограничения доступа для сайта или каталога. Разница только в том, что для ограничения файла вам понадобится специальный тег . В открывающем теге необходимо указать название объекта, доступ к которому следует ограничить. Вот пример запрета для всех пользователей к файлу passvd.txt:
<Files "passvd.txt"> - тег с именем файла
Order Deny,Allow - открытие опции
Deny from all - правило директивы
</Files> - закрытие тега
Теперь вам осталось поместить htaccess в каталог, где содержится файл passvd.txt, и никто не сможет добраться к нему через сайт. Как показывает практика, обычно доступ к файлу блокируют не полностью, а указывают исключения для доверенных IP-адресов. К примеру, вы сможете указать ограничение для всех, кроме своего IP, чтобы вы смогли потом скачать файл с паролями. Вот пример такого ограничения:
<Files "passvd.txt">
Order Deny,Allow
Deny from all
Allow from 144.66.55.2
</Files>
Если в каталоге содержится не один файл, который вам нужно защитить, а несколько, то вы можете прописать сразу много директив для каждого отдельного объекта. Но это неудобно. Кроме того, много опций в htaccess нагружают сервер, потому куда разумнее активировать другую блокировку — запрет доступа по типу файлов в каталоге, а не по их наименованию. Вам нужно будет использовать точно такую же конструкцию директив, только вместо имени файла необходимо через символ «|» указывать расширения, которые пользователи не смогут скачать с данной папки. Вот пример тег запрета для загрузки картинок определенного формата:
<Files "\.(jpg|jpe?g|ico)$">
Директивы
</Files>
Чтобы сделать запрет для других форматов, вам нужно будет лишь сменить названия расширений в скобках. Сделать это несложно, как и указать белый или черный список пользователей. Сама конструкция в кавычках всегда остается одинаковой.
Учтите, что многие пользователи используют не статический IP, а динамический, потому указывать один адрес в запрете глупо. Куда разумнее писать в запрет диапазон IP-адресов. Для этого найдите Whois-сервис и определите CIDR IP-адреса, а затем укажите его в запрете. Тогда даже при временной смене адреса, пользователь не сможет зайти на портал.
Ограничение доступа с помощью .htaccess и диспетчера запрета IP-адресов
Обновлено Брэдом Марклом от 16 августа 2021 г. Посетители могут быть ограничены в доступе к вашему сайту с помощью диспетчера запрета IP-адресов в вашей cPanel или путем добавления кода Allow
или Deny
в файл . htaccess.Это особенно полезно, когда роботы или злонамеренные посетители из определенных стран или доменных адресов рассылают спам на ваш сайт или размещают на нем комментарии, которые вам не нужны. В следующих разделах объясняется, как заблокировать IP-адреса в вашем файле .htaccess и с помощью диспетчера запрета IP-адресов cPanel.
Важно! Если вы используете VPS или выделенный сервер, вы можете заблокировать IP-адреса по всему серверу. Пожалуйста, нажмите здесь, чтобы узнать, как это сделать.
Контроль доступа с использованием вашего .htaccess
Контроль доступа по IP-адресу
Директивы Разрешить
и Запретить
позволяют разрешать и запрещать доступ на основе IP-адреса или имени хоста сервера исходящих посетителей. Синтаксис следующий:
Разрешает IP 122.102.1.2 доступ к вашему веб-сайту .
Разрешить с 122.102.1.2
Denys IP 25.122.6.3 доступ к вашему сайту .
Запретить с 25.122.6.3
Добавление этих строк кода предотвратит или предоставит доступ пользователю с этого IP-адреса.
Использование
Заказ
для объединения Разрешить
и DINY
Вы можете объединить DINY
и DIRITION
в одном месте, используя ORDE
. См. следующий пример кода.Запретить, разрешить Запретить всем Разрешить с 203.25.45.2
Это позволяет запретить доступ всем посетителям и в то же время разрешить доступ только определенным посетителям.
Контроль доступа по имени хоста
Вы можете заблокировать посетителей в .htaccess, используя имя хоста посетителя. Ниже приведен синтаксис для блокировки имен хостов от доступа к вашему сайту.
Запретить доступ с нежелательного домена.com
Важно! ЭТО НЕ РЕКОМЕНДУЕТСЯ. Если вы используете имя хоста в правиле Deny
в .htaccess, Apache преобразует ваш журнал Apache в имена хостов вместо IP-адресов. Это лишит вас возможности просматривать журналы с IP-адресами. Вы захотите использовать IP-адрес вместо имени хоста; если только вы не хотите проверять доступ к своему сайту только по имени хоста.
Объединение
deny
с IP-адресом и хостомВы можете комбинировать IP-адреса и имена хостов с одним и тем же синтаксисом. Также вы можете указать только часть домена. Ниже приведен синтаксис для объединения IP-адреса и имени хоста.
Запретить с 192.168.205 Запретить с нежелательного-домена.com нежелательный-домен-2.com Запретить с части домена
Управление доступом с помощью IP Deny Manager
cPanel дает вам возможность блокировать определенные IP-адреса от просмотра и доступа Ваш сайт. Ниже приведены шаги по добавлению IP-адресов на ваш сервер, чтобы заблокировать их доступ к вашему сайту.
- Войдите в свою cPanel.
Перейдите к разделу Security и нажмите IP Blocker 9Значок 0008. В следующей таблице объясняется, какие форматы можно использовать для блокировки IP-адресов.
Форматы IP (взято из cPanel) 901 03Один IP-адрес 10.5.3.333 (будет заблокирован только этот IP) Подразумеваемый диапазон 10.5.3.3-10.5.3.40 (Этот блокирует диапазон IP, которые соответствуют параметрам между IP 10.5.3.3 и 10.5.40) FIDR Format 10.5.3.3/32 (это блокирует все IP в диапазоне 10.3.3 с 10.3.00 до 10.3. 3.32) Подразумеваемый IP-адрес 10. Подразумевается 10.*.*.* (блокирует все IP-адреса, начинающиеся с 10.) Введите IP-адрес, который вы хотите заблокировать.
Нажмите кнопку Добавить .
Вы будете перенаправлены на страницу успеха.
Нажмите Вернуться .
Теперь вы увидите IP-адрес в списке заблокированных. IP не будет разрешен доступ к вашему сайту.
Как ограничить доступ к вашему веб-сайту с помощью .htaccess и cPanel IP Blocker
Иногда на вашем веб-сайте могут появляться нежелательные посетители, и вы можете захотеть запретить доступ для этих типов пользователей. Вы можете ограничить доступ к своему сайту с помощью файла .htaccess или cPanel IP Blocker.
Ограничение доступа к вашему сайту с помощью файла .htaccess
Файл .htaccess содержит несколько директив (инструкций), которые указывают серверу, как вести себя в определенных сценариях, и напрямую контролируют функции вашего сайта. В файле .htaccess можно найти некоторые общие директивы, такие как перенаправление и переписывание URL-адресов. Существует множество скриптов и систем управления контентом, таких как WordPress, Joomla и Magento, которые добавляют директивы в .htaccess, чтобы все функции могли работать без сбоев.
Шаг 1: Войдите в свою учетную запись cPanel.
Шаг 2: Перейдите в диспетчер файлов и отредактируйте файл . htaccess.
Шаг 3: Теперь вы можете создать необходимые директивы для ограничения доступа к вашему сайту. Вы можете запретить доступ для одного пользователя или группы пользователей и даже для всех пользователей (на основе IP-адреса) с помощью файла .htaccess. А также вы можете запретить доступ к определенным типам файлов или отдельному файлу (т.е. файлу конфигурации).
Запретить доступ ко всем файлам и папкам через .htaccess
Чтобы запретить прямой доступ ко всем файлам и папкам на вашем веб-сервере, используйте следующую директиву:
запретить всем
Запретить доступ к файлам определенного типа через .htaccess
Если вы хотите ограничить доступ к определенным типам файлов на своем веб-сайте, добавьте это правило в файл .htaccess. В этом примере мы блокируем доступ к файлам .php .
Приказ разрешить, запретить Запретить всем
Чтобы предотвратить доступ к файлам любого другого типа, например .
Приказ разрешить, запретить Запретить всем
Запретить доступ к определенному файлу через .htaccess
Добавьте следующее правило в файл .htaccess, чтобы запретить доступ к определенному файлу, такому как configuration.php файл
порядок разрешения, запрета Запретить от всех
Чтобы изменить файл, достаточно заменить имя файла (configuration.php) в первой строке правила.
Запретить доступ с определенных IP-адресов через .htaccess
Добавьте следующее правило в файл .htaccess, чтобы запретить доступ к вашему веб-сайту с определенного IP-адреса.
запретить с 976.271.238.330
Чтобы запретить доступ к вашему сайту с блока IP-адресов, просто опустите последний октет из IP-адреса:
запретить с 976.271.238.
Это заблокирует доступ для диапазона IP-адресов от 976. 271.238.0 до 976.271.238.255. Это означает, что полный блок IP-адресов ограничен для доступа.
Запретить доступ с определенного домена через .htaccess
Если вы хотите запретить доступ к вашему сайту по ссылкам с определенных доменов, например, baddomain.com, это можно сделать с помощью файла .htaccess. Посетитель, который зайдет на ваш сайт с URL-адреса, размещенного на заблокированном домене, получит сообщение об ошибке
SetEnvIfNoCase Реферер "baddomain.com" bad_referer Заказать Разрешить, Запретить Разрешить от ВСЕХ Deny from env=bad_referer
Замените доменное имя в первой строке директивы вашим целевым доменом (который вы хотите заблокировать). Для более тонкого подхода вы можете использовать это правило, чтобы заблокировать домен с отображением 500 Уведомление о внутренней ошибке сервера .
RewriteEngine включен RewriteCond %{HTTP_REFERER} otherbaddomain \.com [NC,OR] RewriteRule .* - [F]
Ограничение доступа к вашему сайту с помощью cPanel IP Blocker
Еще один способ предотвратить доступ к вашему сайту — использовать cPanel IP Blocker.
Шаг 1: Войдите в учетную запись cPanel.
Шаг 2: Перейдите в раздел
Шаг 3: Вставьте целевой IP-адрес, диапазон IP-адресов или домен, который вы хотите заблокировать, в поле «Добавить IP-адрес или диапазон» и нажмите кнопку «Добавить». Вы можете заблокировать столько IP-адресов или доменов, сколько пожелаете.
Формат IPv4
- Один IP-адрес 192. 168.0.1
- Диапазон 192.168.0.1-192.168.0.40
- Формат CIDR 192.168.0.1/32
- Подразумевается 192.
Формат IPv6
- Один IP-адрес 2001:db8::1
- Диапазон 2001:db8::1-2001:db8::3
- Формат CIDR 2001:db8::/32
Ограничить доступ с определенных IP-адресов с помощью блокировщика IP-адресов
Введите свой IP-адрес или диапазон IP-адресов, доступ к которым вы хотите ограничить.
cPanel > Блокировщик IP-адресов > Вставить IP-адресЗапретить доступ с определенных доменов с помощью Блокировщика IP-адресов
Вставьте свой IP-адрес или диапазон IP-адресов, доступ к которым вы хотите ограничить.