Настройка аутентификации по паролю с помощью NGINX

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

Такая форма защиты паролем — это быстрый и простой способ обеспечить базовый уровень безопасности с помощью авторизации доступа к сайту.

Требования

  • Сервер под управлением Linux (Ubuntu 16.04 или CentOS 7).
  • Установленный и запущенный NGINX.

Создание файла паролей с помощью OpenSSH

На вашем сервере, скорее всего, уже установлен OpenSSH. Если нет, вы можете установить его с помощью команд:

 CentOS 7:

sudo yum install openssh openssh-server openssh-clients openssl-libs

Ubuntu 16.04:

sudo apt-get install openssh-server

Используйте следующую команду для создания файла с именем .htpasswd в каталоге /etc/nginx:

sudo sh -c "echo -n '[username]:' >> /etc/nginx/.htpasswd"

Например, для добавления пользователя jdoe команда выглядит следующим образом:

sudo sh -c "echo -n 'jdoe:' >> /etc/nginx/.htpasswd"

Затем добавьте пароль для этого пользователя с помощью команды:

sudo sh -c "openssl passwd -apr1 >> /etc/nginx/.htpasswd"

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

Настройка аутентификации по паролю в NGINX

Следующим шагом будет добавление директив аутентификации пароля в конфигурационный файл NGINX для домена, на котором вы устанавливаете Joomla.

В большинстве случаев конфигурационный файл домена будет расположен в /etc/nginx/conf.d на CentoS 7 и /etc/nginx/sites-available на Ubuntu 16.04.

Отредактируйте этот файл:

CentOS 7:

sudo nano /etc/nginx/conf.d/example.com.conf

Ubuntu 16.04:

sudo nano /etc/nginx/sites-available/example.com.conf

Вы добавите следующие строки в этот файл:

    auth_basic "Password Required";
    auth_basic_user_file /etc/nginx/.htpasswd;
Примечание

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

Чтобы защитить весь сайт, поместите директивы внутрь существующего блока location / command. Если командного блока не существует, добавьте его:

location / {
    auth_basic "Password Required";
    auth_basic_user_file /etc/nginx/.htpasswd;
}

Если вы хотите защитить паролем подкаталог, укажите этот каталог:

location /admin {
    auth_basic "Password Required";
    auth_basic_user_file /etc/nginx/.htpasswd;
}

Обязательно добавьте этот блок location внутри блока server. Например, если ваш конфигурационный файл выглядит следующим образом:

server {
    listen       80;
    server_name  example.com;
    root /usr/share/nginx/example.com/html/;
    index index.php index.html index.htm;
}

После добавления нового раздела он будет выглядеть следующим образом:

server {
    listen       80;
    server_name  example.com;
    root /usr/share/nginx/example.com/html/;
    index index.php index.html index.htm;

location / {
    auth_basic "Password Required";
    auth_basic_user_file /etc/nginx/.htpasswd;
  }

}

Сохраните и выйдите из файла, затем перезапустите NGINX:

sudo nginx -s reload

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

Бесплатная проверка SSL

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