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

Цель этого руководства — научить вас настраивать аутентификацию по паролю Nginx в Debian 12. Аутентификация по паролю — это базовый вариант безопасности, который вы можете использовать для защиты информации вашего веб-сайта или приложения. С помощью этой опции вы можете использовать уникальное имя пользователя и пароль для каждого пользователя, к которым у них есть только доступ. Таким образом, вы уверены, что защитили свою информацию и сайты, и никто не сможет получить к ней доступ.

Теперь вы можете перейти к следующим шагам для настройки аутентификации по паролю с помощью веб-сервера Nginx в Debian 12.

Полное руководство по настройке аутентификации по паролю Nginx в Debian 12

Поскольку мы хотим создать аутентификацию по паролю с помощью Nginx в Debian 12, вы должны войти на свой сервер как пользователь без полномочий root с привилегиями sudo и установить Nginx.

Шаг 1. Создайте файл паролей Nginx в Debian 12.

Прежде всего, у вас должен быть файл, в котором хранятся ваши имена пользователей и пароли. Для этого вы можете использовать OpenSSL или htpasswd. Теперь вы можете перейти к следующим шагам и выбрать один из этих методов для создания файла паролей.

Номер 1. Используйте OpenSSL для создания файла паролей Nginx.

В этом методе вам необходимо установить OpenSSL на Debian 12. Для этого вы можете запустить:

sudo apt install openssl -y

Затем вам нужно добавить желаемого пользователя в каталог /etc/nginx/.htpasswd. Например:

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

Затем выполните следующую команду, чтобы создать зашифрованный пароль для вашего пользователя:

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

Вам необходимо установить пароль и подтвердить его:

Password:
Verifying - Password:

Примечание. Вы можете повторить эти команды для дополнительных пользователей.

Чтобы составить список пользователей, вы можете использовать следующую команду:

cat /etc/nginx/.htpasswd

Пример вывода.

olivia:$apr1$NgKDkpCh$ll13TEiXnavBbgEaZDhvx1

Номер 2. Используйте htpasswd для создания файла паролей Nginx.

htpasswd включен в пакет apache2-utils (файлы паролей Nginx используют тот же формат, что и Apache) . Если вы хотите использовать этот метод для создания файла паролей, вам необходимо установить apache2-utils на свой Debian 12:

sudo apt install apache2-utils -y

Теперь у вас есть доступ к утилите htpasswd. Затем используйте следующую команду, чтобы добавить пользователя в /etc/nginx/.htpasswd каталог:

sudo htpasswd -c /etc/nginx/.htpasswd olivia

Установите пароль для пользователя и подтвердите его:

New password:
Re-type new password:
Adding password for user olivia

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

sudo htpasswd /etc/nginx/.htpasswd another_user

Чтобы составить список пользователей, вы можете запустить:

cat /etc/nginx/.htpasswd

Шаг 2. Настройка Nginx для аутентификации по паролю в Debian 12

После того, как вы закончите создание файла паролей, вам необходимо настроить Nginx для проверки вашего файла паролей. Для этого вам необходимо открыть файл конфигурации блока сервера. Здесь мы используем блок сервера Nginx по умолчанию. Откройте файл в вашем любимом текстовом редакторе, например редакторе Vi или редакторе Nano:

sudo vi /etc/nginx/sites-enabled/default

На этом этапе вы должны добавить следующие директивы в конфигурацию сервера по умолчанию:

server {
    listen 80 default_server;

    auth_basic "Restricted Content";
    auth_basic_user_file /etc/nginx/.htpasswd;
}

Когда вы закончите, сохраните и закройте файл. Затем перезапустите веб-сервер Nginx, чтобы применить изменения:

sudo systemctl restart nginx

Примечание. Кроме того, вы можете ограничить только корень документа блоком местоположения и даже изменить этот список, чтобы он был нацелен только на определенный каталог в веб-пространстве:

server {
    listen 80 default_server;

    location/{
        try_files $uri $uri/ =404;
        auth_basic "Restricted Content";
        auth_basic_user_file /etc/nginx/.htpasswd;
    }
}

Шаг 3 – Проверьте аутентификацию пароля с помощью Nginx

Чтобы убедиться, что ваш пароль работает и ваши данные защищены, в веб-браузере введите IP-адрес вашего сервера:

http://your-server-ip

Вы должны увидеть следующий экран. Оттуда вы можете ввести свое имя пользователя и пароль для доступа к вашим данным:

Авторизация по паролю Nginx Debian 12

Вот и все, все готово.

Заключение

К этому моменту вы научились настраивать аутентификацию по паролю Nginx в Debian 12 Bookworm. Вы можете легко создать файл паролей с помощью OpenSSL или htpasswd, настроить Nginx для проверки файла и защитить свои данные с помощью аутентификации паролем.