从 Docker 容器访问本地主机上的 MongoDB

问题描述 投票:0回答:0

在我的 Linux 主机上,我设置了一个 MongoDb 实例。为了避免必须处理密码,我禁用了身份验证,监听 0.0.0.0:27017,并且我在 INPUT 链上设置了一个 iptables 规则以仅允许来自 127.0.0.1 的传入请求,以便客户端仍然可以访问 mongodb本地主机。我仍然可以通过 ssh 隧道从我的笔记本电脑远程访问它。

到目前为止一切顺利。但是,我的一些需要访问 Mongo 实例的服务在本地主机上的 Docker 容器中运行,因此它们具有不同的 IP 地址,例如“127.27.0.1/16”和“127.18.0.2/16”。

我尝试添加一个 iptables 规则以允许来自“127.0.0.0/24”的传入请求,但这仍然不起作用。

我可以通过套接字文件系统节点直接连接到 MySQL 主机,例如

mysql —host=/tmp/mysql.sock
,但我还没有找到以这种方式连接到 MongoDB 实例的方法。

当然,如果我满足于必须管理密码,那么我可以启用 MongoDB 身份验证并放宽 iptables 规则以允许访问 0.0.0.0:27017 而不是 127.0.0.1:27017。但是,如果我走那条路,我怀疑扫描器和嗅探器仍然能够检测到主机上的端口 27017 是打开的。我这么认为的原因是,根据这篇文章,即使启用了身份验证,您仍然可以在 mongosh 中获得提示 - 它不会让您查看或访问任何数据库。所以嗅探器仍会将其标记为不安全,我会收到来自公司安全团队的电子邮件,我需要解决它。

有没有人遇到过类似的情况。你是怎么解决的?

linux mongodb docker iptables
© www.soinside.com 2019 - 2024. All rights reserved.