我想知道是否有一种方法来设置SSH Kerberos身份validation,而根本不使用DNS服务器?
有点。
Kerberos 将无法正常工作,除非主机可以正确parsing对方。 这几乎总是通过DNS服务器完成的。 但是,理论上可以通过将一个主机文件分发到要成为Kerberos域的一部分的每台机器来完成。 这几乎不是你想要做的。
为什么反对DNS服务器?
您可以通过以下(假设MIT Kerberos)来避免DNS:
1)给krb5.conf中的KDC,而不是通过SRVloggingfind它们,不要通过DNS TXTlogging进行域映射:
[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基础设施”。 使用SRVlogging来定位KDC不会,因为客户端可以authenticationKDC(它们与KDC共享一个秘密,或者如果使用PKINIT,KDC必须出示有效证书),并且在任何情况下,KDC都会伪造假票这在使用时不起作用。 但DNS名称标准化和领域映射可能是危险的。 DNS欺骗程序可以使客户端获得与其打算联系的服务的票证(通过更改“主机名称服务”名称的主机名部分,这是最常见的)的一个服务的票证 – 可能是攻击者的密钥以前妥协。 类似的评论适用于领域映射,尽pipe利用误导客户的领域很难。
由于我的名誉,我不能添加评论,并且已经回答了问题。
但是,如果标准DNS对您来说是一个安全问题,也许您可以查看DNSSEC: http : //en.wikipedia.org/wiki/Domain_Name_System_Security_Extensions