我想為大多數(不是全部)透過 SSH 登入的使用者設定一個 chroot 監獄。我聽說最新版本的 openssh 可以實現這一點,但我不知道如何做到這一點。操作方法都在談論修補舊版本,而該修補程式不再可用。
我正在運行 Debian etch。
答案1
答案2
我只需設定一個用戶,該用戶可以透過 ssh 登錄,並透過 ssh 登入另一台伺服器(不直接連接到外部世界)。 cstamas 和 ericmayo 的連結是一個好的開始。
基本上,我將以下內容新增到 /etc/ssh/sshd_config 中:
匹配用戶 myuser Chroot目錄 /chroot/myuser
從那時起,我只需在 /chroot/myuser 下建立 chroot 環境。我複製了 /bin/bash 和 /usr/bin/ssh 以及它們所需的共享庫(ldd 將顯示這些)。對於更大的環境,編譯所需執行檔的靜態連結版本可能是有意義的。
Bash 立即運作,為了讓 ssh 運作,我還必須建立 .ssh 目錄,複製 /etc/passwd、/etc/nsswitch.conf 和 /lib/libnss_* 並建立 /dev/null、/dev/tty 和/dev/ urandom 通過mknod。
答案3
mkdir /chroot
mkdir -p /chroot/home/<user_name>
mkdir /chroot/home/<user-name>/bin
cp -pr /bin/bash /chroot/home/<user_name>/bin/.
cp -pr /bin/ls /chroot/home/<user_name>/bin/.
cp -pr /lib64 /chroot/home/<user_name>/.
您必須編輯 /etc/sshd_config 檔案並添加
ChrootDirectory /chroot/%h
並重新啟動 sshd 守護程式。
總而言之,我真的認為 sftp 是一個更好的選擇。
另外,我發現這個網址是否有幫助。
答案4
據我所知,新版本的 OpenSSH 只允許 chroot 進行 SFTP 連線。我嘗試過並且有效。但對於 SSH,可用的解決方案是 chrootssh 補丁。我瀏覽 SourceForge 網站,沒有任何文件,所以我認為已經停止使用了。
對於 Debian Etch,這裡有一些文件:http://debian.home-dn.net/etch/ssh/
這裡還有其他解決方案:http://www.debian.org/doc/manuals/securing-debian-howto/ap-chroot-ssh-env.en.html,包括 chrootssh 。