如何保护 HAProxy TCP 统计套接字?远程操作所需

如何保护 HAProxy TCP 统计套接字?远程操作所需

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

使用“stats socket ...”,我创建 UNIX 套接字或 TCP 套接字。对于远程访问,它必须是 TCP 套接字。然而,这显然会打开一个漏洞,而我想要缓解这个漏洞。

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

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

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

答案1

定义一个指向 localhost 上的统计套接字的后端服务器。然后将统计套接字设置为仅绑定在 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

相关内容