如何允许来自 127.0.0.1 的未经身份验证的请求,但不允许所有人?

如何允许来自 127.0.0.1 的未经身份验证的请求,但不允许所有人?

我们使用了许多以 NGinx 为前端的应用服务器。现在我们希望限制代理对某些应用的访问,但仍允许在同一主机和内部 LAN 上运行的脚本绕过新的身份验证。

为此,我们在配置中添加了以下内容:

satisfy any;
allow 192.168.32.0/24;
allow 192.168.29.29;
allow 127.0.0.1;
deny all;
proxy_pass http://127.0.0.1...

然而,这允许全部请求进入——大概是因为代理是到 127.0.0.1 进行的,因此所有请求都符合上述“允许 127.0.0.1”规则。

我们做错了什么?正确的方法是什么?

答案1

好的,我们找到了原因,NGinx 是无辜的。最近对设置进行了(看似)不相关的更改,将 HTTP 重定向到 HTTPS。在我们的设置中——出于难以解释的原因——SSL 连接由在同一台机器上运行的 HAProxy 终止。

所以,全部HTTP 连接首先重定向到 HTTPS,然后再重定向到 SSL全部看起来(对于 NGinx)来自 127.0.0.1。抱歉打扰了,感谢所有提供帮助的人。

相关内容