如何保护 HAProxy TCP 统计套接字的安全?需要远程操作

Lei*_*ohn 3 haproxy

我想在部署应用程序期间远程控制我的 HAproxy。例如,在停止“app-server1”上的应用程序之前,我想指示 HA 代理禁用后端服务器“app-server1”。当应用程序再次运行时,我想发出启用命令。

通过“stats socket ...”,我创建了一个 UNIX 套接字或一个 TCP 套接字。对于远程访问,它必须是 TCP 套接字。然而,这显然会带来一个我想要缓解的漏洞。

我可以通过客户端 IP 列表、SSL 或其他方式限制对管理套接字的访问吗?

由于我在搜索时找到的有关该主题的信息量有限,我想知道是否还有另一种适合我的用例的推荐远程操作方式?

我确实使用脚本来实现此目的,但不允许脚本通过 SSH 访问运行 HA-proxy 的服务器,这不是一个选项。

Lei*_*ohn 6

定义一个指向本地主机上的统计套接字的后端服务器。然后将统计套接字设置为仅绑定在 127.0.0.1 上。最后,将所需的 ACL 添加到前端定义中。

统计套接字现在仅限于接受来自本地主机的连接,而您的前端代理则负责远程客户端。

global
    daemon
    stats socket 127.0.0.1:1999
    ...

frontend stats-frontend
    bind *:2000
    default_backend stats-backend
    acl ...
    acl ...

backend stats-backend
    mode tcp
    server stats-localhost localhost:1999
Run Code Online (Sandbox Code Playgroud)