我的目标是仅在您登录到我的VPN时使路由/secret
可以访问。
我正在运行sophos utm vpn。
我有一个ipv4 cidr 172.15.0.0/16的VPC。我的sophos vpn使用子网172.15.2.0/24和172.15.3.0/24。
我的应用程序被部署为ECS集群中的3个微服务:运行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"
但是,该10.1.12.6 IP地址只是ECS中应用程序的内部IP地址。
如何正确使用vpn限制对路由的访问?