OpenSSH 4.9p1のリリースにより、ユーザーをホームディレクトリに限定したり、SFTPサービスへのアクセスを許可したりするために、サードパーティのハッキングや複雑なchrootセットアップに依存する必要がなくなりました。
/ etc / ssh / sshd_config(一部のディストリビューションでは/ etc / sshd_config)を編集し、次のオプションを設定します。
Subsystem sftp internal-sftp
Match Group sftp
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
「Match」ディレクティブがファイルの最後にあることを確認してください。これにより、OpenSSHは、sftpグループ内のすべてのユーザーがホームディレクトリにchrootされることを伝えます(%hはChrootDirectoryコマンドで表します)
chrootするユーザーについては、次を使用してsftpグループに追加します。
# usermod -G sftp joe
# usermod -s /bin/false joe
# chown root:root /home/joe
# chmod 0755 /home/joe
上記のusermodコマンドは、ユーザーjoeをsftpグループに追加し、シェルを/ bin / falseに設定して、絶対にシェルアクセスを取得できないようにします。chownおよびchmodコマンドは、ディレクトリに必要な権限を設定します。これらの権限を設定すると、ユーザーはファイルをアップロードおよびダウンロードできますが、ルートディレクトリにディレクトリまたはファイルを作成できません
シェルアカウントのChrootingは、特定のデバイスファイルとシェルをユーザーのホームディレクトリで使用可能にする必要があるため、もう少し複雑です。次のコマンドは、Mandriva Linuxで非常に基本的なchrootシステムをセットアップします。
# mkdir /chroot
# cd /chroot
# mkdir {bin,dev,lib}
# cp -p /bin/bash bin/
# cp -p /lib/{ld-linux.so.2,libc.so.6,libdl.so.2,libtermcap.so.2} lib/
# mknod dev/null c 1 3
# mknod dev/zero c 1 5
# chmod 0666 dev/{null,zero}
# mkdir -p /chroot/home/joe
上記により、ユーザーjoeはsshでログインでき、chrootに制限されます。残念ながら、これはあまり効果的ではありませんが、どのように設定できるのかがわかります。提供する内容に応じて、追加のライブラリとバイナリをインストールする必要があります。
chrootを作成する
dchrootおよびdebootstrapパッケージをインストールします。
管理者(つまり、sudoを使用)として、chroot用の新しいディレクトリを作成します。この手順では、ディレクトリ/var/chroot
が使用されます。これを行うsudo mkdir /var/chroot
には、コマンドラインに入力します。
管理者として、/etc/schroot/schroot.conf
テキストエディタで開き
ます。を入力しcd /etc/schroot
、続けてgksu gedit schroot.conf
。これにより、ファイルを編集できます。
次の行を追加しschroot.conf
、ファイルを保存して閉じます。your_username
ユーザー名に置き換え
ます。
[lucid] description = Ubuntu Lucid location = / var / chroot priority = 3 users = your_username groups = sbuild root-groups = root
ターミナルを開き、次を入力します。
sudo debootstrap --variant=buildd --arch i386 lucid /var/chroot/ \
http://mirror.url.com/ubuntu/
これにより、chrootにUbuntu 10.04(Lucid Lynx)の基本的な「インストール」が作成されます。パッケージのダウンロードには時間がかかる場合があります。注:lucidは、選択したUbuntuバージョンに置き換えることができます。注:mirror.url.com
ローカルの有効なアーカイブミラーのURLで上記を変更する必要があります。これで、基本的なchrootが作成されました。入力sudo chroot /var/chroot
して、chroot内のルートシェルに変更します。
chrootのセットアップ
DNS解決やへのアクセスなどの機能を提供して、chrootをセットアップするために実行できる基本的な手順がいくつかあります/proc
。
注:これらのコマンドは、chrootの外部にあるシェルに入力してください。
次を入力して、/proc
ファイルシステムをchroot にマウントします(プロセスの管理に必要):
sudo mount -o bind /proc /var/chroot/proc
次を入力して、chroot内からのDNS解決を許可します(インターネットアクセスに必要)。
sudo cp /etc/resolv.conf /var/chroot/etc/resolv.conf
chrootにデフォルトでインストールされるパッケージはほとんどありません(sudoがインストールされていない場合でも)。apt-get install package_name
パッケージのインストールに使用します。