🌐 Как защитить паролем каталог с аутентификацией .htpasswd на Nginx

Как ограничить доступ к каталогу  /app/ на Nginx?

 Как настроить парольную защиту каталога с аутентификацией Nginx .htpasswd в Linux или Unix-подобных системах?

Нам нужно защитить различные каталоги или конечные точки на Nginx.

Например, я часто защищаю паролем и ограничиваю доступ с помощью IP-адреса, пока мой проект не будет готов к запуску.

В этом руководстве объясняется, как защитить паролем каталоги или URL-адреса, такие как /app/, на веб-сервере Nginx, работающем в Linux или Unix-подобных системах.

Как защитить паролем каталог с аутентификацией Nginx .htpasswd

Порядок действий следующий:

  1. Откройте приложение терминала
  2. Войдите на свой сервер с помощью команды ssh (ssh user @ ec2-cloud-server-ip)
  3. Отредактируйте файл nginx.conf и добавьте директивы конфигурации HTTP basic auth: auth_basic “Restricted Access Only”;
  4.  Убедитесь, что вы настроили файл .htpasswd: auth_basic_user_file /etc/nginx/.htpasswd;
  5. Создайте новый файл .htpasswd и добавьте первое имя пользователя и пароль: htpasswd -c /etc/nginx/.htpasswd user
  6. Перезагрузите сервер Nginx: nginx -s reload

Давайте подробно рассмотрим все команды и примеры для настройки аутентификации по паролю на Nginx.

 

Шаг 1. Установите зависимости, необходимые для настройки аутентификации по поролю на Nginx.

Вам необходимо установить команду htpasswd.

Он не является частью веб-сервера Nginx.

Но это зависимость, необходимая для ограничения доступа с помощью базовой аутентификации HTTP в соответствии с вашим дистрибутивом Linux / Unix.

Следовательно, введите команду:

Debian/Ubuntu Linux используя apt  ##

sudo apt install apache2-utils

## Fedora/RHEL 8.x используя dnf ##

sudo dnf install httpd-tools

## CentOS/RHEL 7.x используя dnf ##

sudo yum install httpd-tools

## Alpine Linux используя apk ##

sudo apk add apache2-utils

 

Шаг 2 – Отредактируйте конфигурацию Nginx

Отредактируйте /etc/nginx/nginx.conf или файл конфигурации виртуального домена, например файл www.itsecforu.ru.conf:

location / {

    try_files $uri $uri/ /index.php?$query_string;

    auth_basic          "ADMIN Login";

    auth_basic_user_file /etc/nginx/.htpasswd-itsecforu.ru;

}
Теперь защитите каталог /app/:
location /app/ {

    auth_basic          "Restricted and Password Protected App";

    auth_basic_user_file /etc/nginx/.htpasswd-itsecforu.ru;

}

 

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

# htpasswd -c {/path/to/.htpasswd-file} {userName}

# htpasswd -c /etc/nginx/.htpasswd-itsecforu.ru admin

Хотите создать дополнительных пользователей ?

# htpasswd /etc/nginx/.htpasswd-itsecforu.ru user2

# htpasswd /etc/nginx/.htpasswd-itsecforu.ru user3

Давайте убедимся, что файл содержит имена пользователей и зашифрованные пароли следующим образом, используя команду cat:# cat /etc/nginx/.htpasswd-itsecforu.ru

Проверьте сервер на наличие ошибок:

# nginx -t

Если нет ошибок, перезагрузите или перезапустите веб-сервер nginx, введите:

# nginx -s reload

 

Шаг 5 – Протестируйте настройку

В вашем браузере введите URL и убедитесь, что появляется окно ввода учетных данных.

Защита паролем каталогов Nginx и ограничение IP-адреса/CIDR

Мы можем настроить безопасность нашего веб сервера, объединив базовую аутентификацию Nginx HTTP с ограничением доступа по IP-адресу или CIDR.

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

location / {

    try_files $uri $uri/ /index.php?$query_string;

    satisfy all;

    auth_basic          "ADMIN Login";

    auth_basic_user_file /etc/nginx/.htpasswd-itsecforu.ru;

    allow 202.54.1.2;

    allow 10.8.1.0/24;

    deny all;

}
Друзья помогите этому контенту стать доступнее в социальных сетях.

Не проходи мимо жмакни по кнопке возможно кому то еще он будет полезен!