pipe理数千台服务器的root密码的最佳解决scheme是什么?

我是系统pipe理员。 在生产环境中,我需要pipe理数以千计的服务器。 我和我的同事使用中央pipe理服务器,并通过其他服务器分配其公钥。 所以我们可以使用这个pipe理服务器ssh到其他服务器。

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

目前,我们使用共享的root密码。 这是不安全的。 我也看了一些单一的服务器解决scheme,如OPIE (一次性密码在一切),但由于我们有这么多的服务器,这不是一个好主意。

编辑:

我想从密码pipe理解决scheme中得到的是:

  1. 它应该是安全的,所以一次性密码是一个很好的解决scheme。
  2. 密码可以很容易地input,有时我们需要将监视器连接到服务器,或者像上面提到的那样使用iLO。
  3. 即使服务器处于脱机状态(没有任何networking连接)

因此,将root密码设置为长随机string并不是一个好主意,尽pipe它是由一些已知命令(如openssl passwd )生成的。 这很难记住,有时很难产生(没有我的笔记本电脑)

您可以使用Puppet将密码更改推送到您的所有服务器。 您可以使用usertypes来定义root ,如下所示:

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

要生成encryption的密码:

 openssl passwd -1 -salt "blah" 

我build议也许每个月都会改变一下 – 也许会使用你的SA记住的scheme。 你也可以通过一个安全的方法分发它,或者把它放在一个安全的地方。

你总是可以设置一个禁用的密码。 这将阻止任何networking访问根目录,如果启动到单用户模式,大多数分发将直接引导到一个shell。

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

当然,这可能意味着,你应该找出如何密码保护你的启动加载程序。

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

无论如何:问题是,服务器离线的频率如何。

所以你可以想到以下的设置:

使用像privacyidea这样的集中pipe理的OTP解决scheme( http://www.privacyidea.org )。 您可以将多个不同的OTP令牌分配给根用户。 每个令牌具有不同的OTP PIN,并且是不同的设备。 因此,所有的同事都可以以root用户身份login,但在审计日志中,您将看到哪个令牌已经过身份validation,因此您可以知道哪个同事在哪个时间login。

在服务器上,您需要configurationpam_radius以将身份validation请求传递给RADIUS和privacyIDEA。

游民。 现在你的服务器下线。 在这种情况下,你应该玩你的帕姆堆栈。 我可以想到这样的事情:

 auth sufficient pam_unix.so auth required pam_radius.so use_first_pass 

这样您就可以离线使用固定密码login,否则密码将被传递给pam_radius,并被validation为针对privacyIDEA的OTP。

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