Назад | Перейти на главную страницу

Как мне потребовать диапазон IP вместо 1 IP?

Мои изменения IP относятся к другому классу D, поэтому я хочу установить диапазон:

123.123.123.xxx, где последний сегмент может быть 0-255.

Прямо сейчас Apache говорит:

<RequireAny>
   Require ip 127.0.0.1
   Require ip ::1
</RequireAny>

Во-первых, я предполагаю, что вы имеете в виду Apache 2.4, несмотря на тег «apache-2.2», поскольку синтаксис, который вы опубликовали, взят из версии 2.4.

Из документации Apache:

айпи адрес - это IP-адрес, частичный IP-адрес, пара сеть / маска сети или спецификация CIDR сеть / nnn.

Я предполагаю, что вы имеете в виду, что хотите разрешить / 24, поскольку класс D - это многоадресные адреса, а классовые сети умерли в 90-х годах. Чтобы разрешить / 24, вы можете использовать любое из следующего:

Require ip 123.123.123
Require ip 123.123.123.0/255.255.255.0
Require ip 123.123.123.0/24

Лично я считаю, что последнее менее двусмысленно, чем первое, и его легче читать, чем второе.

Вы можете найти этот раздел документации полезным: http://httpd.apache.org/docs/2.4/howto/access.html#host

В Apache 2.2 и ниже вы можете работать с:

Order deny,allow
Deny from all
Allow from 24.18    # allow access from home
Allow from 162.12   # allow access from work

в вашем .htacess, прямо на базовом уровне (не в любом <directive>).

Начиная с Apache 2.4 и выше, вот вам:

<RequireAny>
    #IPv4 range at my work
    Require ip 207.100
    #IPv4 range I usually get through my mobile provider
    Require ip 29.11
    #IPv6 from home
    Require ip 2a02:4126:2aa4::/48  
</RequireAny>

(все числа вымышленные, не беспокойтесь ;-).

Я использую это уже много лет, чтобы защитить свои внутренние папки от 99% потенциальных пользователей. (Работает очень хорошо, если вы не являетесь заядлым блоггером во время путешествий. Если вы являетесь пользователем Gmail: «Последняя активность учетной записи» Ссылка в самом низу - удобный способ выяснить ваши собственные «IP-привычки»).

Отмечая, что теперь вы подтвердили использование Apache 2.2, Apache 2.2 также не поддерживает Require ip или <RequireAny>. Как отмечено в Обзор новых функций в Apache HTTP Server 2.4, "Расширенная логика авторизации теперь может быть указана с помощью Require директива и связанные директивы контейнера, такие как <RequireAll>. »Первые входят в число улучшений, добавленных в Apache 2.4.

Чтобы справиться с этим в Apache 2.2, вам, вероятно, потребуется сделать что-то вроде:

Order allow,deny
Allow from 123.123.123    

который получит весь указанный диапазон.

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

Например:

Требуется ip 192.168.100.0/22

работает, а

Требуется IP 192.168.100.0/22 ​​#localnetwork

терпит неудачу!

Перезапуск выходов httpd:

Задание для httpd.service завершилось неудачно, поскольку процесс управления завершился с кодом ошибки. См. "Systemctl status httpd.service" и "journalctl -xe" для подробностей.

Итак, кажется, что никакие комментарии не допускаются в этой строке.

Апачи Требовать Директива используется на этапе авторизации, чтобы гарантировать, что пользователю разрешен или запрещен доступ к ресурсу. mod_authz_host расширяет типы авторизации с помощью ip, host, forward-dns и local. Могут использоваться и другие типы авторизации, но может потребоваться загрузка дополнительных модулей авторизации.

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

Начиная с v2.4.8, выражения поддерживаются директивами host. Требовать ip

IP-провайдер позволяет управлять доступом к серверу на основе IP-адреса удаленного клиента. Если указан параметр Require ip ip-address, запрос разрешает доступ, если IP-адрес совпадает.

Полный IP-адрес:

Require ip 10.1.2.3
Require ip 192.168.1.104 192.168.1.205

IP-адрес хоста, которому разрешен доступ

Частичный IP-адрес:

Require ip 10.1
Require ip 10 172.20 192.168.2

Первые от 1 до 3 байтов IP-адреса для ограничения подсети.

Пара сеть / маска сети:

Require ip 10.1.0.0/255.255.0.0

Сеть a.b.c.d и сетевая маска w.x.y.z. Для более детального ограничения подсети.

Спецификация CIDR network / nnn:

Require ip 10.1.0.0/16

Аналогично предыдущему случаю, за исключением того, что сетевая маска состоит из nnn старших 1 битов.

Обратите внимание, что последние три приведенных выше примера соответствуют точно такому же набору хостов.

Адреса IPv6 и подсети IPv6 можно указать, как показано ниже:

Require ip 2001:db8::a00:20ff:fea7:ccea
Require ip 2001:db8:1:1::a
Require ip 2001:db8:2:1::/64
Require ip 2001:db8:3::/48

Примечание. Поскольку IP-адреса анализируются при запуске, выражения не оцениваются во время запроса.

Источник: https://httpd.apache.org/docs/trunk/mod/mod_authz_host.html