freeipa ssl ldap 和循环 dns

freeipa ssl ldap 和循环 dns

我试图以一种可以回答的方式提出这个问题,但问题的一部分是了解我当前情况的影响,以及是否存在问题或技术债务会进一步困扰我。

我已经在主服务器和副本服务器设置中设置了一些 IPA 服务器。

server1:dns A 记录(和 fqdn 主机名):srv1.mydomain.com

server2:dns A 记录(和 fqdn 主机名):srv2.mydomain.com

server3:dns A 记录(和 fqdn 主机名):srv3.mydomain.com

服务器分别具有 auth-a、auth-b、auth-c 的 cname,并按照常规 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 记录)的应用程序在一个服务器发生故障时故障转移到另一个服务器,并且仍然允许通过 ssl 的 ldap 提供我的证书?

答案1

您应该颁发具有 subjectAlternitiveNames 的新证书,并将该名称的 DNS 记录指向负载均衡器。

  • A) 关闭证书检查确实会让你面临 MITM 攻击。这样做的好处是加密通道不会被被动窃听。对加密通道进行 MITM 攻击需要做更多工作,但也不会多很多。如果你的价值不高,并且不通过无线或开放互联网(而不是 VPN 链接)进行操作,那么关闭证书检查的风险并不大,但不要这样做。以正确的方式做事同样容易。
  • B) 是的,服务器将需要一个 subjectAlternitiveName 或(不要这样做)一个通配符 subjectName。然而,FreeIPA 有自己的公钥基础结构 (PKI),也就是说您有自己的自签名证书颁发机构 (CA),而不是一组自签名证书。这意味着您只需生成和替换 FreeIPA 服务器(LDAP 使用的证书)的证书。用于签名的 CA 证书(即部署在所有机器上的证书)保持不变,因此无需触碰任何其他机器。此外,您不需要服务器私钥,只需要公共证书。
  • C)见上方,A 和 B 都是合理的。

答案2

除非您从 DNS 中提取 A/AAAA 记录,否则在服务器发生故障时,循环 DNS 不一定能提供更高的可用性,因为客户端将随机尝试连接到其中一个服务器,包括发生故障的服务器。如果应用程序不尝试重新连接,或者运气不好,连续多次获得相同的记录,则会导致失败。在前面添加负载平衡器会增加额外的复杂性,但确实意味着这种可能性会降低。如果您对使用循环进行负载共享感到满意,那么我会看看在证书中输入 subjectaltname 是否会满足客户端对 ldaps 的要求,或者如果失败,通配符可能合适。还可以通过运行您自己的内部 PKI 并将其作为受信任的 CA 部署在您的客户端计算机中来防止中间人攻击。这还有一个额外的好处,就是您可以在一个中心位置查看即将过期或已过期的证书,而不必在具有自己证书的每个主机/服务上进行管理。

答案3

如果你所追求的只是 HA,我会做一些简单但有用的事情:

为 IPA 设置 HA 集群(为避免麻烦 - 只需在虚拟机中运行它,其中 libvirt 服务是受保护的进程)并将该 IPA 实例用于所有这些受限应用程序,而其他 IPA 则倾向于用户身份验证。IPA 在 KVM 上运行良好,多年来我已经运行了不少实例,没有出现任何问题

相关内容