Прячем свои маленькие веб-секреты

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

Если установлен веб-сервер Apache, задача решается элементарно – созданием в каталоге специальных текстовых файлов .htaccess и .htpasswd. Первый содержит директивы, которые показывают веб-серверу, что с данным каталогом нужно обходиться особо (директив на самом деле много, защита паролем – лишь одна из). Во втором хранятся пароли пользователей, созданные программой htpasswd.

Сразу уточню – правила, прописанные в .htaccess действуют как в текущем каталоге, так и во всех подкаталогах!

Итак, имеем каталог на сервере, где лежит интересная информация. На севере бежит Linux и Apache. Хотим, чтобы информацию видел только один пользователь, например, rat.

Создаем в каталоге на сервере файл .htaccess (в любом текстовом редакторе – vi/pico/nano):

$ sudo vi /var/www/munin/.htaccess
AuthUserFile /var/www/munin/.htpasswd
AuthType Basic
AuthName "Munin Graphs"
Require valid-user

AuthUserFile указывает веб-серверу где искать пары пользователь/пароль. В любом месте на файловой системе, лишь бы у веб-сервера был туда доступ. И не ошибитесь.
AuthType указывает тип аутентификации. Basic – самый распространенный, пишем и не заморачиваемся.
AuthName – своеобразный заголовок для защищаемого каталога. Он появится и в заголовке диалога аутентификации. Если выбранное название содержит пробелы, его необходимо заключить в двойные кавычки.
Require сообщает веб-серверу какие пользователи из указанных в файле .htpasswd или группы будут иметь доступ к каталогу. Одно из ключевых слов – valid-user, оно означает, что доступ имеет любой из указанных в .htpasswd. Но мы можем указать одного или несколько пользователей, например:

Require rat
# cats not welcome!
Require rat mouse

Вот в принципе и все, что касается файла .htaccess. Рассмотрим подробнее .htpasswd.

Создадим файл /var/www/munin/.htpasswd:

$ sudo htpasswd -c /var/www/munin/.htpasswd rat
New password:
Re-type new password:
Adding password for user rat

Параметр -c требуется только при создании нового файла; при добавлении пользователя в уже существующий файл такой параметр не нужен.

$ sudo htpasswd /var/www/munin/.htpasswd mouse

Внутри увидим пару пользователь:пароль (зашифрованный):

rat:xG51CipSbcIbF
mouse:0o3zL7UxFa2bd

Кстати, хранить свои пароли вне каталогов, доступных через веб – хорошая идея. Обычно веб-серверы не дают доступ к этим файлам, но кто знает…

Для секюрити-параноиков: в файле конфигурации Apache (обычно httpd.conf, но на Debian/Ubuntu – apache2.conf) можно даже указать другие названия для файлов конфигурации доступа (перед этим хорошенько поштудировав документацию), обычно:

AccessFileName .htaccess

Все, дело сделано, перезагружаем Apache…

$ sudo /etc/init.d/apache2 restart

…и, как обычно, ничего не работает. Не забудьте поправить директиву AllowOverride None на AllowOverride AuthConfig Indexes в конфигурации своего сервера (скорее всего, если у вас Ubuntu и сервер только один, то это в файле /etc/apache2/sites-available/default). Если хоститесь у провайдера, запаситесь пивом для админа ;)

Еще раз перезагружаем сервер и вместо открытой страницы видим вежливое приглашение ввести логин и пароль.

Сей труд не претендует на полноту информации. За остальным отправляйтесь на сайт проекта Apache. И мне сыра принесите, а? Ну пжалста..

4 Comments

[…] От чужих глаз информацию лучше всего защитить, например, как описано здесь: “Прячем свои маленькие веб-секреты“. […]

mnuJune 1st, 2010 at 19:41

А я бы пожалуй с ключиком -m создавал, дабы в MD5 :)

Плюшевый КрысJune 1st, 2010 at 22:05

Ну, это если вам действительно есть что прятать

[…] лучше всего защитить, например, как описано здесь: “Прячем свои маленькие веб-секреты“. Запись опубликована в рубрике Системное […]

Leave a comment

Your comment