因此,我正在为 DO 中的几个虚拟机上的 WebSocket 连接和一些 HTTP 调用创建 SOCKS5 代理。这个想法是来自 K8S 集群的流量将通过代理,这样我就可以将终端服务上的 IP 列入白名单。我创建代理是因为 DigitalOcean 还没有 CloudNAT 或类似功能。
我还创建了两个代理服务器以实现冗余,并将使用 pacemaker + corosync。为此,我必须使用 DigitalOcean 保留(浮动)IP 功能。因此,代理将始终连接到公共 IP,而我无法在 VPC 中执行此操作,因为代理只能接受来自私有网络的连接。
所以我的问题是 - 基本用户名验证是否足以保证安全?这是我的 Dante 配置。
logoutput: syslog
#user.privileged: root
user.unprivileged: nobody
# The listening network interface or address.
internal: 0.0.0.0 port=7171
# The proxying network interface or address.
external: eth0
# socks-rules determine what is proxied through the external interface.
socksmethod: username
# client-rules determine who can connect to the internal interface.
clientmethod: none
client pass {
from: 0.0.0.0/0 to: 0.0.0.0/0
}
socks pass {
from: 0.0.0.0/0 to: 0.0.0.0/0
user: prxuser
}
此外,我知道还有其他 HTTP 解决方案支持 websocket 连接,但目前我只能使用 SOCKS。
我将非常感激任何帮助!
答案1
我刚刚使用 DigitalOcean 防火墙仅允许来自我们的 k8s 集群的传入流量。这对于安全来说应该足够了。