4 мар. 2015 г.

Настройка аутентификации в apache

E-mail Печать PDF
Если хочется закрыть какую либо часть сайта от любопытных глаз, самым простым способом будет настроить аутентификацию в Apache 2.2: basic или digest либо по IP адресам. Разница между basic и digest аутентификацией в том что basic отправляет пароли открытым текстом, digest же отправляет хэши паролей. Digest метод предпочтительней, так как безопасней. Пароли будем хранить в файле в зашифрованном виде.
Настройка аутентификации basic
Вписываем в описание виртуального хоста, или директории сайта, либо создаем файл .htaccess в нужной директории сайта:
AuthType basic
AuthName "private area"
AuthUserFile /usr/local/www/etc/.htpasswd
Require valid-user
Создаем директорию в которой разместим файл для аутентификации.
mkdir /usr/local/www/etc
Создадим файл .htpasswd который будет хранить имена пользователей и пароли:
#cd /usr/local/www/etc
#htpasswd -c .htpasswd user
И введем пароль для пользователя user.
Сделаем этот файл принадлежащим веб серверу и запретим чтение для остальных пользователей:
#chown www:www .htpasswd
#chmod 640 .htpasswd
Поменять пароль или добавить нового пользователя можно с помощью команды:
#htpasswd .htpasswd user
Для удаления пользователя можно использовать
#htpasswd -D .htpasswd user
Настройка аутентификации digest
Вписываем в описание виртуального хоста, или директории сайта, либо создаем файл .htaccess в нужной директории сайта:
AuthType Digest
AuthName "private"
AuthDigestDomain /private/ http://example.com/private/
AuthDigestProvider file
AuthUserFile /usr/local/www/etc/.htdigest
Require valid-user
Создаем директорию в которой разместим файл для аутентификации.
#mkdir /usr/local/www/etc
Создадим файл .htdigest который будет хранить имена пользователей и пароли:
#cd /usr/local/www/etc
#htdigest -c .htdigest private user
И введем пароль для пользователя user. Обратите внимание на private в команде, это значение должно совпадать со значением в AuthName «private». Сделаем этот файл принадлежащим веб серверу и запретим чтение для остальных пользователей:
#chown www:www .htdigest
#chmod 640 .htdigest
Поменять пароль или добавить нового пользователя можно с помощью команды:
#htdigest .htdigest private user
Для удаления пользователя можно использовать
#htdigest -D .htdigest private user
Еще один способ ограничения доступа - это указать с каким IP-адресов можно попадать в директорию, например вот так:
Order deny,allow
Deny from all
Allow from 192.168.1.1
Мы запрещаем доступ всем разрешив только с нашего IP-адреса (можно перечислить IP-адреса через пробел, или указывать сети, например так
192.168.1.0/24). Директива Order задает порядок проверки, То есть сначала
блокируем всех а потом разрешаем избранным.