Свободный доступ к любой папке Вашего сайта можно запретить, указав соответствующие директивы в файле .htaccess. Логины и пароли для доступа к папкам можно хранить в шифрованном виде в файлах .htapasswd.

 Создайте или отредактируйте в папке вашего сайта, предположим в папке "administrator", файл с именем .htaccess:

cd /var/www/mysite.ru/administrator
nano .htaccess

Добавьте в файл .htaccess следующие строки:

AuthName "Protected area, need authorization"
AuthType Basic
AuthUserFile /var/www/.htapasswd_mysite
require valid-user

Где /var/www/.htapasswd_mysite — путь к файлу с паролями для доступа к папкам сайта. Обратите внимание, файлы с паролями начинаются с точки, следовательно, они скрытые и Apache их не отдает посетителям сайта. Кроме того, файлы с паролями .htapasswd можно размещать за пределами сайта.

На сервере перейдите в директорию /var/www/ и выполните команду htpasswd.

cd /var/www
sudo htpasswd -c .htapasswd_mysite admin
 

Введите пароль два раза.

Таким образом, вы запретили доступ к папке с файлом .htaccess всем пользователям, кроме тех, что перечислены в файле /var/www/.htapasswd_mysite. Пока этот пользователь "admin". С помощью команды htpasswd без ключа -c вы можете добавить в свой файл .htapasswd_mysite новых пользователей.

Установка утилиты htpasswd

Утилита htpasswd входит в состав пакетов apache2-utils и mini-httpd и установить ее можно командой

sudo apt-get install apache2-utils
 

или

sudo apt-get install mini-httpd
 

Как правило, на web-сервере htpasswd устанавливается по умолчанию.