Если хочется закрыть какую либо часть сайта от любопытных глаз, самым
простым способом будет настроить аутентификацию в 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 задает порядок проверки, То есть сначала
блокируем всех а потом разрешаем избранным.