スポンサーリンク

SMRSH

名称
書式
解説
コンパイル
関連ファイル
関連項目

名称

smrsh − sendmail用に制限されたシェル

書式

smrsh −c command

解説

smrsh は、 sendmail(8) の設定ファイルで、 sh の代わりに ‘‘prog’’ メーラ として使用する事を目的としています。 smrsh は、システムの全体的なセキュ リ ティを改善するために、 sendmail の ‘‘|program’’ 書式により起動する事 ができるコマンドを制限します。つまり、もし ‘‘悪者’’ が alias ファイルや forward ファイルを経由せずに sendmail からプログラムを実行する事ができ たとしても、 smrsh を使えば、彼 (あるいは彼女) が実行できるプログラムを 制限する事ができるのです。

簡単に言うと、 smrsh は、実行可能なプログラムを単一のディレクトリに存在 するものと、シェル組み込みコマンドの ‘‘exec’’, ‘‘exit’’, ‘‘echo’’ だ け に 限 定します。このディレクトリは、デフォルトでは、/usr/libexec/sm.bin です。これにより、システム管理者は利用可能なコマンドを選択する事がで き ま す。更に、 smrsh は、‘‘end run’’ 攻撃を防ぐために、コマンド行に ‘`’, ‘<’, ‘>’, ‘;’, ‘$’, ‘(’, ‘)’, ‘\r’ (復改文字), ‘\n’ (改行文字) の文字を 含 むコマンドは実行しません。 ‘‘||’’ と ‘‘&&’’ は、許可されており、次の ようなコマンドを使用可能です: ‘‘"|exec /usr/local/bin/filter || exit 75"’’

プ ロ グ ラ ム 名 の 前 に あ る パ ス 名 は 全 て 取 り 除かれるため、 ‘‘/usr/bin/vacation’’, ‘‘/home/server/mydir/bin/vacation’’, ‘‘vacation’’ などは全て ‘‘/usr/libexec/sm.bin/vacation’’ と解釈されま す。

システム管理者は、 sm.bin ディレクトリに置くプログラムを選ぶ際には慎 重 な判断をすべきです。適切なものとしては、 vacation(1) などがあげられるで しょう。いかなる要望があっても、シェルや、 perl(1) などのシェルに似たプ ロ グラムを sm.bin に入れてはいけません。これは、単に任意のプログラムを 実行する事を制限するだけで、 ‘‘#!’’書式を用いた、シェルスク リ プ ト や perl スクリプトを sm.bin ディレクトリに入れる事を制限する訳ではありませ ん。 procmail(1) のようなメールフィルタプログラムを入れるのも、よくあり ま せん。 procmail(1) は、 procmailrc(5) を使用することで、ユーザが任意 のプログラムを実行可能となってしまうからです。

コンパイル

コンパイルはほとんどのシステムでつまらないものです。デフォルトのサー チ パ ス ( デ フォ ル ト で は‘‘/bin:/usr/bin’’) を 変 更 す る た めに は、−DSMRSH_PATH=\"path\" を使用する必要があり、また、デフォルトのプ ロ グ ラムディレクトリ (デフォルトでは ‘‘/usr/libexec/sm.bin’’) を変更する ためには、−DSMRSH_CMDDIR=\"dir\" を使用する必要があります。

関連ファイル

/usr/adm/sm.bin − たいていの OS での制限されたプログラム用のディレク ト リ

/var/adm/sm.bin − HP UX と Solaris での制限されたプログラム用のディレク トリ

/usr/libexec/sm.bin − FreeBSD (>= 3.3) と DragonFly BSD での制限され た プログラム用のディレクトリ

関連項目

sendmail(8)

スポンサーリンク