用 FreeIPA“密封”秘密?

用 FreeIPA“密封”秘密?

最近我们一直在研究如何在 Linux 主机上设置 TPM:当它们启动时,grub 参数和内核会进行校验和,如果校验和符合预期,TPM 模块就会解封用于解密根文件系统和机器的密钥靴子。如果有任何篡改,密钥就不会被启封,计算机也无法启动。又好又安全。

同样,我想将机密信息(例如 TLS 证书的密钥,甚至 TLS 证书本身)存储在我们的 FreeIPA 服务器上,并且仅在主机经过身份验证后才将其传送给主机。目的是将证书提供给 Nginx(或其他 Web 服务器),而不将其存储在磁盘上(ramdisk 也可以),如 nginx 网站(Google“使用 NGINX 安全分发 SSL 私钥”)中所述。

我还发现了一篇关于如何使用 ssh 公钥来加密文件的文章(Google '使用 SSH 密钥加密和解密文件'),这让我想知道是否可以在这里完成同样的事情,利用 Kerberos 的安全性和免费IPA。

简而言之,是否有一种方法可以使用现有ipa命令来执行此操作,通过使用主机的/etc/krb5.keytab文件来验证操作,以便可以以无人值守的方式完成?

谢谢!

编辑:更具体地说,我想检索一个包含 LetsEncrypt 签名的通配符 TLS 证书及其加密密钥(然后我可以将其加载到 Nginx 服务器中)的字符串,而无需人工解密。

  • 第一步:让主机自动向 LDAP 服务器进行身份验证(如果字符串已加密,则这是可选的)。它已经做到了,但我不确定如何将其用于我的应用程序。
  • 第二步:获取存储在 LDAP 中的字符串(可能是 jpegPhoto 或音频,或者如果存储在主机对象中,则存储在其他属性中)
  • 第三步:解密字符串(一种方法是以意想不到的方式使用 ssh 密钥对:https://www.bjornjohansen.com/encrypt-file-using-ssh-key。也许 Kerberos 可以以类似的方式(滥用)使用?)
  • 第四步:将绳子放到正确的位置; nginx 博客文章建议在 tempfs 文件系统上使用一个文件,尽管我更喜欢内核钥匙串。
  • 第五步:启动已按照中所述配置的 Nginxhttps://www.nginx.com/blog/secure-distribution-ssl-private-keys-nginx/

由于 FreeIPA 已经可以使用证书(请参阅 参考资料ipa help cert),因此我希望使用任意证书(相对于 FreeIPA 生成的证书)不会有太大的困难。

编辑^2:事实证明,FreeIPA 有一个处理这样的秘密的功能,称为避难所。无需将数据填充到不相关的 LDAP 属性中,无需进行一些加密,并且它可以将机密链接到服务主体、用户或组!全部内容都在帮助文本 ( ipa help vault) 中,但由于它接近字母表的末尾,所以我从未读过那么远。他们正在与 AWS 竞争“大多数功能都集中在一个 CLI 中”的吹嘘权利。 :-)

答案1

事实证明,FreeIPA 有一个处理此类机密的功能,称为 Vaults。无需将数据填充到不相关的 LDAP 属性中,无需进行一些加密,并且它可以将机密链接到服务主体、用户或组!

全部内容都在帮助文本 ( ipa help vault) 中,但由于它接近字母表的末尾,所以我从未读过那么远。 FreeIPA 正在与 AWS 竞争“将大多数功能塞进单个 CLI”的炫耀。 :-)

我仍然需要弄清楚确切的 CLI 参数,这就是为什么我还没有考虑将其添加为答案。

相关内容