03.10.2011

Apache. Доступ к веб-страничке по паролю

Запрет на доступ к сайту или определенным страницам на сервере можно установить средствами самого веб-сервера. Для этого нужно поправить файлы конфигурации веб-сервера и создать пользователя веб-сервера (Не системы!), которому будет разрешен доступ. Дальнейшее описание будет приводиться на примере Ubuntu Server 11.04, Apache 2.2.17. Правка конфигов на примере доступа к веб-статистике LightSquid. Перед любым изменением конфигурационных файлов необходимо создать их резервную копию - cp config config.old или mv config config.old. Вариант, приведенный здесь не претендует на правильность и безопасность. Это просто "чтобы работало".

Файлы конфигурации лежат в директории /etc/apache2/sites-available/. Для простейшей настройки входа по паролю требуется в описание хоста добавить следующие строки:

AuthType basic #тип авторизации. basic-пароль будет передаваться без шифрования. Есть вариант с шифрованием


AuthName "Registered users only" #строка сообщения, показываемого пользователю при вводе учетных данных


AuthUserFile /var/www/.htpasswd #путь к файлу с учетными данными


Require valid-user #не открывать доступ, пока пользователь не авторизуется

Вот что у меня получилось:

<VirtualHost *:80>
DocumentRoot /var/www/html/lightsquid
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>

<Directory "/var/www/html/lightsquid">
AddHandler cgi-script .cgi
Options ExecCGI Indexes FollowSymLinks MultiViews
AllowOverride All
Allow from all
Order allow,deny
AuthType basic
AuthName "Registered users only"
AuthUserFile /var/www/.htpasswd
Require valid-user
</Directory>

</VirtualHost>



Далее следует добавить пользователя командой htpasswd -c /var/www/.htpasswd username Здесь ключ -c заставляет создать (create) файл с данными. При добавлении следующих пользователей этот ключ не нужен.

Комментариев нет:

Отправить комментарий