Мои изменения 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