如何使控制面板只能从子域和端口访问?

如何使控制面板只能从子域和端口访问?

目前,在我的配置中,我已设置一个域example.com来连接到网站。然后连接control.example.com到具有 2054 端口的控制面板。因此,要访问控制面板,它将是;但是,出于某种原因,我也可以通过不使用子域https://control.example.com:2054来访问控制面板。https://example.com:2054

有没有办法防止这种情况发生,并且只https://control.example.com:2054/同时防止https://example.com:2054/访问?

答案1

有没有办法防止这种情况发生,并且只https://control.example.com:2054/同时防止https://example.com:2054/访问?

是的。最简单的方法可能是使用 Nginx 作为反向代理。可以找到使用 Nginx 的基本概述这里

简而言之,您需要设置两个类似于以下的服务器块:

# Block access to example.com:2054, assuming Nginx is servicing that port.
#
server {
    listen       2054;
    server_name  example.com;

    # 404 - Not Found is returned, but 403 - Forbidden is another option
    location / {
        return 404;
    }
}

# another (unblocked) virtual host on the same port e.g. control.example.com:2054
#
server {
    listen       2054;
    server_name  control.example.com;

    # Proxy our web data
    location / {
    proxy_pass      http://10.0.0.10:3005;
    }
}

此示例假设使用了两个不同的端口,因为此设置很容易处理。您要公开访问服务的端口应该转发,而内部(实际)服务端口则不应该转发。IPproxy_pass应该(显然)是运行您要访问的服务的 PC 的 IP。

如果上述解决方案不适合您,请注意,您可以采取一些措施iptables或类似的东西。

相关内容