许多服务器的SSH访问网关

Joh*_*ohn 12 ssh ssh-tunnel ssh-keys ansible

通过 Ansible 管理多台服务器,目前超过 90 台,有 3 个 devops。一切都很好,但是现在存在一个巨大的安全问题。每个 devop 都使用自己的本地 ssh 密钥来直接访问服务器。每个 devop 都使用一台笔记本电脑,每台笔记本电脑都可能受到威胁,从而使整个生产服务器网络容易受到攻击。

我正在寻找一种集中管理访问的解决方案,从而阻止对任何给定密钥的访问。与将密钥添加到 bitbucket 或 github 的方式没有什么不同。

在我的头顶上,我认为解决方案是从一台机器(网关)到所需产品服务器的隧道......在传递网关时,请求将获取一个新密钥并用于访问产品服务器。结果是我们只需拒绝对网关的访问,就可以在几秒钟内快速有效地终止对任何 devop 的访问。

在此处输入图片说明

这是好逻辑吗?有没有人已经看到了解决这个问题的解决方案?

Sve*_*ven 23

这太复杂了(检查密钥是否可以访问特定的生产服务器)。将网关服务器用作接受每个有效密钥的跳转主机(但可以轻松删除对特定密钥的访问,从而依次删除对所有服务器的访问),然后仅将允许的密钥添加到每个相应的服务器。之后,请确保您只能通过跳转主机访问每个服务器的 SSH 端口。

这是标准方法。

  • 更好的是:按照@Sven 所说的去做,但还要在跳转主机上添加 2FA。因为您仅在需要手动连接时才直接从笔记本电脑连接,对吗?任何自动化的东西都在跳转主机内的服务器上运行? (2认同)

Hen*_*eld 11

工程师不应该直接从他们的笔记本电脑上运行 ansible,除非这是一个开发/测试环境。

相反,拥有一个从 git 中提取 Runbook 的中央服务器。这允许额外的控制(四眼,代码审查)。

将此与堡垒或跳转主机结合使用以进一步限制访问。