web-dev-qa-db-ja.com

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

SSHを介してログインするほとんどの(すべてではない)ユーザーのためにchroot jailをセットアップしたいと思います。 opensshの最新バージョンで可能であると聞きましたが、その方法を見つけることができませんでした。ハウツーはすべて、古いバージョンにパッチを当てることについての話であり、パッチはもう利用できません。

私はdebian etchを実行しています。

20
Malfist

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

そうする新しい方法があり、それは最近のsshバージョンの組み込み機能です。

これが ndeadly に関する記事です。

13
cstamas

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経由)。

6
Marie Fischer
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

2

公開鍵認証を使用している場合は、許可された鍵の「コマンド」オプションを使用してchroot jailをセットアップできます。

〜/ .ssh/authorized_keys:

command="/path/to/the/chroot/script" ssh-dss keydata.....keydata... user@Host
1
UloPe

私の知る限り、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を含む。

0
hdanniel