メールシステムの管理

構成パラメータの調整

サイトの要件に応じて、いくつかの構成パラメータを調整できます。構成ファイルのオプションを使用することにより、これらのパラメータのほとんどを設定できます。たとえば、OT3d という行はオプション T3d (3 日) という値に設定します。

時間値

時間間隔はすべて数字と英字の構文を使用します。たとえば、10m は 10 分で、2h30m は 2 時間 30 分です。

表 3-2 に、時間を表す記号を示します。

表 3-2 時間構文のオプション

コード 

説明 

s

秒 

m

分 

h

時間 

d

日 

w

週 

待ち行列の間隔

q フラグに付ける引数は、sendmail が待ち行列を実行する頻度を指定します。通常、15 分 (q15m) から 1 時間 (q1h) の間で設定されます。

読み取りタイムアウト

構成ファイルの Or オプションは、読み取りタイムアウトを設定します。デフォルトの読み取りのタイムアウトは Or15m です。文献にあるプロトコルでは技術的に使用できませんが、sendmail は標準入力の読み取り、またはリモート SMTP サーバーからの読み取りの際にタイムアウトすることがあります。サイトに読み取りタイムアウトに関する問題がある場合、アイドル状態のデーモンがシステム上で衝突する機会を減らすため、読み取りのタイムアウトを 1 時間 (Or1h) など、より大きな値に設定してください。

メッセージのタイムアウト

構成ファイルの OT オプション は、メッセージのタイムアウトを設定します。デフォルトのメッセージのタイムアウトは 3 日 (OT3d) です。メッセージがメッセージのタイムアウト後に待ち行列にあると、発信者にメッセージが配信されないことが通知されます。

短いメッセージのタイムアウトで待ち行列を処理することにより、短期間ハングしていたメッセージを点滅表示できます。たとえば、次のコマンドがあります。


# /usr/lib/sendmail -oT1d -q

このコマンドで、待ち行列を処理して、1 日以上経過したメッセージをすべて点滅表示します。

配信モード

構成ファイルの Od オプションは、配信モードを設定します。デフォルトの配信モードは Odbackground です。配信モードは、メールを配信する速度を指定します。表 3-3 に、有効なモードを示します。

表 3-3 配信モードのオプション

コード 

説明 

i

対話的に配信 (同期) 

b

バックグラウンドで配信 (非同期) 

q

待ち行列に入れるだけ (配信しない) 

トレードオフがあります。対話モード (i) でを発信者に渡される情報量は最大になりますが、このモードはほとんど必要ありません。待ち行列モード (q) は、マシンの負荷を最小にしますが、実際の配信は、最大で待ち行列の配信間隔まで遅延されます。デフォルトのバックグラウンドモード (b) はその中間となります。

負荷制限

中央のメールマシンは、しばしば過負荷状態になります。最もよい解決法はメールを処理するより強力なマシンを提供することですが、その負荷は、割り当てられたリソースをすべて消費するためほとんど常に拡大します。

sendmail プログラムでは負荷を制限できます。負荷を制限する目的は、長いメッセージ、多数の受信者へのメッセージ、長時間ダウンしていたサイトへのメッセージを配信するロード時間の無駄を省きます。

OxOX オプションは、sendmail によって発生する負荷を制限するのに使用します。オプションを使用しなければ、デフォルトで負荷制限を設定していません。これらの構成オプションは負荷平均を表す整数の引数で指定します。たとえば、Ox4OX8 を指定すると、負荷が 4 より大きいと x 負荷制限が使用され、負荷が 8 より大きいと X 負荷制限が使用されます。負荷が X オプションで指定した値より大きいとき、SMTP サーバーはネットワークからの接続を受け付けません (ローカルで発信されたメールと UUCP などの他のメールは影響を受けません)。x オプションではさらに、メッセージをそれ以降の配信のために待ち行列に入れるか、または即座に配信するかを制御します。これには、常に「短い」メッセージは即座に配信し、「長い」メッセージはピーク時を避けて配信するという原則があります。

Oq オプションは即座に配信されるメッセージの最大サイズを指定します。メッセージの「サイズ」には、メッセージのバイト数だけでなく、受信者がかなり多い場合と配信されなかった場合のペナルティも含めます。受信者に対するペナルティはオプション値 y で、デフォルトでは 1000 に設定されます。配信の試みに対するペナルティはオプション値 z で、デフォルトでは 9000 に設定されます。また、サイズ制限は現在の負荷によって異なるため、負荷が大きくなるにつれて待ち行列に入るメッセージの数は増えます。たとえば、負荷がしきい値 x より 1 つ上であれば制限は半減して、負荷がそのしきい値より 2 つ上であれば制限は 3 分の 1 になります。また、待ち行列を処理するときに配信されるメッセージにも適用されることに注意してください。

ログレベル

sendmail のログを作成するレベルを調整できます。次の表 3-4 に、そのレベルを示します。

表 3-4 ログレベルコード

コード 

説明 

0

ログなし 

1

深刻なシステム故障やセキュリティ上の問題など主要な問題のみ 

2

通信の損失 (ネットワーク問題) とプロトコル障害 

3

その他の深刻な障害 

4

その他の小さな障害 

5

メッセージ収集統計情報 

6

エラーメッセージ、VRFY および EXPN コマンドの作成 

7

配信障害 (ホストやユーザーが不明など) 

8

正常な配信 

9

(デフォルト) メッセージの遅延 (ホストのダウンなどが原因) 

10

データベースの拡張 (別名、転送および userdb の検索) 

15

別名データベースの自動再構築 

20

ログがロックされた待ち行列ファイルを処理しようとした 

30

ロックの損失 

詳細は、Solaris のシステム管理 を参照してください。

ファイルモード

ファイルによっては、アクセスを制御する保護モードがあります。この節では、 sendmail.cf ファイルから制御できるモードについて説明します。使用するモードは、必要な機能とセキュリティレベルによって異なります。

setuid

デフォルトではユーザーのホームディレクトリに書き込むプログラムに配信できるように、sendmail プログラムはユーザー ID を 0 にして (setuidroot に設定して) 実行されます。sendmail がメールプログラムを実行する準備ができると、sendmail はユーザー ID が 0 であるかどうかを調べ、0 であれば、ユーザー ID とグループ ID を、構成ファイルにある u オプションと g オプションで設定されている値にリセットします。ユーザー ID とグループ ID はともに 1 (daemon) に設定されます。メールプログラムに S フラグを設定することにより、これらの値を無効にできます (信頼性があり、root で呼び出す必要のあるメールプログラムの場合)。ただし、メール処理はメールを送信するユーザーではなく root が担当します。

一時ファイルモード

OF オプションは、sendmail が使用するすべての一時ファイルのモードを設定します。デフォルト値の 0600 はセキュリティの高いメールに使用され、0644 ではアクセス権が緩和されます。この 0644 モードを使用すると、(待ち行列を処理する際でも) sendmailroot として実行する必要はありません。ユーザーは、待ち行列にあるメールを読み取ることができます。

自分の別名データベースを書き込み可能にすべきか

1 つの方法は、別名データベース (/etc/mail/aliases) をモード 666 にすることです。この方法を使用すると、ユーザーは任意のリストを修正できます。ただし、ユーザーが編集できるファイルに別名を書き込んで、/etc/mail/aliases からそのファイルを参照することにより、ユーザーが変更できるような別名に制限を加える場合には、次のように指定します。


alias-name::include:/filename