Моя цель - сделать маршрут /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 для ограничения доступа к маршруту?