Linux

如何使用 SELinux 策略限制對私有 ssh 密鑰的訪問?

  • November 22, 2013

我正在使用 Fedora 發行版 - 帶有預安裝的 SELinux 策略。我想限制對文件夾中我的私鑰的不安全訪問~/.ssh- 以防止可能在我的帳戶下執行的惡意軟體洩漏。Root-kits 是沒有問題的。


更新 #1: 我想解決 Fedora 新手使用者的企業問題 - 沒有 USB 令牌等。他們可能使用非常弱的密碼。沒關係,只要root使用者和 ssh 客戶端程序可以訪問私鑰。實際的人類使用者不需要查看私鑰 - 我不知道任何人查看私鑰的原因,即使是一次。


我怎樣才能做到這一點?建議使用 SELinux。

向允許使用它們的人隱藏私鑰的適當方法是硬體安全模組(智能卡或其他東西很好用)。您可以通過一些 SSH 密鑰的努力來做到這一點(Google搜尋出現了關於它的本教程,其中包含一些笨重的硬體和 GPG)。

但是,如果您擔心獲得一個不是 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 沒有任何關聯的單獨 Internet 連接進行操作。

如果您擔心意外執行病毒,selinux 可能會幫助您,但真正的解決方案是常識和應有的注意。

您還可以使用密碼保護您的私鑰,這會導致它們被加密,儘管病毒可以讓您的擊鍵繞過它。

引用自:https://serverfault.com/questions/556688