ВОЙТИ
    opened image

    Настройка Аутентификации Паролем с .htpasswd и Nginx - 1

     

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


    Прежде чем приступить, убедитесь, что у вас есть:

    • Виртуальный сервер (Ubuntu 22.04 предпочтительно) с правами пользователя sudo.
    • Предустановленный веб-сервер Nginx.

     

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

     

    Подготовка OpenSSL:

    Убедитесь, что OpenSSL установлен на вашем сервере. Если нет, установите его с помощью команды:

     

    sudo apt install openssl

     

    Создание файла .htpasswd:

    Создайте файл .htpasswd в директории /etc/nginx, используя команду:
     

    sudo touch /etc/nginx/.htpasswd

     

    Добавление пользователей:

    Для добавления пользователя используйте команду:

     

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

     

    Замените 'username' на желаемое имя пользователя.


    Затем, для добавления зашифрованного пароля, выполните:

     

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

     

    Введите пароль при появлении соответствующего запроса.

     

    Проверка содержимого файла:

     

    Для просмотра добавленных учетных записей используйте cat /etc/nginx/.htpasswd.

     

    cat /etc/nginx/.htpasswd

     

    Использование apache2-utils

     

    Установка apache2-utils:

     

    Выполните команды:

     

    sudo apt update && sudo apt install apache2-utils

     

    Создание файла .htpasswd:

     

    Создайте файл, выполнив команду:

     

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

     

    Замените 'username' на имя пользователя. Флаг -c используется только при создании нового файла.

     

    Добавление дополнительных пользователей:

     

    Для добавления новых пользователей в существующий файл:

     

    sudo htpasswd /etc/nginx/.htpasswd new_username

     

    Замените 'new_username' на новое имя пользователя.

     

    Просмотр файла:

     

    Используйте cat /etc/nginx/.htpasswd, чтобы увидеть список пользователей и их зашифрованные пароли.

     

    cat /etc/nginx/.htpasswd

     

     Настройка Аутентификации в Nginx

     

    Редактирование конфигурационного файла Nginx:

     

    Откройте файл настроек сервера командой:

     

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

     

    Можно выбрать, будет ли аутентификация применяться ко всему серверу или только к определенному местоположению (блок location).

     

    Добавление Директив Аутентификации:

     

    В разделе, где требуется аутентификация, добавьте следующие строки:

     

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

     

    "Restricted Content" - это сообщение, которое будет отображаться пользователю при запросе учетных данных.

     

    Применение Настроек:

     

    Сохраните изменения и закройте файл.
    Выполните команду systemctl restart nginx, чтобы применить изменения в конфигурации.

     

    sudo systemctl restart nginx


     


    Тестирование и Верификация

     

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

    Попытка доступа к защищенной части сайта через веб-браузер.
    Ввод учетных данных пользователя.
    Ожидание успешного доступа или сообщения об ошибке при неверных данных.


    Заключение


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