用于多服务器管理的集中审计服务器解决方案

用于多服务器管理的集中审计服务器解决方案

我们有几十台 Linux 服务器,还有几名开发人员,每个开发人员都负责服务器的一部分工作。

目前每个服务器都有一个管理员账户,如果有人想管理该服务器,他的公钥将被添加到服务器管理员账户的 ssh authorized_keys 中,这样他就可以访问和编辑该服务器。但这不是一个好的解决方案:

  • 每个服务器的ssh端口不要开放给别人,这样很危险。
  • 如果有多个用户使用同一个账户访问同一个服务器,我们将无法分辨谁登录了。
  • 很难删除或撤销某人的这些服务器的 ssh 密钥。

所以我认为应该有一个更好的解决方案:

  • 一个集中的 ssh 审计和管理服务器。
  • 每个服务器只允许从该服务器进行 ssh 端口访问。
  • 该服务器可以管理用户帐户以及每个服务器的访问权限。
  • 开发人员使用此审计服务器进行服务器操作,所有操作都应被记录,并在执行危险操作时提醒其他人。
  • 如果该服务器瘫痪了,则有紧急访问解决方案。

有人知道这样的解决方案吗?谢谢。

答案1

每个服务器的ssh端口不要开放给别人,这样很危险。

事实并非如此,特别是当您使用具有良好密码的密钥并且已禁用密码登录时(您没有这样做过)。

如果有多个用户使用同一个账户访问同一个服务器,我们将无法分辨谁登录了。

在您当前的情况下,这是正确的 - 共享帐户不是一件好事。然而,适当详细的 sshd 日志您可以看到谁在何时登录。

很难删除或撤销某人的这些服务器的 ssh 密钥。

有一些可用的工具可以实现这一自动化 - puppet、chef、ansible 等 - 一般是配置管理工具。

解决您问题的一般方法是

  • 为每个人提供自己的帐户(使用配置管理工具实现自动化)
  • 停止使用共享帐户。
  • 给每个人合适的须藤使用权。
  • 使用 rsyslog 将所有日志发送到中央日志服务器。

这允许您记录访问系统的个人用户。经过适当的培训,您还可以记录个人用户对管理帐户的使用情况。

答案2

也许可以看看 Monkeyspere。它使您能够设置一个中央密钥服务器,您可以在其中撤销用户密钥(可以将其视为 ssh 密钥的信任网)

http://web.monkeysphere.info/getting-started-admin/

答案3

不要为开发人员提供服务器上的根访问权限!使用一些中央管理工具,如 chef 或 cfengine3,并让开发人员编写模板,这些模板应用于服务器。您可以将这些模板推送到 Git/SVN/Whatever 以跟踪更改。

另外,您可以使用 VPN 访问您的服务器。您的服务器不需要向全世界开放,也不必有公共 IP。

相关内容