どうすれば ssh 接続を chroot できますか?

どうすれば ssh 接続を chroot できますか?

SSH 経由でログインするほとんどの (全員ではない) ユーザーに対して chroot jail を設定したいと考えています。最新バージョンの openssh では可能だと聞いていますが、その方法がわかりません。How To ではすべて、古いバージョンにパッチを適用することについて説明されていますが、パッチはもう入手できません。

私はDebian Etchを実行しています。

答え1

この目的のために rssh を使用しています。

おっしゃる通り、それを実行する新しい方法があり、それは最近の ssh バージョンに組み込まれた機能です。

こちらの記事は不死身

答え2

私は、SSH 経由でログインできるユーザーを 1 人設定し、別のサーバー (外部に直接接続されていないサーバー) への 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_* をコピーし、mknod 経由で /dev/null、/dev/tty、および /dev/urandom を作成する必要がありました。

答え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 の方が良い選択肢だと思っています。

また、役に立つかどうか、この URL を見つけました。

http://www.techrepublic.com/blog/opensource/chroot-users-with-openssh-an-easier-way-to-confine-users-to-their-home-directories/229

答え4

私の知る限り、OpenSSH の新しいバージョンでは、SFTP 接続に対してのみ chroot が許可されます。試してみましたが、うまくいきました。ただし、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.htmlchrootssh を含む。

関連情報