Защита паролем каталога с помощью Apache

Узнайте, как защитить каталог паролем с помощью базовой HTTP-аутентификации Apache. Этот метод позволит вам создать ограниченную область вашего сайта, для доступа к которой необходимо ввести имя пользователя и пароль.

Создание файла паролей

Первым шагом будет создание файла паролей, который Apache будет использовать для проверки имени пользователя и пароля. Этот файл будет назван .htpasswd и помещен в безопасное место: /etc/apache2 на Ubuntu 16.04 и /etc/httpd на CentOS 7.

Команду htpasswd можно использовать как для создания файла паролей, так и для добавления в него записи. Для первого раза мы будем использовать флаг -c, чтобы создать файл и добавить в него имя пользователя jdoe:

  • CentOS 7:sudo htpasswd -c /etc/httpd/.htpasswd jdoe
  • Ubuntu 16.04:sudo htpasswd -c /etc/apache2/.htpasswd jdoe

Вам будет предложено ввести и подтвердить новый пароль для пользователя.

Добавление нового пользователя к существующему файлу

Чтобы добавить нового пользователя в существующий файл паролей, используйте ту же команду без флага -c. Например, чтобы добавить пользователя janedoe, выполните следующую команду:

  • CentOS 7:sudo htpasswd /etc/httpd/.htpasswd janedoe
  • Ubuntu 16.04:sudo htpasswd /etc/apache2/.htpasswd janedoe

Вам будет предложено ввести и подтвердить новый пароль для пользователя.

Включение ограничения каталога

Прежде чем ограничить директорию, необходимо настроить Apache на разрешение файлов .htaccess.

CentOS 7

Откройте для редактирования основной конфигурационный файл Apache с помощью команды:

sudo nano /etc/httpd/conf/httpd.conf

Прокрутите вниз до раздела <Directory> для «/var/www/html» и измените AllowOverride на All.

Сохраните и выйдите из файла. Затем перезапустите Apache, чтобы изменения вступили в силу:

sudo systemctl restart httpd

Ubuntu 16.04

Откройте основной конфигурационный файл Apache для редактирования с помощью команды:

sudo nano /etc/apache2/apache2.conf

Прокрутите вниз до раздела <Directory> для «/var/www» и измените AllowOverride на All.

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

Сохраните и выйдите из файла. Затем перезапустите Apache, чтобы изменения вступили в силу:

sudo systemctl restart apache2

Создание запрещенной области

Перейдите в каталог, который вы хотите защитить. Например:

cd /var/www/html/admin

Создайте файл с именем .htaccess и откройте его для редактирования:

sudo nano .htaccess

Поместите в этот файл следующее:

CentOS 7:

AuthType Basic
AuthName "Password Required"
Require valid-user
AuthUserFile /etc/httpd/.htpasswd

Ubuntu 16.04:

AuthType Basic
AuthName "Password Required"
Require valid-user
AuthUserFile /etc/apache2/.htpasswd

Проверка аутентификации

Чтобы проверить аутентификацию, зайдите на защищенный паролем URL в браузере. Вы получите всплывающее окно, которое попросит вас ввести имя пользователя и пароль для продолжения.

Примечание .

Если в вашем браузере установлен блокировщик всплывающих окон, вам нужно настроить его так, чтобы он разрешал всплывающие окна для этого домена.

Оцените статью
cdelat.ru
Добавить комментарий