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

Разрешить несколько IP-адресов с помощью директивы Require в Apache 2.4

Я перехожу с Apache 2.2 на 2.4 и предпочел бы использовать "Require", чем использование, которое сейчас не рекомендуется. Allow, Deny.

Мой вопрос: как я могу разрешить доступ из набора IP-адресов или диапазонов, указав один адрес / диапазон на строку в файле конфигурации?

В Apache 2.2 я использовал:

Order deny,allow
Deny from all
Allow from 2001:1000:2000::1/64
Allow from 1.2.3.4
Allow from 1.2.3.10

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

В модернизация в документации есть четкая информация о том, как это сделать. Это также то, что следует прочитать, если потребуются какие-либо другие изменения конфигурации: https://httpd.apache.org/docs/2.4/upgrading.html

Также вам не нужно помещать разные IP-адреса или сети в отдельные строки. Совершенно приемлемо сделать следующее:

# Apache v2.2
Allow from 1.2.3.4 1.2.3.10
# Apache v2.4
Require ip 1.2.3.4 1.2.3.10

Наконец, по умолчанию несколько директив require обрабатываются так, как будто они находятся в <RequireAny> block, поэтому, если вы не формируете более сложную вложенную группировку, вам не нужно ее добавлять. Хотя, конечно, вы можете пожелать уточнить. Ссылка: https://httpd.apache.org/docs/2.4/howto/auth.html#beyond

Дополнительная информация: еще одна мысль заключается в том, что при обновлении вы обязательно должны пройти всю свою конфигурацию (включая любые htaccess файлы, которые у вас могут быть) и преобразовать старые директивы Apache v2.2 в директивы Apache v2.4, а затем закомментировать загрузку mod_access_compat модуль. Смешивание директив v2.2 и v.24 может вызвать некоторые очень необычные проблемы, которые трудно устранить.

Я знаю, что это старый пост, но я думаю, что это может помочь с функциональным примером, который я всегда использую!

В apache 2.2 будет примерно так:

    <Location />
       Order deny, allow
       allow from all
    </Location>
    <Location /adm>
        Order deny, allow
        deny from all
        allow from myniceip
    </Location>
    <Location /disabled>
        Order deny, allow
        deny from all
    </Location>

В apache 2.4 будет примерно так:

   <Location />
       require all granted
    </Location>
   #Note that you dont need to use require all denied
   #to require only a group of ips.. 
    <Location /adm>
        require myniceip
    </Location>
    <Location /disabled>
        Require all denied
    </Location>