我是系统pipe理员。 在生产环境中,我需要pipe理数以千计的服务器。 我和我的同事使用中央pipe理服务器,并通过其他服务器分配其公钥。 所以我们可以使用这个pipe理服务器ssh到其他服务器。
有时我们需要使用root密码,例如服务器closures时,我们需要使用iLO来确定原因。
目前,我们使用共享的root密码。 这是不安全的。 我也看了一些单一的服务器解决scheme,如OPIE
(一次性密码在一切),但由于我们有这么多的服务器,这不是一个好主意。
编辑:
我想从密码pipe理解决scheme中得到的是:
因此,将root密码设置为长随机string并不是一个好主意,尽pipe它是由一些已知命令(如openssl passwd
)生成的。 这很难记住,有时很难产生(没有我的笔记本电脑)
您可以使用Puppet将密码更改推送到您的所有服务器。 您可以使用user
types来定义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 。