我试图以一种可以回答的方式提出这个问题,但问题的一部分是了解我目前情况的影响,以及是否存在问题或技术债务会进一步影响我。
我在主副本设置中设置了一些 IPA 服务器。
server1:dns 一条记录(和 fqdn 主机名):srv1.mydomain.com
server2:dns 一条记录(和 fqdn 主机名):srv2.mydomain.com
server3:dns 一条记录(和 fqdn 主机名):srv3.mydomain.com
服务器的 cname 分别为 auth-a、auth-b、auth-c,并按照正常的 IPA 安装使用自签名证书。
对于 ssh 连接和 sssd 等,这工作了几个月。当尝试挂接只允许指定一个 ldap 服务器的应用程序时,问题就出现了。为故障转移设置了 SRV dns 记录,但为了让这些应用程序正常工作,我还输入了一个 dns 循环记录。
问题是这个循环只适用于普通的 ldap 查找,而不是 ldap ssl。但是,如果我禁用对 ssl 证书的检查,我可以使 ssl 工作。
所以......问题!
a)实际上,禁用对内部服务的证书检查有多糟糕?这个 ldap 服务器总是会被 LAN 查询。我相信我对可能的 MITM 攻击持开放态度,但我不确定我需要对此有多担心。我的意思是,现在我的另一个选择是不使用 ssl,这太可怕了。要执行 MITM 攻击,他们已经需要在我的网络上并控制 DNS,不是吗?任何可以将这种担忧量化为实际价值的建议都会有所帮助。
b)据我了解,要实际解决此问题,我需要将 RR dns 条目作为服务器自签名证书上的主题 alt 名称。这意味着重新键入服务器,对吗?在 IPA 的情况下,这意味着将每个客户重新加入 IPA 以获得新证书。我认为这是一个非首发。
c) 鉴于 (a) 和 (b) 的当前情况和结果,您会推荐什么作为允许仅指定一个 ldap 服务器的应用程序的最佳操作方案(并且不要在任何应用程序中使用 SRV dns 记录)方式)故障转移到另一台服务器是否应该出现故障,并且仍然允许 ldap over ssl 提供我的证书?
您应该使用 subjectAlternitiveNames 颁发新证书,并将该名称的 dns 记录指向负载均衡器。
除非您从 dns 中提取 A/AAAA 记录,否则轮询 dns 不一定会在服务器故障的情况下提供更多可用性,因为客户端将随机尝试连接到其中一台服务器,包括发生故障的服务器。如果应用程序没有尝试重新连接,或者不走运并且连续多次获得相同的记录,它就会失败。在前面添加负载均衡器会增加额外的复杂性,但确实意味着这种可能性会减少。如果您对负载共享的循环法感到满意,那么我会看看在证书中输入主题替代名称是否会满足 ldaps 的客户端,或者通配符是否合适。还可以通过运行您自己的内部 PKI 并将其部署为客户端计算机中的受信任 CA 来实现防止中间人。
如果你所追求的只是 HA,我会做一些简单但有用的事情:
为 IPA 设置 HA 集群(以避免麻烦 - 只需在 VM 中运行它,其中 libvirt 服务是受保护的进程)并将该 IPA 实例用于所有这些受限应用程序,而其他 IPA 倾向于用户身份验证。IPA 在 KVM 上运行良好,多年来我运行了很多零问题的实例