С помощью директив модуля mod_auth можно создавать на Web-узле раздел с ограниченным доступом, для которого будет требоваться аутентификация на основе имени пользователя и пароля. Необходимо знание следующих директив:
директивы, описывающие доступ и права работы с данным URL
директивы, описывающие доступ и права работы с данным каталогом
директивы, описывающие доступ и права работы с данным файлом
В секции обычно используются следующие директивы:
Options
AllowOverride
order
allow
deny
Возможные значения параметров Options:
ExecCGI - разрешить выполнение CGI-сценариев в данном каталоге и его поддереве;
FollowSymLinks - разрешить переходы по символическим ссылкам (создаваемым командой ln);
Includes - разрешить SSI (Server Side Includes);
Indexes - разрешить выдачу листинга каталога, если в нем нет файла index.html (или файла индекса, заданного директивой DirectoryIndex);
MultiViews - разрешить поддержку многих языков; по умолчанию она отключена, и включать ее, как правило, не нужно; поддержка перекодирования "на лету" для русского языка устанавливается с помощью других директив
All - установить сразу все перечисленные режимы кроме MultiViews.
При отсутствии специальных требований к безопасности вполне допустимо указать "Options All" в секции ; в противном случае нужно описать параметры каждого каталога отдельно.
AllowOverride [options ...]
Большинство директив могут задаваться не только в конфигурационных файлах сервера, но и в файлах .htaccess в каталогах сервера. Директива AllowOverride определяет набор директив, допустимых в файлах .htaccess. Параметры могут быть указаны следующие:
AuthConfig - разрешить установку авторизации по имени пользователя и паролю;
FileInfo - разрешить директивы, отвечающие за типы документов;
Indexes - разрешить директивы, связанные с листингом каталогов;
Limit - разрешить команды allow и deny, которые ограничивают доступ к файлам в зависимости от адреса клиентского компьютера;
Options - разрешить описанную выше директиву Options.
- защита URL, по которым обращается пользователь
В секции Location обычно используются следующие директивы:
AuthType – задает тип контроля полномочий. Обычно используется basic.
AuthName – имя области, в которой имена и пароли пользователей действительны. Это имя области пользователь увидит в окне аутентификации при попытке доступа к серверу.
AuthUserFile – файл, содержащий имена пользователей и их пароли в зашифрованном виде
require – список пользователей и групп, которым разрешен доступ к серверу. Для разрешения доступа всем пользователям, имена которых есть в файле паролей, используется значение require valid-user.
Для защиты какого-либо каталога необходимо сделать следующее:
Создать в файле httpd.conf новый псевдоним – например /memberonly
Alias /memberonly “/www/mysite/htdocs/memberonly”
Первый параметр – псевдоним для доступа к каталогу (то, что набирает пользователь в адресной строке Web-браузера.
Второй параметр – путь на жестком диске к папке, содержащей файлы, которая будет доступна через указанный выше псевдоним.
(Внимание – вы должны заменить эти параметры на свои, соответствующие вашей системе)
Добавить следующие директивы:
AuthName “Member-Only Access”
AuthType Basic
AuthUserFile /www/secrets/.members
require valid-user
Параметр директивы Location – это псевдоним, указанный в предыдущем путь на жестком диске к папке, содержащей файлы,
Что такое AuthUserFile – написано выше.
Применить утилиту htpasswd для создания паролей из папки /usr/local/apache2/bin/:
./htpasswd –c путь_к_файлу_паролей имя_пользователя
Ключ –c надо задавать только один раз: когда вы регистрируете самого первого пользователя.
Убедитесь, что лишь пользователь от имени которого работает Apache имеет право на доступ к файлу с паролями (например юзер и группа названы httpd):
chown httpd:httpd /www/secrets/.members
chmod 750 /www/secrets/.members
Перезапустить сервер.
./apachectl restart
Если что-то не работает, проверьте разрешен ли доступ к данной папке с помощью директив Order, Deny и Allow.