Thank you for reading this post, don't forget to subscribe!
Как защитить паролем каталог с аутентификацией Nginx .htpasswd
Порядок действий следующий:
- Откройте приложение терминала
- Войдите на свой сервер с помощью команды ssh (ssh user @ ec2-cloud-server-ip)
- Отредактируйте файл nginx.conf и добавьте директивы конфигурации HTTP basic auth: auth_basic “Restricted Access Only”;
- Убедитесь, что вы настроили файл .htpasswd: auth_basic_user_file /etc/nginx/.htpasswd;
- Создайте новый файл .htpasswd и добавьте первое имя пользователя и пароль: htpasswd -c /etc/nginx/.htpasswd user
- Перезагрузите сервер Nginx: nginx -s reload
Давайте подробно рассмотрим все команды и примеры для настройки аутентификации по паролю на Nginx.
Шаг 1. Установите зависимости, необходимые для настройки аутентификации по поролю на Nginx.
Вам необходимо установить команду htpasswd.
Он не является частью веб-сервера Nginx.
Но это зависимость, необходимая для ограничения доступа с помощью базовой аутентификации HTTP в соответствии с вашим дистрибутивом Linux / Unix.
Следовательно, введите команду:
1 2 3 4 5 6 7 8 |
<span class="amp-wp-2111d24" data-amp-original-style="color: #999999;">Debian/Ubuntu Linux используя apt ##</span> sudo apt install apache2-utils <span class="amp-wp-2111d24" data-amp-original-style="color: #999999;">## Fedora/RHEL 8.x используя dnf ##</span> sudo dnf install httpd-tools <span class="amp-wp-2111d24" data-amp-original-style="color: #999999;">## CentOS/RHEL 7.x используя dnf ##</span> sudo yum install httpd-tools <span class="amp-wp-2111d24" data-amp-original-style="color: #999999;">## Alpine Linux используя apk ##</span> sudo apk add apache2-utils |
Шаг 2 – Отредактируйте конфигурацию Nginx
Отредактируйте /etc/nginx/nginx.conf или файл конфигурации виртуального домена, например файл www.itsecforu.ru.conf:
1 2 3 4 5 |
location / <span class="br0">{</span> try_files $uri $uri/ /index.php?$query_string; auth_basic <span class="st0">"ADMIN Login"</span>; auth_basic_user_file /etc/nginx/.htpasswd-itsecforu.ru; <span class="br0">}</span> |
1 2 3 4 |
location /app/ <span class="br0">{</span> auth_basic <span class="st0">"Restricted and Password Protected App"</span>; auth_basic_user_file /etc/nginx/.htpasswd-itsecforu.ru; <span class="br0">}</span> |
Шаг 3 – Создание файла паролей
Используйте команду htpasswd для создания нового файла /etc/nginx/.htpasswd-itsecforu.ru следующим образом:
1 2 |
# htpasswd -c {/path/to/.htpasswd-file} {userName} # htpasswd -c /etc/nginx/.htpasswd-itsecforu.ru admin |
Хотите создать дополнительных пользователей ?
1 2 |
# htpasswd /etc/nginx/.htpasswd-itsecforu.ru user2 # htpasswd /etc/nginx/.htpasswd-itsecforu.ru user3 |
Давайте убедимся, что файл содержит имена пользователей и зашифрованные пароли следующим образом, используя команду cat:# cat /etc/nginx/.htpasswd-itsecforu.ru
Шаг 4 – Перезапуск или перезагрузка сервера Nginx
Проверьте сервер на наличие ошибок:
1 |
# nginx -t |
Если нет ошибок, перезагрузите или перезапустите веб-сервер nginx, введите:
# nginx -s reload
Шаг 5 – Протестируйте настройку
Защита паролем каталогов Nginx и ограничение IP-адреса/CIDR
Мы можем настроить безопасность нашего веб сервера, объединив базовую аутентификацию Nginx HTTP с ограничением доступа по IP-адресу или CIDR.
Отредактируйте файл конфигурации Nginx:
1 2 3 4 5 6 7 8 9 |
location / <span class="br0">{</span> try_files $uri $uri/ /index.php?$query_string; satisfy all; auth_basic <span class="st0">"ADMIN Login"</span>; auth_basic_user_file /etc/nginx/.htpasswd-itsecforu.ru; allow 202.54.1.2; allow 10.8.1.0/<span class="nu0">24</span>; deny all; <span class="br0">}</span> |