Назад | Перейти на главную страницу

Nginx. Белый список верхнего фильтра и отсутствие аутентификации белый список и базовая аутентификация одновременно

Не могу найти способ построить следующую схему.

Логика не такая уж сложная. Однако я смог написать конфигурацию только с двумя из трех одновременно (базовая аутентификация + белый список аутентификации и т. Д.) Из-за сложной базовой аутентификации и взаимодействий всех / любых совпадений.

Любой пример конфигурации nginx для этого случая?

Прежде всего, хороший вопрос, вы меня туда доставили, мне пришлось искать достойный способ сделать это, но я не мог его найти. (так что я постараюсь дать вам «ковбойский» ответ на вашу проблему, который может сработать).

Я думаю, что это может сработать, так это сопоставить IP-адреса и присвоить им значение в зависимости от того, к какой из трех групп, по вашему мнению, он принадлежит.

map $remote_addr $perm_group {
1.1.1.1.1    2; #ips that don't need basic_auth
1.1.1.1.2    1; #Basic_auth ips
default    0; #Banned ips
}

Затем на кронштейне сервера:

server{
    listen 80;
    server_name example.com;

    if ( $perm_group = 0 ){
      return 403; # ips blacklisted return a 403;
    }

    if ( $perm_group = 1 ){
          auth_basic "Restricted";
    }

    if ( $perm_group = 2 ){
          auth_basic off;
    }
              auth_basic_user_file /etc/nginx/yourAuthFile; #make a file with user/password
    # anything else will mean that are allowed, so we go with the normal handling.

    location / {
        #do what you need to do here
    }

}

Я впервые делаю такой код, но он должен работать, прокомментируйте любую ошибку, и мы представим его, если что-то не так.

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

Надеюсь, я помог.