如何使用 SELinux 策略限制对私有 ssh 密钥的访问?

aby*_*s.7 6 security linux fedora selinux ssh-keys

我正在使用 Fedora 发行版 - 带有预装的 SELinux 策略。我想限制对~/.ssh文件夹中我的私钥的不安全访问- 以防止可能在我的帐户下运行的恶意软件泄漏。根工具包是不可能的。


更新 #1: 我想解决 Fedora 新手用户的企业问题 - 没有 USB 令牌等。他们可能使用非常弱的密码。如果只有root用户和 ssh 客户端程序可以访问私钥,那就没问题了。实际的人类用户不需要查看私钥 - 我不知道为任何人查看私钥的原因,即使是一次。


我怎样才能做到这一点?建议使用 SELinux。

Fal*_*mot 3

对那些被允许使用私钥的人隐藏私钥的适当方法是硬件安全模块(智能卡或其他效果很好的东西)。你可以通过一些 SSH 密钥的努力来做到这一点(谷歌搜索找到了关于它的教程,使用了一些笨重的硬件和 GPG)。

但是,如果您担心某些不是 shell 的东西无法获得 shell,请记住,许多漏洞都会为您提供 shell,AppArmour 可以通过这种方式限制文件系统权限,尽管我认为在主目录中执行此操作有点困难多用户系统的管理更加棘手。

SELinux 也可以做到这一点;您在文件上贴上安全标签,只允许ssh读取它们

请记住,用户通常能够创建自己的 SSH 密钥,并且通常是它们的所有者,这意味着他们可以调整放置的任何标签和权限。这是一个存在的假设。

如果您要运行病毒,您可以遵循一些规则,这将使您比以下任何规则都安全得多:

  • 故意运行病毒的机器应该在一定程度上被隔离。具体来说,它们应该无法充当任何东西的跳箱。他们应该具有有限的网络访问权限(在自己的 VLAN 上),降至最低要求。他们永远不应该拥有诸如 X.509 私钥或 SSH 私钥之类的凭据,这将允许他们对任何内容进行身份验证。
  • 您需要保留快速离线重建这些机器的能力。这使得快照虚拟机非常适合此类研究。
  • 您关心的任何内容都不应该存储在用于运行病毒的计算机上。
  • 如果病毒是您自己制造的或者它们的运行在您的控制之下,请尽可能使其惰性。C&C 地址应该是黑洞(192.0.2.1,一个为测试和文档保留的 IP,是一个很好的地址;0.0.0.0 也可以是合适的;blackhole.iana.org是一个很好的 DNS 名称)。如果它们需要是真实地址,您可以在受限网络上为它们托管一个特殊的测试 C&C。
  • 如果您使用别人的 C&C 和您无法控制的病毒,请务必小心。如果您要执行此操作,最好在本地控制台上使用不以任何方式与 LAN 关联的单独互联网连接进行操作。

如果您担心意外运行病毒,selinux 可能会帮助您,但真正的解决方案是常识和应有的谨慎。

您还可以使用密码保护您的私钥,这会导致它们被加密,尽管病毒可以让您的击键绕过它。