xinetd で chrootする。

実はかつて、ある仕事の話があって、簡単なパッチを作成したのです が、その仕事もぽしゃったりしたので、誰か欲しい人がいるかも、と 思いパッチを公開します。


一体何をするパッチなの?

xinetd が fork して各サーバを起動する前に chroot します。各サー ビス毎にchrootするかどうかを制御したり、IPアドレスや、ドメイン の名前等によってchrootするディレクトリを変更する事ができるため、 いろいろ使える可能性があると思います。(元々はバーチャルドメイ ン等の用途向けに作成しました。)

インストールの仕方

下にあるパッチを適用して、

autoconf
      

した後、configureのオプションに --with-virtual を付けてください。

パッチ

使い方

xinetd.conf

このパッチを適用する事で、グローバルなオプションと各サービス毎 のオプションとして、

virtual

という項目が追加されます。virtualに設定できるのは、yesかnoとなっ ており、xinetd.confに

defaults
{
        instances               = 60
        log_type                = SYSLOG authpriv
        log_on_success          = HOST PID
        log_on_failure          = HOST
        cps                     = 25 30
        virtual                 = yes
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
}
      

と記述しておくと、xinetdのデフォルトの振る舞いとして、chrootさ れるようになります。また各サービスの設定ファイルにvirtualディ レクティブを記述する事で、各サービス毎にchrootするかどうかの振 る舞いを制御する事ができます。

chroot 用の設定ファイル

chroot の振る舞いは、virtdb ファイルによって制御します。このファ イルを etcディレクトリ以下に置いてください。(すみ ません。ソースに直に書いてます...)。

chroot 用設定ファイル(virtdb)の書式

virddb ファイルの書式は以下のようになります。

domainname(or ip address): chroot先

ここで、chroot先に記述したものには、実際の動作時に、prefixとし て、homeがくっつくようになっています。つまり、下の例で、famao と書いてある場合には

/home/famao

へと置き変えられる事になります。

192.168.128.1: famao
www.notuse.com: notuse

既知の制限事項

意見・ご要望

ここが変だ。といったバグ報告や、こうしてくれ、といった要望は、 famao@kondara.orgにまでメールしてください。カスタマイズしてく れ、という話も歓迎します(とかいう)。


Valid XHTML 1.0!