NFS客户机密钥表:多台机器

应该如何设置每个客户端机器的客户端密钥表文件来访问networking服务? 我的工作示例是NFSv4,它要求每个客户机在客户机(以及NFS服务器主机)上本地有一个Kerberos密钥表。

  1. 所有需要访问NFS主机的客户端机器之间共享同一个密钥(通常用于NFS目的)可能会产生什么坏处?

  2. 如果从#1的结果来看,我们确实需要在每个客户端的不同密钥表中使用一个单独的密钥,那么为每个客户端自动创build密钥表的方式是一种有效的(更重要的)安全方法几千台机器? 我不想在每个盒子上生成和导出密钥!

一般的密钥表根本没用 – Kerberos服务原理与主机名绑定在一起。 所以一个通用的keytab根本无法工作。 您不一定需要NFS特定的密钥 – 具体取决于您使用的操作系统版本。 我们可以使用HOST/full.qualified.hostname在RHEL 6+上对NFS进行身份validation。

所以是的,你确实需要在每台机器上安装一个keytab。 我知道这太可怕了,但这是事情的方式。

请记住,在Windows域中,您必须对“域联接”进程执行相同的操作 – 其中一个主要的function是在Windows客户端上创build一个密钥表。

我们已经走上了集成域的道路 – 将我们的Linux客户端绑定到Windows AD。 用这种方法,你可以在Linux上使用net命令,例如net ads join ,这是我认为是SAMBA的一部分。 你可以embedded一个用户名和密码,并通过你已有的任何现有的自动化机制来运行它。 ( net ads keytab create也….确切地说它在锡上说。

如果你不使用公元,恐怕我不知道。 我会想象有类似的东西存在生成一个密钥表。

我已经编写了代码来解决你的问题,但它不适用于每个人。 问题是你必须找出一些方法来将信任扩展到不受信任的硬件。 每个网站将有一个稍微不同的方式来做到这一点。

我使用由我们的configurationpipe理安装的ssh密钥来将信任扩展到不受信任的机器。

我写的代码是在

https://github.com/bbense/aeakos

但是如何解决keytabs自动化安装的难题,其实更多的是一个大纲。

至于为一个客户端使用一个通用的keytab,可以用于一些基于kerberos的服务,但是我从来没有见过用于kerberized的NFS。 一般而言,你至less要在每台机器上使用host / foo.com来充分利用kerberos可以提供的function。 如果你做不到这一点,部署Kerberos就没有多大意义了。

从理论上讲,如果你希望每台机器都可以访问相同的服务器/文件,通用的客户机密钥表应该可以工作。 在实践中,你必须通过分析nfs服务器如何使用Kerberosauthentication来实现授权来确保一切正常。

成功使用kerberos的一部分是记住它只是authentication,授权总是特定于应用程序。 我用NFSV4所做的一切都表明,它预计每个客户端主机都有唯一的Kerberos ID,但是我没有证据表明它需要一个。