SSHを介してログインするほとんどの(すべてではない)ユーザーのためにchroot jailをセットアップしたいと思います。 opensshの最新バージョンで可能であると聞きましたが、その方法を見つけることができませんでした。ハウツーはすべて、古いバージョンにパッチを当てることについての話であり、パッチはもう利用できません。
私はdebian etchを実行しています。
Sshとsshを介して別のサーバー(外部に直接接続されていない)にログインできるユーザーをセットアップする必要がありました。 cstamasとericmayoによるリンクは良い出発点でした。
基本的に、私は/ etc/ssh/sshd_configに以下を追加しました:
ユーザーmyuserに一致 ChrootDirectory /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経由)。
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を見つけました。
公開鍵認証を使用している場合は、許可された鍵の「コマンド」オプションを使用してchroot jailをセットアップできます。
〜/ .ssh/authorized_keys:
command="/path/to/the/chroot/script" ssh-dss keydata.....keydata... user@Host
私の知る限り、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.html 、chrootsshを含む。