Centos

root 使用者的 SFTP 監獄?

  • September 22, 2020

因此,雖然我一直在尋找鎖定使用者並將他們鎖定在監獄中的方法。我遇到了一個有趣的問題,我在任何地方都沒有看到答案。

一個人如何擁有監禁 root 帳戶的權力?我目前正在嘗試以下操作: Match user root ChrootDirectory /opt/somedirectory/anotherdirectory ForceCommand internal-sftp 但我在連接時一直斷開連接。- 對於這個案例,因為它是一個實驗室環境,我已經允許PasswordAuthenticationPermitRootLogin

我知道 Chroot 監獄使用超級使用者權限來將人們鎖定在他們自己的小環境中。但是有什麼東西可以入獄嗎?或者至少將他鎖定到一個特定的目錄,這樣他就不能 cd 回來?這是一個有趣的案例,我想探索和了解更多!感謝您花時間回答!

TL;DR:你如何 sftp 將 root 鎖定到特定目錄。

事實證明,只要絕對路徑上的每個目錄(例如 /var/log/www)都必須由 root 讀取,就可以正確管理所有內容。在 SSHD_Config 中,我們需要添加以下行:

Subsystem sftp internal-sftp
Match user Root
ChrootDirectory /var/log/www
ForceCommand internal-sftp

然後,這將禁止 root 登錄 ssh,只允許他連接到給定 ChrootDirectory(即監獄)中的 sftp 系統。希望有一天這對某人有所幫助!

你不能。

Red Hat 有一篇關於此的文章(連結在這裡) - 如果您正在考慮使用chroots,我建議您閱讀整篇文章。以下是文章的摘錄,概述了為什麼這不起作用:

chroot 和 root 使用者

chroot() 系統呼叫僅對 root 使用者可用。非 root 使用者無法執行 chroot() 呼叫。這是一件好事,因為如果你能夠呼叫 chroot(),你就可以擺脫它。這不是 chroot() 中的錯誤,而是它的工作原理。即使您想將此視為一個錯誤,您也必須記住 root 通常可以訪問系統和所有資源。沒有什麼可以阻止 root 直接修改程序記憶體以將 chroot() 位置更改回“/”。這裡要考慮的重要一點是,按照設計,chroot() 不會停止 root。這一點在本文後面很重要。

如果這是您所說的實驗室環境,只需添加一個普通使用者,只需一個簡單的密碼(甚至是用於無密碼登錄的 SSH 密鑰)

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