openldap cacerts 目录符号链接到 /etc/pki/tls/certs - 是/否?为什么?

openldap cacerts 目录符号链接到 /etc/pki/tls/certs - 是/否?为什么?

关于 openldap 的每一篇文章/操作方法/博客都讨论将 ldaps 的 ldap 证书放在 /etc/openldap/cacerts 目录中。

我想知道为什么不直接将证书放入 /etc/pki/tls/certs 并在 /etc/openldap/cacerts -> /etc/pki/tls/certs 之间建立符号链接?这样,所有证书都会集中在系统上的一个位置,而不是分散在各个目录中。

答案1

这并非特定于 openldap,通常是出于安全原因:

  • 有问题的软件包可能会chroot进入其自己的目录/etc,然后无法跟踪更改的根目录之外的任何符号链接

  • 软件可能被设计成首先明确禁止其跟踪任何类型的符号链接

这样做是为了确保任何类型的漏洞都会被限制并隔离在一个软件中,并且对手将更难以访问文件系统上的任意文件。

答案2

只要相关应用程序及其使用的加密库能够读取和理解文件,将常规证书、CA 证书和私钥放在哪里其实并不重要。根据您的应用程序(在您的情况下为 OpenLDAP/slapd)是否链接到 OpenSSL 或 GnuTLS,可能会存在各种限制。应用程序本身也可能存在人为限制,或者由 AppArmor 或 SELinux 等安全框架施加限制。

例如,在 Ubuntu 12.04 LTS(服务器)上,在 中查找其 CA 证书的 libvirt 守护程序/etc/pki/CA/cacerts.pem似乎无法容忍该文件大于几千字节。因此,不可能只向其提供在 中找到的受信任 CA 证书的系统范围列表/etc/ssl/certs/ca-certificates.crt(在 CentOS 上,等效项是/etc/pki/tls/certs/ca-bundle.crt,正如您提到的)。我认为这是 GnuTLS 的一个限制(其中之一)。

正如我所说:这取决于所涉及的应用程序、使用的加密库和可能的安全框架。您只能尝试看看什么有效,什么无效。

相关内容