Сервер в кармане, или просто о сложном!

главная - Статьи - Linux, FreeBSD - Прокси-сервер Squid



Идентификация и ограничение доступа в Apache

Директива Satisfy определяет способ взаимодействия директив идентификации (используемые для защиты паролем) с директивами доступа (например, Allow/Deny). С ее помощью вы, например, можете заставить Apache выполнять те запросы, которые удовлетворяют только требованиям идентификации, либо только требованиям доступа. Или вы можете сделать, чтобы запрос удовлетворял всем требованиям. Директива Satisfy принимает два значения:

  1. Satisfy Any Пропускает запрос, если выполнено любое из требований (идентификация или проверка доступа)
  2. Satisfy All Пропускает запрос, только если оба требования выполнены (и идентификация и проверка доступа).

Для примера возьмем следующий сценарий:

<Directory /home/www/site1/private>
AuthUserFile /home/www/site1-passwd
AuthType Basic
AuthName MySite
Require valid-user
</Directory>

 При такой конфигурации вашим пользователям необходимо будет пройти процедуру идентификации.Но предположим, вы хотите, чтобы пользователи из локальной сети имели полный доступ к каталогу, без необходимости ввода пароля. Для такого сценария необходимо использовать следующую конфигурацию:

<Directory /home/www/site1/private>
AuthUserFile /home/www/site1-passwd
AuthType Basic
AuthName MySite
Require valid-user
Order allow,deny
Allow from 172.17.10
Satisfy any
</Directory>

Такая конфигурация заставит всех "внешних" пользователей пройти процедуру идентификации, а тех, кто пришел с локальной сети, пропустит. Apache предоставит им полный доступ к каталогу private без идентификации.

Все вышеописанное также работает и с подкаталогами вашего защищенного каталога. Допустим, вам нужен незакрытый подкаталог nonprotect, который находится в каталоге private. Причем к каталогу nonprotect должен иметь доступ любой пользователь без ввода какого-либо пароля. Делается это следующим образом:

<Directory /home/www/site1/private/nonprotect>
Order allow,deny
Allow from all
Satisfy any
</Directory>

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

<Directory /home/www/site1/super-secret>
AuthUserFile /home/www/site1-passwd
AuthType Basic
AuthName MySite
Require valid-user
Order allow,deny
Allow from 172.17.10
Satisfy all
</Directory>

В приведенном выше примере директива "Order allow, deny" по умолчанию блокирует доступ для всех, директива "Allow" разрешает доступ пользователям из локальной сети, а директива "Satisfy all" требует проверки как IP, так и пароля.

Источник: http://apachedev.ru/



Авторизуйтесь для добавления комментариев!


    забыли пароль?    новый пользователь?