Security

OpenSSH sftp jail/chroot 是如何工作的?

  • November 21, 2015

這個問題其實太籠統了……

我真正想知道的是它是否真的 chroot,如果是,SSH 使用者守護程序如何

$$ 1 $$儘管 chroot 中明顯缺少所需的二進製文件/lib,但仍可以在該監獄中啟動。 Google對此事出奇的沉默。但是一個很好的參考來解釋就足夠了(但是我沒有足夠的文字來閱讀和理解他們的C)。

$$ 1 $$:我說的是具有使用者權限的實際瞬態守護程序,它在由主根 OpenSSH 守護程序連接時啟動。

另一個答案很模糊(問題也是),所以我會盡量詳細說明這個現象。我知道這個話題並不適合所有人,但對於那些感興趣的人來說,了解它是件好事。

兩個不同的地方chroot完成了,你正在研究它們,所以我會嘗試調整你的想法:

  1. 權限分離,這是一種安全機制,其中一部分也是chroot網路子的限制。這通常是一些空目錄,例如/var/empty.

原因很簡單,如果存在一些漏洞,它可能無法被利用,因為這個程序看不到文件系統並且在其他方​​面也受到限制(沙箱,SECCOMP 關鍵字供進一步閱讀)。 2. 稍後您可以chroot在特定目錄中的使用者會話(不僅是 SFTP),以防止訪問整個文件系統。根據標題,這可能是您感興趣的部分。

chroot 中 sftp的神奇之處在於您可以指定Subsystem sftp internal-sftp(而不是完整路徑Subsystem sftp /usr/lib/openssh/sftp-server)。這意味著它sshd具有完整sftp-server的編譯,而不是exec二進製文件,它只是呼叫定義伺服器行為的函式。這不需要chroot為使用者提供任何支持文件(與正常會話不同,您需要 shell 及其依賴的共享對象)。如果您對此類資訊感興趣,您可能還需要記錄套接字。

引用自:https://unix.stackexchange.com/questions/244566