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

lin*_*ida 4 linux ssh ldap

我们有几十台 Linux 服务器,还有几个开发人员,每个开发人员都涵盖了服务器的一部分。

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

  • 每个服务器的 ssh 端口不应该对公众开放,这是危险的。
  • 如果多个人使用同一帐户访问一台服务器,我们无法确定谁登录。
  • 很难删除或撤销某人在这些服务器上的 ssh 密钥。

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

  • 一台集中式 ssh 审计和管理服务器。
  • 每个服务器只允许从该服务器访问 ssh 端口。
  • 该服务器可以管理用户帐户,以及每个服务器的访问权限。
  • 开发者使用这个审计服务器来做服务器操作,所有的动作都应该被记录下来,并在他做危险的事情时提醒其他人。
  • 如果这台服务器宕机,有紧急访问解决方案。

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

use*_*517 7

每个服务器的 ssh 端口不应该对公众开放,这是危险的。

事实并非如此,尤其是当您使用具有良好密码短语的密钥并且禁用了密码登录时(您没有)。

如果多个人使用同一帐户访问一台服务器,我们无法确定谁登录。

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

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

有一些工具可以让这一切自动化——puppet、chef、ansible 等等——一般的配置管理工具。

您问题的一般解决方案是

  • 为每个人提供自己的帐户(使用配置管理工具使其自动化)
  • 停止使用共享帐户。
  • 为每个人提供合适的sudo访问权限。
  • 使用 rsyslog 将所有日志传送到中央日志服务器。

这允许您记录访问系统的各个用户。通过适当的教育,您还可以记录个人用户对管理帐户的使用。