ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
![]() |
Oracle Solaris 11.1 での sendmail サービスの管理 Oracle Solaris 11.1 Information Library (日本語) |
sendmail のコンパイルに使用できるフラグと使用できないフラグ
MILTER (sendmail のメールフィルタ API)
SMTP (Simple Mail Transfer Protocol) メールプログラム
UUCP (UNIX-to-UNIX Copy Program) メールプログラム
sendmail の version 8.13 で TLS を使用して SMTP を実行するためのサポート
TLS を使用して SMTP を実行するための構成ファイルのオプション
TLS を使用した SMTP の実行に関連するセキュリティーの検討事項
sendmail の version 8.13 で追加されたコマンド行オプション
sendmail の version 8.13 で追加または改訂された構成ファイルオプション
sendmail の version 8.13 で追加または改訂された FEATURE() の宣言
sendmail の version 8.12 からの変更点
sendmail の version 8.12 からの TCP ラッパーのサポート
sendmail の version 8.12 からの submit.cf 構成ファイル
sendmail.cf と submit.cf の機能の相違点
sendmail の version 8.12 からの機能の変更
sendmail の version 8.12 から追加されたまたは非推奨のコマンド行オプション
sendmail の version 8.12 から PidFile オプションおよび ProcessTitlePrefix オプションに追加された引数
sendmail の version 8.12 から追加定義されたマクロ
sendmail の version 8.12 から追加されたマクロ
sendmail の version 8.12 から追加された MAX マクロ
sendmail の version 8.12 から追加または改訂された m4 構成マクロ
sendmail の version 8.12 からの FEATURE() の宣言についての変更点
sendmail の version 8.12 からの MAILER() の宣言についての変更点
sendmail の version 8.12 から追加された配信エージェントのフラグ
sendmail の version 8.12 から追加された配信エージェントの設定
sendmail の version 8.12 から追加されたキューの機能
sendmail の version 8.12 からの LDAP の変更点
sendmail の version 8.12 からの組み込まれたメールプログラムの変更
sendmail の version 8.12 から追加されたルールセット
TCP ラッパーは、特定のネットワークサービスを要求するホストのアドレスをアクセス制御リスト (ACL) と突き合わせて検査することによるアクセス制御の実装方法を提供します。要求は、状況に応じて、許可されたり拒否されたりします。このアクセス制御メカニズムを提供する以外に、TCP ラッパーは、ネットワークサービスに対するホストの要求を記録します。これは、有用な監視機能です。アクセス制御のもとに置かれるネットワークサービスの例として、rlogind、telnetd、ftpd などがあります。
version 8.12 より、sendmail で TCP ラッパーが使用できるようになりました。この検査によってほかのセキュリティー対策が省略されることはありません。sendmail で TCP ラッパーを有効にすることにより、検査が追加され、ネットワーク要求元の妥当性が検証されてから要求が許可されます。hosts_access(4) のマニュアルページを参照してください。
注 - inetd(1M) および sshd(1M) での TCP ラッパーは、Solaris 9 リリースからサポートされています。
ACL については、『Oracle Solaris 11.1 の管理: セキュリティーサービス』の「アクセス制御リストによる UFS ファイルの保護」を参照してください。
version 8.12 より、sendmail に新しい構成ファイル /etc/mail/submit.cf が含まれるようになりました。この submit.cf ファイルを使用して、sendmail をデーモンモードではなく、メール配信プログラムモードで実行できます。デーモンモードとは異なり、メール配信プログラムモードでは root 権限は必要ありません。そのため、この新しいパラダイムを使用すると、セキュリティーが向上します。
submit.cf の機能については、次を参照してください。
sendmail は、MSP (メール配信プログラム) モードでは submit.cf を使って実行します。submit.cf は、電子メールを送信したり、ユーザー以外の mailx のようなプログラムによって呼び出したりすることができます。-Ac オプションおよび -Am オプションについては、sendmail(1M) のマニュアルページを参照してください。
submit.cf は、次の操作モードで使用します。
-bm デフォルトの操作モード
-bs 標準入力を使用して SMTP を実行する
-bt アドレスの解決に使用されるテストモード
submit.cf を使用している場合には、sendmail は SMTP デーモンとして動作しません。
submit.cf を使用している場合には、sendmail はクライアント専用のメールキューである /var/spool/clientmqueue を使用します。このキューにより、sendmail デーモンに配信されなかったメッセージが保持されます。クライアント専用キューにあるメッセージは、クライアントの「デーモン」によって配信されます。実際には、このデーモンが、クライアントキューを実行します。
デフォルトでは、sendmail は submit.cf を使用して、定期的に MSP キュー (クライアント専用キュー) である /var/spool/clientmqueue を実行します。
/usr/lib/sendmail -Ac -q15m
次の事項に注意してください。
Solaris 9 より、submit.cf は自動的にインストールされます。
Solaris 9 以降をインストールする前に、submit.cf について計画および準備をする必要はありません。
構成ファイルを指定しないかぎり、sendmail は、必要に応じて、submit.cf を自動的に使用します。基本的に、sendmail は各タスクについて、submit.cf と sendmail.cf のどちらを使用するのが適切かを判断します。
構成ファイル sendmail.cf は、デーモンモードで使用します。このファイルを使用すると、sendmail は、メール転送エージェント (MTA) として動作します。sendmail は、root によって起動されます。
/usr/lib/sendmail -L sm-mta -bd -q1h
sendmail.cf 特有のほかの機能については、次を参照してください。
デフォルトでは、sendmail.cf がメールキュー /var/spool/mqueue を実行します。
submit.cf が追加されたため、次の機能が変更されました。
sendmail の version 8.12 より、root だけがメールキューを実行できます。この変更の詳細は、mailq(1) のマニュアルページを参照してください。新しいタスク情報については、「キューディレクトリの管理 (タスクマップ)」を参照してください。
メール配信プログラムモードは、root 権限がなくても実行されるので、sendmail が特定のファイル (.forward ファイルなど) にアクセスできないことがあります。したがって、sendmail に -bv オプションを追加すると、ユーザーが誤解するような出力を発生させる可能性があります。回避策はありません。
8.12 より前のバージョンの sendmail では、sendmail をデーモンモードで実行しない場合は、受信メールの配信を防止することしかできませんでした。version 8.12 より、デフォルトの構成で、sendmail デーモンを実行しない場合、送信メールの配信もまた防止することができます。クライアントキューランナー (メール配信プログラム) を設定して、ローカル SMTP ポートのデーモンにメールを送信できるようにする必要があります。クライアントキューランナーが SMTP のセッションをローカルホストで開こうとした場合で、デーモンが SMTP ポートで待機していないときには、メールはキューにとどまります。デフォルトの構成では、デーモンが実行されます。そのため、デフォルト構成を使用する場合には、この問題は発生しません。ただし、デーモンを無効にした場合の解決方法については、 「sendmail.cf の代替構成を使ってメール配信を管理する方法」を参照してください。
次の表では、 sendmail の追加されたコマンド行オプションまたは非推奨のコマンド行オプションについて説明します。コマンド行のほかのオプションについては、sendmail(1M) のマニュアルページを参照してください。
表 3-18 sendmail の version 8.12 から追加されたまたは非推奨のコマンド行オプション
|
次の表では、PidFile オプションおよび ProcessTitlePrefix オプションにおけるマクロ処理の追加引数について説明します。これらのオプションについては、sendmail(1M) のマニュアルページを参照してください。
表 3-19 PidFile オプションおよび ProcessTitlePrefix オプションの引数
|
次の表では、sendmail プログラムで使用するための追加マクロについて説明しています。マクロの値は、内部で割り当てられています。詳細は、sendmail(1M) のマニュアルページを参照してください。
表 3-20 sendmail に追加定義されたマクロ
|
このセクションでは、構成ファイル sendmail を構築するのに使用する追加マクロについて説明した表を示します。
表 3-21 構成ファイル sendmail を構築するのに使用する追加マクロ
|
次のマクロを使用して、受け入れ可能なコマンドを最大数構成し、sendmail による配信の遅れを防止することができます。これらの MAX マクロは、コンパイル時に設定できます。次の表にある最大値は、現在のデフォルト値でもあります。
表 3-22 追加された MAX マクロ
|
注 - マクロによる確認を無効にするには、マクロの値を 0 に設定します。
このセクションでは、sendmail において追加または改訂された m4 構成マクロの表を示します。これらのマクロを宣言するには、次の構文を使用します。
symbolic-name(`value')
新しい sendmail.cf ファイルを構築する必要がある場合は、「sendmail 構成を変更する」の 第 2 章メールサービス (タスク)を参照してください。
表 3-23 sendmail において追加または改訂された m4 構成マクロ
|
FEATURE() の宣言についての変更点については、次の表を参照してください。
FEATURE の新しい名前および改訂された名前を使用するには、次の構文を使用します。
FEATURE(`name', `argument')
新しい sendmail.cf ファイルを構築する必要がある場合は、第 2 章メールサービス (タスク)の「sendmail 構成を変更する」を参照してください。
表 3-24 追加または改訂された FEATURE() の宣言
|
次の FEATURE () 宣言はサポートされなくなりました。
表 3-25 宣言がサポートされていない FEATURE()
|
MAILER() を宣言すると、配信エージェントのサポートを指定できます。配信エージェントを宣言するには、次の構文を使用します。
MAILER(`symbolic-name')
次の変更に注意してください。
この新しいバージョンの sendmail では、MAILER(`smtp') を宣言すると、メールプログラム dsmtp が追加されます。dsmtp により、メールプログラムのフラグ F=% を使用して、オンデマンドに配信することができます。dsmtp メールプログラムを定義する際には、新しい DSMTP_MAILER_ARGS を使用します。DSMTP_MAILER_ARGS のデフォルトは IPC $h です。
MAILER によって使用されるルールセットの番号は削除されました。MAILER(`uucp') を除いて、MAILER の表示順を自由に設定できます。uucp-dom および uucp-uudom を使用する場合には、MAILER(`smtp') のあとに MAILER(`uucp') を配置する必要があります。
メールプログラムの詳細は、「メールプログラムと sendmail」を参照してください。新しい sendmail.cf ファイルを構築する必要がある場合は、「sendmail 構成を変更する」の 第 2 章メールサービス (タスク)を参照してください。
次の表では、配信エージェントの追加されたフラグについて説明しています。デフォルトでは、これらのフラグは設定されていません。これらの 1 文字のフラグはブール型です。このフラグを設定したりその設定を解除したりするには、次の例のように、フラグを構成ファイルの F= 文に含めるか除外します。
Mlocal, P=/usr/lib/mail.local, F=lsDFMAw5:/|@qSXfmnz9, S=10/30, R=20/40, Mprog, P=/bin/sh, F=lsDFMoqeu9, S=10/30, R=20/40, D=$z:/, Msmtp, P=[IPC], F=mDFMuX, S=11/31, R=21, E=\r\n, L=990, Mesmtp, P=[IPC], F=mDFMuXa, S=11/31, R=21, E=\r\n, L=990, Msmtp8, P=[IPC], F=mDFMuX8, S=11/31, R=21, E=\r\n, L=990, Mrelay, P=[IPC], F=mDFMuXa8, S=11/31, R=61, E=\r\n, L=2040,
表 3-26 メールプログラムの追加されたフラグ
|
次の表では、配信エージェントを定義するコマンド M とともに使用できる新しい設定について説明しています。次の構文は、設定を新たに付加する方法、および構成ファイルの既存の設定に新しい引数を付加する方法を示しています。
Magent-name, equate, equate, ...
次の例には、新しい設定 W= が含まれています。この設定は、すべてのデータが送信されたあとでメールプログラムが戻るまでの最長待ち時間を指定します。
Msmtp, P=[IPC], F=mDFMuX, S=11/31, R=21, E=\r\n, L=990, W=2m
m4 の構成値の定義を変更するには、次の例のような構文を使用します。
define(`SMTP_MAILER_MAXMSGS', `1000')
この例では、smtp メールプログラムで 1 回の接続で配信されるメッセージ数を 1000 に制限しています。
新しい sendmail.cf ファイルを構築する必要がある場合は、「sendmail 構成を変更する」の 第 2 章メールサービス (タスク)を参照してください。
注 - 通常、mailer ディレクトリで、この設定の定義を変更するのは、微調整が必要な場合だけです。
表 3-27 配信エージェントの追加された設定
|
本リリースでは、複数のキューディレクトリをサポートしています。複数のキューを使用するには、次の例のように、アスタリスク (*) で終わっている QueueDirectory オプション値を構成ファイルに追加します。
O QueueDirectory=/var/spool/mqueue/q*
このオプション値 /var/spool/mqueue/q* は、「q」で始まっているすべてのディレクトリ (またはディレクトリへのシンボリックリンク) をキューのディレクトリとして使用します。sendmail の実行中には、キューのディレクトリ構造を変更しないでください。キューを実行すると、デーモン以外のキューの実行時に冗長フラグ (-v) を使用しないかぎり、各キューについての実行プロセスが作成されます。この新しい項目が、無作為にキューに割り当てられます。
この新しいキューのファイルの名前付けシステムで使用する名前は、60 年間一意であることが保証されます。このシステムでは、キュー ID が複雑なファイルシステムのロックを使用しないで割り当てられるため、キューにある項目を簡単にほかのキューに移動することができます。
version 8.12 より、root だけがメールキューを実行できます。この変更の詳細は、mailq(1) のマニュアルページを参照してください。新しいタスク情報については、「キューディレクトリの管理 (タスクマップ)」を参照してください。
エンベロープの分割に対応するために、キューファイルの名前は 14 文字ではなく、15 文字にします。14 文字までの名前を持つファイルシステムは、サポートされません。
タスク情報については、「キューディレクトリの管理 (タスクマップ)」を参照してください。
次に、LDAP (Lightweight Directory Access Protocol) を sendmail で使用する際の変更点について説明します。
LDAPROUTE_EQUIVALENT() および LDAPROUTE_EQUIVALENT_FILE() を使用して、同じホスト名を指定することができます。これらのホスト名は、LDAP ルーティング参照のマスカレードドメイン名と置き換えられます。詳細は、/etc/mail/cf/README を参照してください。
ftp://ftp.sendmail.org で sendmail とともに配布しているリリースノートで説明しているように、LDAPX マップの名前は LDAP に変更されました。LDAP には、次の構文を使用します。
Kldap ldap options
本リリースでは、一度の LDAP 参照に複数の値を返すことができます。次の例のように、返す値を -v オプションを付加したコンマ区切りの文字列に配置します。
Kldap ldap -v"mail,more-mail"
LDAP マップの宣言で LDAP 属性が指定されていない場合は、一致した属性がすべて返されます。
このバージョンの sendmail は、LDAP 別名ファイルに指定された引用符などで囲まれた鍵や値の文字列内のコンマによって、1 つのエントリが複数のエントリに分割されるのを防止します。
このバージョンの sendmail には、LDAP マップ用の新しいオプションがあります。この -Vseparator オプションを使用して、区切り文字を指定できます。そのため、検索を行うと、該当する separator によって区切られた属性と値の両方を返すことが可能です。
%s トークンを使用した LDAP フィルタ指定の構文解析に加えて、新しいトークンである %0 を使用して、キーバッファーをエンコードすることもできます。%0 トークンは、LDAP の特殊文字に対して、文字どおりの意味を適用します。
次の例では、これらのトークンが「 *」検索でどのように違うかを説明します。
表 3-28 トークンの比較
|
次の表では、LDAP マップの追加されたフラグについて説明しています。
表 3-29 LDAP マップの追加されたフラグ
|
前のバージョンに組み込まれていたメールプログラム [TCP] は使用できません。代わりに、新しく組み込まれたメールプログラム P=[IPC] を使用してください。プロセス間通信 ([IPC]) 組み込みメールプログラムで、それをサポートするシステム上の UNIX ドメインソケットへの配信を行えるようになりました。このメールプログラムは、指定したソケットで待機している LMTP 配信エージェントとともに使用できます。次に、メールプログラムの例を示します。
Mexecmail, P=[IPC], F=lsDFMmnqSXzA5@/:|, E=\r\n, S=10, R=20/40, T=DNS/RFC822/X-Unix, A=FILE /system/volatile/lmtpd
[IPC] メールプログラムの最初の引数の値が妥当であるか検査されるようになりました。次の表では、最初のメールプログラム引数に設定可能な値について説明しています。
表 3-30 最初のメールプログラム引数に設定可能な値
|
次の表では、追加されたルールセットとその動作について説明しています。
表 3-31 新しいルールセット
|
次に、ルールセットの追加機能について説明します。
番号が付けられたルールセットには、名前も付けられました。ただし、これらのルールセットに、番号でアクセスすることもできます。
H ヘッダー構成ファイルコマンドを使用して、デフォルトルールセットを指定し、ヘッダーを確認することができます。各ヘッダーに、独自のルールセットが割り当てられていない場合にだけ、このルールセットが呼び出されます。
ルールセット内のコメント、つまり括弧内のテキストは、構成ファイルのバージョンが 9 かそれ以上である場合には削除されません。たとえば、次のルールは、入力 token (1) を照合します。ただし、入力 token は照合しません。
R$+ (1) $@ 1
TCP ラッパーまたは check_relay ルールセットが原因でコマンドを拒否する場合でも、sendmail は SMTP RSET コマンドを受け入れます。
OperatorChars オプションを何度も設定すると、警告が送信されます。また、ルールセットを定義したあとで OperatorChars を設定しないでください。
無効なルールセットを宣言すると、行だけでなく、そのルールセットの名前も無視されます。そのルールセットの行は S0 に追加されません。
読み取り専用の /usr ファイルシステムをサポートするために、/usr/lib/mail ディレクトリの内容が /etc/mail/cf ディレクトリに移動されました。詳細は、「/etc/mail/cf ディレクトリの内容」を参照してください。ただし、シェルスクリプト /usr/lib/mail/sh/check-hostname および /usr/lib/mail/sh/check-permissions は、/usr/sbin ディレクトリに置かれるようになりました。「メールサービスに使用するその他のファイル」を参照してください。下位互換性を確保するために、シンボリックリンクが各ファイルの新しい位置を示します。
/usr/lib/mail/cf/main-v7sun.mc の新しい名前は /etc/mail/cf/cf/main.mc です。
/usr/lib/mail/cf/subsidiary-v7sun.mc の新しい名前は /etc/mail/cf/cf/subsidiary.mc です。
helpfile は /etc/mail/helpfile にあります。古い名前 (/etc/mail/sendmail.hf) には、新しい名前へのシンボリックリンクがあります。
trusted-users ファイルは /etc/mail/trusted-users にあります。アップグレード中に、新しい名前は検出されず、古い名前である /etc/mail/sendmail.ct が検出されると、古い名前から新しい名前へのハードリンクが作成されます。それ以外の場合には、変更されません。デフォルトの内容は、root です。
local-host-names ファイルは /etc/mail/local-host-names にあります。アップグレード中に、新しい名前は検出されず、古い名前である /etc/mail/sendmail.cw が検出されると、古い名前から新しい名前へのハードリンクが作成されます。それ以外の場合には、変更されません。デフォルトの内容は、ゼロ長です。
sendmail の version 8.12 より、アドレスを正しく識別するために、構成に使用する IPv6 アドレスの前に IPv6: タグを付ける必要があります。IPv6 アドレスを識別しない場合は、タグを前に付けません。