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

Создайте или отредактируйте в папке вашего сайта, предположим в папке "administrator", файл с именем .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 install apache2-utils

или

sudo apt install mini-httpd

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