Systemd
為什麼人們仍然使用基於 SSH chroot 的 SFTP 監獄,而不是 Systemd 的命名空間功能?
這個想法可能是愚蠢的或不可行的,我不知道,但我找不到任何關於這個的參考……
您可能知道(而且 SE 肯定知道!),只要文件訪問足夠,用於加強 SSH 安全性的常用步驟之一就是將使用者鎖定在 chroot 中。OpenSSH 多年來一直提供這種基於 chroot 的監獄。
然而,這種方法缺乏靈活性(全有或全無,僅 SFTP 等)並且歸結為濫用系統呼叫(這具有安全隱患,因此“監獄必須由 root 擁有”和其他很少理解的建議) .
現在 OpenSSH 以
sshd.socket
and的形式提供sshd@.service
,我很想使用 Linux 命名空間(那時我免費獲得)來限制我的使用者。我很驚訝我在那個替代方案上一無所獲。所以我的問題是,是否有任何理由不使用命名空間而不是 chroot 來進行這種使用?
您應該嘗試並報告它是如何工作的。在任何事情上,都有人第一個!
但我擔心的是它不會起作用。在所有密鑰交換、身份驗證和一切都完成之後,
chroot
從 OpenSSH 被呼叫,但是 Systemd 甚至會在啟動 sshd 程序之前強制命名空間(如果我正確理解它的行為)並且它可能無法處理使用者身份驗證。同樣在服務文件中,您無法區分連接的使用者,因此您將命名所有這些使用者?作為普通管理員使用者,您將如何連接以維護該系統?我相信這肯定是一個好主意,並且對其他服務很有用,但我不相信您可以(免費)“濫用”它來滿足您對 OpenSSH 的需求。