SSH + Kerberos,但没有 DNS

SSH + Kerberos,但没有 DNS

我想知道是否有办法设置带有 Kerberos 身份验证的 SSH,而无需使用 DNS 服务器?

答案1

您可以通过以下方式避免 DNS(假设 MIT Kerberos):

1)在 krb5.conf 中提供 KDC,而不是通过 SRV 记录来定位它们,并且不要通过 DNS TXT 记录进行领域映射:

[libdefaults]
dns_lookup_kdc   = no
dns_lookup_realm = no

[realms]
FOO.COM = {
    kdc = kdc.foo.com
}

2) 确保所有主机名->地址和反向映射都在 /etc/hosts 文件中,并且可能只是在 /etc/nsswitch.conf 中禁用 gethostbyname() 等的 DNS 使用。

我不同意上一个答案的说法,即“DNS 基础设施的破坏不会(直接)破坏 Kerberos 基础设施”。使用 SRV 记录来定位 KDC 不会,因为客户端可以对 KDC 进行身份验证(它们与 KDC 共享一个秘密,或者如果使用 PKINIT,KDC 必须出示有效证书),而且在任何情况下,伪造的 KDC 都只会生成伪造的票据,这些票据在使用时将无法使用。但 DNS 名称规范化和领域映射可能会带来危险。DNS 欺骗器可能会导致客户端获取与其打算联系的服务不同的票据(通过更改“基于主机的服务”名称的主机名部分,这是最常见的)——可能是攻击者之前已经破坏过其密钥的服务。类似的评论适用于领域映射,尽管利用误导客户端了解领域更难。

答案2

有点。

凯尔伯罗斯将不会除非主机能够正确解析彼此,否则无法正常工作。这几乎总是通过 DNS 服务器完成。然而,从理论上讲,可以通过将 hosts 文件分发到将成为 Kerberos 域一部分的每台机器来实现。这几乎肯定不是您想要做的。

为什么反对DNS服务器?

答案3

由于我的声誉,我暂时还不能添加评论,而且问题已经得到解答。

但是如果标准 DNS 对您来说是一个安全问题,也许您可​​以看看 DNSSEC:http://en.wikipedia.org/wiki/Domain_Name_System_Security_Extensions

相关内容