Гибридная авторизация в Nginx (IP-арес+Пароль)

Итого, вводные данные. Что нам надо в продолжении экспериментов с WordPress. Прикроем доступ из дикого интернета к нашему стэйджу. Откроем доступ с известных нам ip-адресов, а все прочие запросы поставим на basic-авторизацию.

Устанавливаем утилиту для управления паролями basic-auth для Nginx и Apache она одна.

# aptitude install apache2-utils

Генерируем пароль.

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

Если требуется добавить пользователя в существующий файл, то просто убираем флаг -c.

# htpasswd /etc/nginx/.htpasswd admin2

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

Например, чистая Basic-авторизация будет выглядеть вот так.

    auth_basic           "Administrator’s Area";
    auth_basic_user_file /etc/nginx/.htpasswd;

А с использованием белых списков немного сложнее.

    satisfy any;
    allow 37.194.5.244/32;
    allow 10.212.1.0/24;
    allow 127.0.0.1;
    deny  all;
    auth_basic           "Administrator’s Area";
    auth_basic_user_file /etc/nginx/.htpasswd;

Еще можно сделать satisfy all и тогда потребуется совпадение двух условий и адреса и еще пароль будет запрашиваться, но это уже какой-то хардкор.

Добавить комментарий

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