Содержание

Как запретить доступ к сайту через файл .htaccess — Раздел помощи

В статье мы расскажем о том, как настроить запрет доступа по IP-адресу через файл .htaccess.

  • Как работает файл .htaccess
  • Какой синтаксис имеет директива
  • Зачем нужно ограничение доступа к файлам сайта
  • Как запретить доступ к сайту
    • Как заблокировать доступ ко всему сайту
    • Как запретить доступ к директории
    • Как заблокировать доступ к сайту для определенного IP
    • Как заблокировать доступ для всех IP, кроме одного

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

Как работает файл .htaccess

На работу .htaccess влияет веб-сервер Apache. Как происходит взаимодействие с веб-сервером при наличии этого файла:

  1. Клиент запрашивает страницу у веб-сервера по протоколу HTTP или HTTPS.
  2. Apache проверяет наличие .htaccess в директории запрашиваемой страницы.
  3. Когда файл найден, веб-сервер проверяет наличие директив в файле.
  4. Если директивы прописаны, Apache применяет их к странице.

Далее мы расскажем о синтаксисе директивы для .htaccess.

Какой синтаксис имеет директива

Директива — это правило, которое задает условие доступа к странице в файле .htaccess. Оно состоит из трех частей.

Определяющая конструкция, которую указывают в начале правила. Конструкции делятся на две группы:

  • order deny,allow — доступ к сайту запрещен со всех IP-адресов, кроме перечисленных;
  • order allow,deny — доступ к сайту разрешен со всех IP-адресов, кроме перечисленных.

Действие, которое нужно указать на следующей строке после конструкции. Оно позволяет разрешить или запретить посещения:

  • deny from — “запретить с”,
  • allow from — “разрешить с”.

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

all. Например, так выглядит блокировка доступа для диапазона адресов:

order allow,deny
deny from 123.123.123.

Зачем нужно ограничение доступа к файлам сайта

Блокировка по IP может потребоваться в разных случаях. Наиболее частые причины:

  • Защита админки от третьих лиц. Этот вариант используется, если сайт создан на базе CMS (например, WordPress или Joomla).
  • Снижение нагрузки на сайт. В этом случае можно заблокировать IP-адреса, с которых поступает аномальное число обращений.
  • Технические работы. В этом случае доступ может быть запрещен как ко всему сайту, так и к отдельным страницам.
  • Ограничение доступа для определенного пользователя. Этот вариант работает только в случае, когда пользователь подключается к интернету со статического IP: блокировка доступа накладывается на определенный адрес.
  • Запрет входа на сайт из определенного региона. IP-адрес, который присваивается устройству при выходе в интернет, содержит информацию о регионе подключения. При запрете доступа к папке через htaccess используется диапазон адресов определенного региона: города или страны.

Как запретить доступ к сайту

Чтобы запретить доступ к папке сайта, нужно изменить права файла htaccess с 400 на 644. Для этого:

  1. Перейдите в панель управления.
  2. Разверните блок Хостинг и выберите Сайты:

  1. Справа от имени сайта нажмите Открыть папку:

  1. Кликните правой кнопкой мыши по файлу .htaccess и выберите Изменить права доступа:

  1. Укажите права 644 и нажмите Применить:

Как заблокировать доступ ко всему сайту

  1. Перейдите в панель управления.
  2. Войдите в корневую директорию сайта.
  3. Откройте файл htaccess и добавьте следующие строки:

order deny,allow
deny from all

Как запретить доступ к директории

  1. Перейдите в панель управления.
  2. Откройте htaccess в той поддиректории, к которой нужно запретить доступ.
  3. Добавьте строки:

order deny,allow
deny from all

Как заблокировать доступ к сайту для определенного IP

  1. Перейдите в панель управления.
  2. Откройте .htaccess в корневой папке того сайта, к которому нужно запретить доступ по айпи.
  3. Добавьте строки:

order allow,deny
allow from all
deny from 123.123.123.123

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

order allow,deny
allow from all
deny from 123. 123.123.123 321.321.321.321

Вместо 123.123.123.123 и 321.321.321.321 укажите IP-адреса, для которых нужно заблокировать доступ через htaccess.

Как заблокировать доступ для всех IP, кроме одного

  1. Перейдите в панель управления.
  2. Откройте .htaccess в корневой папке того сайта, к которому нужно ограничить доступ.
  3. Добавьте строки:

order deny,allow
deny from all
allow from 123.123.123.123

Вместо 123.123.123.123 укажите адрес, которому нужно разрешить доступ.
Если вы хотите разрешить доступ нескольким IP, добавьте их через пробел:

order deny,allow
deny from all allow from 123.123.123.123 321.321.321.321

Вместо 123.123.123.123 и 321.321.321.321 укажите IP-адреса, которым нужно нужно разрешить доступ к сайту.

После того как вы запретили доступ к сайту или странице, рекомендуем изменить права на .

htaccess обратно на 400: так вы обезопасите свой служебный файл от нежелательных изменений. Это можно сделать по инструкции Как запретить доступ к сайту.

Блокировка IP-адреса на сайте — 3 способа

Содержание:

  1. Блокировка IP-адреса с помощью .htaccess
  2. Как заблокировать диапазон IP-адресов в .htaccess?
  3. Как заблокировать множество IP с помощью CIDR-подсети?

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

Причины могут быть разные — с этого адреса (или адресов) осуществляются попытки взлома

админ-панели, происходит скликивание рекламных объявлений, IP принадлежат ботам-парсерам, создающим избыточную нагрузку на сайт и т.д.

Как заблокировать IP-адрес с помощью .htaccess?

Сделать это можно через файл .htaccess в корневом каталоге сайта.

Если такого файла у Вас нет, то его нужно создать.

Для блокировки одного адреса добавляем в начало данного файла следующие строки:

Order Allow,Deny
Allow from all
Deny from 1.1.1.1

Вместо 1.1.1.1 вставьте тот IP-адреc, доступ для которого Вы хотите запретить.

Если нужно заблокировать ещё какие-то конкретные адреса, то их можно добавить в последнюю строку через пробел, т.е. наше правило будет выглядеть так:

Order Allow,Deny
Allow from all
Deny from 1.1.1.1 22.22.22.22 132.132.132.132

Где 22.22.22.22 и 132.132.132.132 — адреса, которые мы хотим заблокировать.

Как заблокировать диапазон схожих IP-адресов с помощью .htaccess?

Бывают ситуации, когда нужно заблокировать какой-то диапазон схожих IP-адресов. Для этого нам нужно в строке Deny from указать общую начальную часть этих адресов. Строка Deny from 5.5.5. закроет доступ для всех адресов, начинающихся с 5. 5.5.c 5.5.5.0 до 5.5.5.255, строка Deny from 6.6. — для адресов начинающихся с 6.6., от 6.6.0.0. до 6.6.255.255

Как заблокировать множество IP с помощью подсети в CIDR-формате?

Второй способ блокировки множества IP — указать подсеть в CIDR-формате.

Пример:

Order Deny,Allow
Deny from 103.102.0.0/24

Вместо 103.102.0.0/24 задаем подсеть, которую хотим заблокировать. Если Вы не уверены, как правильно указать подсеть, то может воспользоваться одним из

CIDR-калькуляторов, например этим — https://ip2cidr.com. Нам потребуется указать начальный IP в поле «From», конечный в поле «То» и нажать кнопку «Calculate», после чего мы получим в поле CIDR требуемую нам запись подсети.

Варианты блокировок можно между собой комбинировать:

OrderAllow,Deny
Allow from all
Deny from 1. 1.1.1
Deny from 5.5.5.
Deny from 103.102.0.0/24

wordpress — блокировка диапазона IP в файле htaccess

спросил

Изменено 5 лет, 7 месяцев назад

Просмотрено 4к раз

Я управляю сайтом, и сайт создан на WordPress. Он получает ОГРОМНОЕ количество трафика от ботов, и мы хотим заблокировать их всех, кроме важных ботов, таких как Google Yahoo Bing Baidu. Мы используем cloudflare, и я хочу заблокировать их из двух слоев, брандмауэра Cloudflare и файла htaccess. В файле htaccess я знаю, как заблокировать один IP-адрес и последние конечные IP-адреса диапазона IP-адресов, например 123.123.123.0/16

Однако мне нужно заблокировать следующие IP-адреса 69.30.192.0 — 69.30.255.255 93. 55.115.64 — 93.55.115.71

Как вы устанавливаете правила этого в файле htaccess? Cloudflare, кажется, следует тому же правилу.

  • вордпресс
  • .htaccess

1

Почти получилось. Нотация /16 на самом деле называется нотацией CIDR.

Число указывает, сколько битов должно соответствовать слева направо. Страница Wiki объясняет это подробно.

Или… вы можете просто поверить мне на слово и использовать такой инструмент, как этот, который я нашел: http://www.ipaddressguide.com/cidr#range

Затем вы можете использовать deny from в своем .htaccess так же, как и для одного IP-адреса с заданными значениями:

 Order Allow, Deny
Запретить с 69.30.192.0/18
Запретить с 93.55.115.64/29
Разрешить от всех
 

Не уверен, насколько надежен источник, но это от clockwatchers

http://www.clockwatchers.com/htaccess_block.html

Блокировать один IP-адрес

 приказ разрешить, запретить
запретить с 127. 0.0.1
разрешить от всех
 

Это отклонит все запросы GET и POST, сделанные IP-адресом 127.0.0.1, вместо этого будет показано сообщение об ошибке

Чтобы заблокировать несколько IP-адресов, укажите их по одному в строке

 порядок разрешения, запрета
запретить с 127.0.0.1
запретить с 127.0.0.2
запретить с 127.0.0.3
разрешить от всех
 

Чтобы заблокировать весь диапазон IP-адресов

 запретить с 127.0.0
 

Будет отказано в доступе любому пользователю с адресом в диапазоне от 127.0.0.0 до 127.0.0.255.

Редактировать: только что нашел аналогичный вопрос здесь

Как заблокировать диапазон IP-адресов с помощью файла .htaccess

Похоже, наши ответы тоже похожи.

Ответ от @Nick хороший, так что на стороне настройки .htaccess вам следует пойти его путем.

Мой ответ будет о другой проблеме, обнаруженной в вашем вопросе: вы хотите заблокировать диапазон IP-адресов 69. 30.192.0 — 69.30.255.255, но быстрый поиск в базе данных ARIN (WHOIS для IP-адресов) показывает, что этот диапазон не принадлежащие одному лицу.

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

Например:

69.30.192.0 — 69.30.192.31 принадлежит LEAKY****.COM

69.30.193.0 — 69.30.193.15 принадлежит TA******, Abdelkader 09002 etc 90

Зарегистрируйтесь или войдите в систему

Зарегистрируйтесь с помощью Google

Зарегистрироваться через Facebook

Зарегистрируйтесь, используя электронную почту и пароль

Опубликовать как гость

Электронная почта

Требуется, но не отображается

Опубликовать как гость

Электронная почта

Требуется, но не отображается

Учебное пособие — Как заблокировать доступ к моему веб-сайту для определенных IP-адресов с помощью файла .

htaccess?

Последнее обновление 12 сентября 2022 г.

Цель

Цель этого руководства — помочь вам защитить доступ к вашим веб-сайтам из внешних сетей и предотвратить вторжения и DoS-атаки.

Вы можете сделать это с помощью файла «.htaccess», определенного текстового файла, который обнаруживает веб-сервер (Apache) и который позволяет вам определять специальные правила для каталога и всех его подкаталогов.

Вы можете создать несколько файлов «.htaccess» в FTP-пространстве вашего хостинга, но только один для каждого каталога или подкаталога, чтобы избежать конфликтов между различными файлами .htaccess.

Узнайте, как заблокировать доступ к вашему сайту для определенных IP-адресов с помощью файла «.htaccess».

OVHcloud предоставляет услуги, за которые вы несете ответственность в отношении их настройки и управления. Поэтому вы несете ответственность за их надлежащее функционирование.

Это руководство предназначено, чтобы помочь вам в решении общих задач. Тем не менее, мы рекомендуем обратиться к специалисту, если у вас возникнут какие-либо трудности. Мы не сможем вам помочь. Дополнительную информацию можно найти в разделе «Дальше» этого руководства.

Требования

  • План веб-хостинга OVHcloud

Инструкции

Файл «.htaccess» можно поместить в несколько разных папок, при соблюдении правила только в одну Файл «.htaccess» для каждой папки или подпапки.

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

Чтобы отредактировать (или создать) эти каталоги, войдите в FTP-пространство вашего хостинг-плана. Если вам нужна помощь в этом, обратитесь к нашему руководству по входу в хранилище вашего плана веб-хостинга.

Заблокировать IP-адрес, диапазон IP-адресов, домен или все IP-адреса страны

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

Общий хостинг в настоящее время работает с Apache 2.4 . Начиная с версии Apache 2.3 , переменные были реализованы, а синтаксис записи ограничений/разрешений доступа изменился.

Поскольку старый синтаксис очень популярен, он по-прежнему активен в наших инфраструктурах. Однако он считается устаревшим на Apache и вскоре может быть недоступен. В этом руководстве вы найдете примеры, подробно описывающие два синтаксиса.

Дополнительные сведения о новом синтаксисе см. на следующих официальных страницах:

  • Документация по управлению доступом Apache 2.4
  • Документация модуля Apache 2.4 mod_authz_core

Заблокировать IP-адрес

Чтобы заблокировать определенный IP-адрес, вставьте один из следующих двух кодов в файл «. htaccess»:

  • Исторический синтаксис
  • Синтаксис из Apache 2.3
 Запретить с IP-адреса
 
 <ТребуетсяВсе>
Требовать все предоставленные
Требовать не ip IP_адрес

 
  • Пример : Если вы хотите заблокировать IP-адрес 192.168.1.2, вам нужно будет ввести один из следующих двух кодов:
  • Исторический синтаксис
  • Синтаксис из Apache 2.3
 Запретить с 192.168.1.2
 
 <ТребуетсяВсе>
Требовать все предоставленные
Требовать не ip 192.168.1.2

 

Блокировка диапазона IP-адресов

Чтобы заблокировать диапазон IP-адресов, вставьте один из следующих двух кодов в файл «.htaccess»:

  • Исторический синтаксис
  • Синтаксис из Apache 2.3
 Запретить из диапазона IP-адресов
 
 <ТребуетсяВсе>
Требовать все предоставленные
Требовать не ip IP_range

 
  • Пример : Если вы хотите заблокировать все IP-адреса в 192. 168.x.x, вам нужно будет написать один из следующих двух кодов:
  • Исторический синтаксис
  • Синтаксис из Apache 2.3
 Запретить от 192.168
 
 <ТребуетсяВсе>
Требовать все предоставленные
Требовать не ip 192.168

 

Заблокировать домен

Некоторые домены могут получить доступ к вашему хостингу через перенаправления или запросы.

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

  • Исторический синтаксис
  • Синтаксис из Apache 2.3
 Запретить доступ к домену
 
 <ТребуетсяВсе>
Не требовать домена хоста

 
  • Пример : если вы хотите заблокировать domain.tld, вам нужно будет ввести один из следующих двух кодов:
  • Исторический синтаксис
  • Синтаксис из Apache 2.3
 Запретить от domain.tld
 
 <ТребуетсяВсе>
Требовать не размещать domain. tld

 

Блокировать IP-адреса из страны

Все IP-адреса (особенно общедоступные IP-адреса) имеют геолокацию по всей стране. Таким образом, вы можете получить представление о том, откуда исходит трафик IP, и физически определить местонахождение IP.

«.htaccess» позволяет, благодаря этому элементу, блокировать все геолокационные IP-адреса из страны. Другими словами, любой, кто попытается посетить ваш сайт из этой страны, будет заблокирован (если только он не использует VPN-соединение с геолокационным IP-адресом в другой стране).

Блокировка через «.htaccess» осуществляется через двухбуквенные коды стран (стандарт ISO 3166-1 alpha2) стран.

Несколько веб-сайтов перечисляют страны и их соответствующие коды стран, включая https://www.iban.com/country-codes (независимо от OVHcloud). 9(.*)$ — [F,L]

  • Пример : Если вы хотите заблокировать геолоцированные IP-адреса из Фиджи (FJ) и Гренландии (GR), вам нужно будет написать один из следующих двух кодов:
  • Исторический синтаксис
  • Синтаксис из Apache 2. (.*)$ — [F,L]

    Чтобы авторизовать выбранные IP-адреса, диапазон IP-адресов или все IP-адреса страны

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

    Авторизация одного или нескольких IP-адресов

    Чтобы разрешить доступ к вашей службе только одному IP-адресу, вставьте один из следующих двух кодов в файл «.htaccess»:

    • Исторический синтаксис
    • Синтаксис из Apache 2.3
     запретить заказ, разрешить
    отрицать от всех
    Разрешить с IP_адреса
     
     Требовать IP-адрес IP-адрес
     
    • Пример : Если вы хотите авторизовать только IP-адреса 192.168.1.2 и 192.168.1.3 для доступа к вашему хостингу, вам нужно будет написать один из следующих двух кодов:
    • Исторический синтаксис
    • Синтаксис из Apache 2. 3
     запретить заказ, разрешить
    отрицать от всех
    Разрешить с 192.168.1.2
    Разрешить с 192.168.1.3
     
     Требовать IP 192.168.1.2 192.168.1.3
     

    Авторизация диапазона IP-адресов

    Чтобы авторизовать диапазон IP-адресов для доступа к вашей службе, вставьте один из следующих двух кодов в файл «.htaccess»:

    • Исторический синтаксис
    • Синтаксис из Apache 2.3
     запретить заказ, разрешить
    отрицать от всех
    Разрешить из диапазона IP-адресов
     

    Для размещения в верхней части вашего «.htaccess»

     Требуется ip IP_range
     
    • Пример : Если вы хотите авторизовать только диапазон IP-адресов 192.168.1.x для доступа к вашему хостингу, вам нужно будет написать один из следующих двух кодов:
    • Исторический синтаксис
    • Синтаксис из Apache 2.3
     запретить заказ, разрешить
    отрицать от всех
    Разрешить с 192.168. 1
     

    Для размещения в верхней части вашего «.htaccess»

     Требуется IP 192.168.1
     

    Авторизовать все IP-адреса страны

    Чтобы авторизовать все IP-адреса в стране для доступа к вашей службе, вставьте один из следующих двух кодов в файл «.htaccess»: 9(.*)$ — [F,L]

    • Пример : Если вы хотите разрешить доступ к вашему хостингу только Фиджи (FJ) и Гренландии (GR), вам нужно будет написать один из следующих двух кодов:
    • Исторический синтаксис
    • Синтаксис из Apache 2.3
     запретить заказ, разрешить
    отрицать от всех
    SetEnvIf GEOIP_COUNTRY_CODE FJ AllowCountry
    SetEnvIf GEOIP_COUNTRY_CODE GR AllowCountry
    Разрешить из env=AllowCountry
     

    Для размещения в верхней части вашего «.htaccess» 9(.*)$ — [F,L]

    Дальнейшие действия с файлом «.htaccess»

    Помимо общей защиты доступа к хостингу, файл «.htaccess» позволяет выполнять и другие действия. Ниже приведены дополнительные руководства по OVHcloud на эту тему:

    • Защитите интерфейс администрирования вашего веб-сайта с помощью «. htaccess».
    • Перепишите URL-адреса с помощью mod_rewrite
    • Выполнить другие операции с файлом «.htaccess»

    Перейти дальше

    Для получения специализированных услуг (SEO, разработка и т. д.) обращайтесь к партнерам OVHcloud.

    Если вам нужна помощь в использовании и настройке ваших решений OVHcloud, обратитесь к нашим предложениям поддержки.

    Присоединяйтесь к нашему сообществу пользователей на https://community.ovh.com/en/.


    Было ли это руководство полезным для вас?

    Пожалуйста, не стесняйтесь вносить любые предложения по улучшению этой документации.

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

    Ваши запросы в службу поддержки не будут обрабатываться через эту форму. Для этого воспользуйтесь «Создать тикет» форма.