如何限制页面只能通过VPN访问

时间:2019-03-22 23:59:17

标签: vpn vpc

我的目标是仅在您登录到我的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限制对路由的访问?

0 个答案:

没有答案