什么是管理数千个服务器的根密码的最佳解决方案


12

我是系统管理员。在生产环境中,我需要管理数千台服务器。我和我的同事使用中央管理服务器,并通过其他服务器分发其公钥。因此,我们可以使用此管理服务器来SSH到其他服务器。

有时我们需要使用root密码,例如,当服务器关闭时,我们需要使用iLO来确定原因。

当前,我们使用共享的root密码。不安全 我还研究了一些单服务器解决方案,例如OPIE(万能密码),但是由于我们有这么多服务器,所以这不是一个好主意。

编辑:

我想要的密码管理解决方案是:

  1. 它应该是安全的,因此一次性密码是一个很好的解决方案。
  2. 可以轻松输入密码,有时我们需要将监视器附加到服务器,或者使用iLO,如上所述。
  3. 即使服务器处于脱机状态(没有任何网络连接),该解决方案也应该可以使用

因此,将root密码设置为一个长而随机的字符串不是一个好主意,尽管它是由某些已知命令(例如openssl passwd)生成的。很难记住,有时很难生成(如果没有我的笔记本电脑)


1
您是否已经在使用像puppet这样的配置管理系统?你在用什么
Zoredache

Puppet ++。
汤姆·奥康纳

我们使用cfengine :-)
yegle 2011年

Answers:


5

您可以使用Puppet将密码更改推送到所有服务器。您将root使用以下user类型进行定义:

    user { 'root':
            ensure => present,
            password => '$1$blablah$blahblahblahblah',
    }

生成加密的密码:

openssl passwd -1 -salt "blah"

我建议也许每个月左右更改一次-也许使用您的SA记住的方案。您也可以通过安全的方法分发它或将其放在安全的地方。


3

您总是可以设置一个禁用的密码。这将阻止任何网络访问root,如果您以单用户模式启动,大多数发行版将直接启动到shell。

这可能不是您认为的那样大的安全问题。无论如何,绕过根密码都是微不足道的,除非您使用密码锁定了grub,否则几乎任何人都可以简单地告诉grub启动bash而不是initrd。

当然,这可能意味着,您应该改为找出如何用密码保护引导加载程序的方法。


0

您可以在中央管理中使用一次性密码。我知道,这不适合“当eth脱机并且使用iLO访问服务器时必须工作”。

无论如何:问题是服务器脱机的频率如何。

因此,您可以考虑以下设置:

使用集中管理的OTP解决方案,例如privacyidea(http://www.privacyidea.org)。您可以为根用户分配几个不同的OTP令牌。每个令牌具有不同的OTP PIN,并且是不同的设备。因此,您的所有同事都可以以root用户身份登录,但是在审核日志中,您将看到已认证的令牌,因此您可以知道哪个同事在何时登录。

在服务器上,您需要配置pam_radius以将身份验证请求传递到RADIUS和privacyIDEA。

mm 现在您的服务器脱机。在这种情况下,您应该使用pam堆栈。我可以想到这样的东西:

auth sufficient pam_unix.so
auth required pam_radius.so use_first_pass

这样您就可以离线使用固定密码登录,否则密码将被交给pam_radius并针对privacyIDEA被验证为OTP。

请参阅此方法https://www.howtoforge.com/manage-two-factor-authentication-in-your-serverfarm-with-privacyidea

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.