Как ограничить доступ к странице только через VPN - PullRequest
0 голосов
/ 23 марта 2019

Моя цель - сделать маршрут /secret доступным только в том случае, если вы вошли в мой VPN.

У меня запущен sophos utm vpn.

У меня есть VPC с ipv4 cidr 172.15.0.0/16.Мой sophos vpn использует подсети 172.15.2.0/24 и 172.15.3.0/24.

Мое приложение развернуто как 3 микросервиса в кластере ECS: интерфейс, на котором работает nginx, сервер и прокси-серверслужба, которая обрабатывает запросы от браузера к бэкэнду.

Моя конфигурация nginx выглядит следующим образом:

server {
    listen 80;

    root /app/dist;

    try_files /system/maintenance.html $uri $uri/index.html $uri.html;

    server_tokens off;

    location / {
        try_files $uri /index.html =404;
        add_header Cache-Control "public";
        gzip on;
        gzip_min_length 1024;
        expires 15m;
        gzip_types
          text/plain
          text/css
          application/javascript
          application/x-javascript;

        location ~* \.js {
          expires 48h;
        }

        location = /secret {
          # allow the VPN
          allow 172.15.2.0/24;
          allow 172.15.3.0/24;
          deny all;
        }
    }

    location /ping {
        default_type text/plain;
        return 200 "ping\n";
    }
}

/secret действительно блокируется при отключении vpn ... но она также блокируетсякогда я на vpn.

В моих журналах, когда я пытаюсь достичь конечной точки, я вижу [error] 6#6: *10 access forbidden by rule, client: 10.1.12.6, server: , request: "GET /secret HTTP/1.1", host: "myhost.com"

Этот IP-адрес 10.1.12.6, однако, является только внутреннимIP-адрес приложения в ECS.

Как правильно использовать свой vpn для ограничения доступа к маршруту?

...