xserver
Home クッキー及びWeb ビーコンについて



OpenSSHをchroot環境にする

OpenSSHのchrootの概要

 ここでは、OpenSSH をchroot 環境として動作させる方法について解説していきます。OpenSSH をchroot 環境で動作させることで、ホームディレクトリより上位の階層へアクセスできないようにすることができます。いくらOpenSSH で通信を暗号化しても階層内を自由に行き来できるのでは、せっかくのセキュリティも効果半減です。自分ひとりでSSH を使っているならあまり問題とならないかもしれませんが、友達にもログインさせたいとかいった場合には、自由にアクセスされてしまったのではちょっといい心地はしないでしょう。そんなわけで、OpenSSH を chroot として動作させ、アクセスできるディレクトリを限定させることでより安心してSSH を使うことができるようになりますので、是非、試してみてください。




■OpenSSH chrootパッチのダウンロード

Download http://chrootssh.sourceforge.net/download/
Install openssh-3.7.1p2-chroot.tar.gz
osshChroot-3.7.1p2.diff

 OpenSSH を新規にインストールする場合は、最初からパッチが当てられたもの(openssh-3.7p1-chroot.tar.gz)をダウンロードしてインストールするといいでしょう。





 以下はWinSCPでユーザーとしてSSH2でログインした画面です。OpenSSH は、chroot されていないために、ユーザーのホームディレクトリより上位の階層へアクセスすることができてしまいます。これは、セキュリティ上、非常に好ましくないため、ユーザーディレクトリより上位の階層へはアクセスできないようにしたい。FTPだったら設定ファイルをちょこちょこと編集すれば、容易にchroot環境にすることができますが、OpenSSH の設定ファイルにはchroot をさせるためのディレクティブが記述されていません。/usr/local/etc/sshd_config を開いて、chrootを試みようとした方もたくさんいるでしょう。けれども、OpenSSH はパッチを当てることでchrootを実現することができるようになっていますので、以下で解説を進めていきます。



手順としては、以下の通りです。

 1.ユーザーのホームディレクトリを/home/tamesi/./ のようにする
 2.chroot 用のPatch をあて、再コンパイル
 3.ユーザーのホームディレクトリにシェルをコピーする


 まず、ここでは、仮想のユーザーをtamesi として作成して解説します。予め、/home 以下にtamesi ディレクトリを作成し、useradd に-d オプションをつけてホームディレクトリを作成します。ユーザーを作成したらパスワードも設定しておいてください。

# mkdir /home/tamesi
# useradd tamesi -d /home/tamesi/./
# passwd tamesi
# chown tamesi.tamesi /home/tamesi

 次に、OpenSSH にchroot 用のパッチをあてます。こちらより、自分が使用しているバージョンのPatchをダウンロードしてきます。なお、初めてインストールする方は、
openssh-***-chroot.tar.gz をダウンロードしてインストールしてください(インストール方法はこちら)。ここでは、osshChroot-3.7.1p2.diffをダウンロードして使用していきます。OpenSSH を展開したディレクトリ内にこのファイルをコピーし、以下のようにコマンドを実行します。

# cd /usr/local/src/openssh-3.7.1p2
# patch -p1 < osshChroot-3.7.1p2.diff
patching file session.c

 OpenSSH を再起動します。

# ps aux | grep sshd
root 20587 0.0 0.3 2548 804 ? S 19:56 0:00 /usr/local/sbin/sshd
# kill 20587
# /usr/local/sbin/sshd



 ここまでの操作で手順2まで終了したことになります。この時点で、WinSCPを使ってサーバーにログインしてみましょう。なお、言うまでもありませんが、プレーン認証を行ってログインする場合には、sshd_config でPasswordAuthentication の値がyes になっていることを確認してください。



 この時点でおそらく以下図のようなエラーが発生し、接続が出来なかったと思います。これは、/home/tamesi/./の下にbash が存在しないためです。なので以降の操作で必要なものを全てコピーします。





   まず、こちらのサイトから、シェルスクリプトをダウンロードしてきてください。ダウンロード後、各自の環境に合わせていくつか編集する必要があります。筆者の環境では、以下赤文字のssh のパスを変更しました。

APPS="/bin/bash /bin/ls /bin/mkdir /bin/mv /bin/pwd /bin/rm
/usr/bin/id /usr/bin/rsync /usr/local/bin/ssh /bin/ping"

 編集し終えたら、スクリプトを実行します。tamesi の部分はユーザー名を記述してください。

# perl create_chroot_env tamesi

 ここまでの操作を終えたら、さっそく、WinSCP で接続してみましょう。今度は、自分のホームディレクトリ上位の階層にはアクセスできないようになっています。なお、接続時に以下のようなエラーメッセージが表示されますが無視して問題ありません。










Sponcerd Link


Search
 
Web サイト内
Rental Server

【レンタルサーバのXbit】 低価格・高品質のビジネスクオリティー。300メガ1,050円~30分で サービススタート可能!


容量300MB、月額125円、高性能なサーバが日本最大級のバックボーンに直結。
さくらのレンタルサーバ



当サイトはLinux自宅サーバーの構築を目的としたサイトです。
当サイトに関するご意見、ご要望等は、こちらのメールアドレスよりお願いします。
Beginning | Introduction | Installation | Server |
Security | Tips | Related-Sites
Copyright©2003-2006 KORO All Rights Reserved.
総計:
今日:
昨日: