ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
![]() |
Oracle Solaris 11.1 での sendmail サービスの管理 Oracle Solaris 11.1 Information Library (日本語) |
sendmail のコンパイルに使用できるフラグと使用できないフラグ
MILTER (sendmail のメールフィルタ API)
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 から追加されたルールセット
sendmail の version 8.12 からのファイルの変更点
このセクションでは、メールシステムのソフトウェアとハードウェアのコンポーネントについて説明します。
各メールサービスには、少なくとも次のいずれかのソフトウェアコンポーネントが含まれます。
このセクションでは、次のソフトウェアコンポーネントについても説明します。
「メールユーザーエージェント」は、ユーザーとメール転送エージェント間のインタフェースとして機能するプログラムです。sendmail プログラムは、メール転送エージェントです。Oracle Solaris オペレーティングシステムは、次のメールユーザーエージェントを提供します。
/usr/bin/mail
/usr/bin/mailx
「メール転送エージェント」は、メールメッセージのルーティングとメールアドレスの解釈を行います。このエージェントは、「メールトランスポートエージェント」とも呼ばれます。Oracle Solaris オペレーティングシステムの転送エージェントは sendmail です。転送エージェントは次の機能を実行します。
メールユーザーエージェントからメッセージを受信する
宛先アドレスを認識する
適切な配信エージェントを選択してメールを配信する
ほかのメール転送エージェントからのメールを受信する
「ローカル配信エージェント」は、メールの配信プロトコルを実行するプログラムです。Oracle Solaris オペレーティングシステムには、次のローカル配信エージェントが提供されています。
UUCP ローカル配信エージェント (uux を使ってメールを配信する)
ローカル配信エージェント (標準の Oracle Solaris リリースでは mail.local)
「sendmail の version 8.12 からの変更点」 では、次の関連項目について説明します。
「メールプログラム」は、sendmail 固有の用語です。「メールプログラム」は sendmail によって使用され、カスタマイズされたローカル配信エージェントまたはカスタマイズされたメール転送エージェントの特定のインスタンスを特定します。sendmail.cf ファイルに少なくとも 1 つのメールプログラムを指定する必要があります。タスク情報については、「sendmail 構成を変更する」の 第 2 章メールサービス (タスク)を参照してください。このセクションでは、2 種類のメールプログラムについて説明します。
メールプログラムの詳細は、http://www.sendmail.org/m4/readme.html または /etc/mail/cf/README を参照してください。
SMTP はインターネットで使用される標準のメールプロトコルです。このプロトコルが、メールプログラムを定義します。
smtp は、ほかのサーバーへの標準 SMTP 転送機能を提供します。
esmtp は、ほかのサーバーへの拡張 SMTP 転送機能を提供します。
smtp8 は、8 ビットデータを MIME に変更することなく、ほかのサーバーに SMTP 転送機能を提供します。
dsmtp は、F=% メールプログラムフラグを使ってオンデマンド配信機能を提供します。「sendmail の version 8.12 からの MAILER() の宣言についての変更点」と 「sendmail の version 8.12 から追加された配信エージェントのフラグ」を参照してください。
UUCP の使用は、できるだけ避けてください。説明については、http://www.sendmail.org/m4/uucp_mailers.html を参照するか、/etc/mail/cf/README で USING UUCP MAILERS という文字列を検索してください。
UUCP が、メールプログラムを定義します。
$=U クラスの名前が uucp-old に送られます。suucp は、このメールプログラムの以前の名前です。uucp-old メールプログラムはヘッダーでは感嘆符を用いるアドレスを使用します。
$=Y クラスの名前が uucp-new に送られます。受信側の UUCP メールプログラムが単一の転送で複数の受信者を管理できる場合は、このメールプログラムを使用します。suucp は、このメールプログラムの以前の名前です。uucp-new メールプログラムはヘッダーで感嘆符を用いるアドレスも使用します。
構成に MAILER(smtp) も指定されている場合は、さらに次の 2 つのメールプログラムが定義されます。
このメールプログラムは、ドメインスタイルアドレスを使用し、基本的に SMTP のリライトルールを適用します。
$=Z クラスの名前が uucp-uudom に送られます。uucp-uudom と uucp-dom は、ドメインスタイルアドレスという同じヘッダーアドレス書式を使用します。
注 - smtp メールプログラムは UUCP メールプログラムを変更するので、.mc ファイルの MAILER(uucp) の前に必ず MAILER(smtp) を記述します。
「メールアドレス」には、受信者の名前と、メールメッセージが配信されるシステムが含まれます。ネームサービスを使用しない小さなメールシステムを管理する場合、メールのアドレス指定は簡単です。つまり、ログイン名がユーザーを一意に識別します。メールボックスを含む複数のシステムで構成されるメールシステム、または 1 つ以上のドメインで構成されるメールシステムを管理する場合は複雑になります。UUCP またはその他のメールシステムによってネットワーク外部のサーバーに接続する場合は、さらに複雑になります。次のセクションで、メールアドレスの各部とその複雑さを説明しています。
電子メールのアドレス指定には、ドメインが使用されます。「ドメイン」は、ネットワークアドレスの命名のためのディレクトリ構造です。ドメインは 1 つ以上の「サブドメイン」を持つことができます。アドレスのドメインとサブドメインは、ファイルシステムの階層と比較できます。サブディレクトリが上位のディレクトリに含まれるように、メールアドレスの各サブドメインもその右のドメインに含まれると考えられます。
表 3-7 最上位のドメイン
|
ドメインには大文字と小文字の区別がありません。アドレスのドメイン部分には、大文字、小文字、またはその両方を混合したものを、問題なく使用できます。
ネームサービスドメイン名とメールドメイン名を操作するときは、次のことに注意します。
sendmail プログラムは、デフォルトで NIS ドメイン名から最初のコンポーネントを取り除き、メールドメイン名とします。たとえば、NIS ドメイン名が bldg5.example.com の場合、そのメールドメイン名は example.com になります。
メールドメインアドレスは大文字と小文字の区別をしませんが、NIS ドメイン名は異なります。最善の結果のために、メールと NIS ドメイン名を設定するときは小文字を使用してください。
DNS ドメイン名とメールドメイン名は同じでなければなりません。
詳細は、「sendmail とネームサービスの相互作用」を参照してください。
一般に、メールアドレスは次のような書式になります。詳細は、「経路に依存しないメールアドレス」を参照してください。
user@subdomain. ... .subdomain2.subdomain1.top-level-domain
アドレスの @ 記号より左の部分はローカルアドレスです。ローカルアドレスには、次の内容を含めることができます。
別のメールトランスポートを使用するルーティングに関する情報 (たとえば、bob::vmsvax@gateway または smallberries%mill.uucp@gateway)
別名 (たとえば、iggy.ignatz)
アドレスの @ 記号より右の部分は、ローカルアドレスが位置するドメインレベルを示します。各サブドメインはドットで区切られます。アドレスのドメイン部分は、組織、物理的な場所、または地域を表すことができます。さらに、ドメイン情報の順序は階層的で、ローカルなサブドメインほど @ 記号に近くなります。
メールアドレスは、経路に依存しないアドレス指定ができます。経路に依存しないアドレス指定では、電子メールメッセージの発信者は、受信者の名前と最終の宛先を指定する必要があります。インターネットなどの高速ネットワークでは、経路に依存しないアドレスを使用します。経路に依存しないアドレスは次のような書式になります。
user@host.domain
UUCP 接続の経路に依存しないアドレスは次のような書式になります。
host.domain!user
コンピュータのドメイン階層命名スキームが普及したため、経路に依存しないアドレスがより一般的になってきました。実際、次に示すように、もっとも一般的な経路に依存しないアドレスはホスト名を省略し、電子メールメッセージの最終宛先の識別をドメインネームサービスに任せています。
user@domain
経路に依存しないアドレスは、まず @ 記号を検索して読み取られます。次に、ドメイン階層が右 (最上位) から左 (@ 記号の右側にあるもっとも固有な部分) へと読み取られます。
「メールボックス」は、電子メールメッセージの最終的な宛先となるファイルです。メールボックス名には、ユーザー名または postmaster などの特定の機能の名前を指定できます。メールボックスは、ユーザーのローカルシステムかリモートのメールサーバーのいずれかの /var/mail/username ファイルにあります。ただし、いずれの場合でも、メールボックスはメールが配信されるシステム上にあります。
ユーザーエージェントがメールスプールからメールを取り出し、ローカルメールボックスに容易に格納できるように、メールは常にローカルファイルシステムに配信される必要があります。ユーザーのメールボックスの宛先として、NFS でマウントされたファイルシステムを使用しないでください。特にリモートサーバーから /var/mail ファイルシステムをマウントしているメールクライアントには、直接メールを送信しないでください。この場合ユーザー宛てのメールは、クライアントのホスト名ではなく、メールサーバーにアドレス指定する必要があります。NFS でマウントされたファイルシステムは、メールの配信と処理に問題を起こすことがあります。
/etc/mail/aliases ファイルと NIS などのネームサービスは、電子メールアドレスの別名を作成するためのメカニズムを提供します。したがって、ユーザーは、個々のユーザーのメールボックスの正確なローカル名を知る必要はありません。
次の表に、特殊な目的のメールボックスに対する共通の命名規則をいくつか示します。
表 3-8 メールボックス名の書式についての規則
|
sendmail version 8 より、所有者の別名が存在する場合、グループの別名に送信されるメールの封筒の送信者は、所有者の別名から展開されるアドレスに変更されました。この変更によって、メールエラーは、送信者に返送されるのではなく、別名の所有者に送信されるようになりました。この変更によって、別名に送信されたメールは、別名の所有者から送信されたように見えます。次の別名の書式は、この変更に関連したいくつかの問題に対応します。
mygroup: :include:/pathname/mygroup.list owner-mygroup: mygroup-request mygroup-request: sandys, ignatz
この例では、mygroup の別名が、このグループの実際のメール別名です。owner-mygroup の別名は、エラーメッセージを受信します。mygroup-request の別名は、管理の要求に使用してください。この構造は、mygroup の別名に送信されたメールでは、封筒の送信者が mygroup-request に変更されることを意味します。
「別名 (alias) 」とは、もう 1 つの別の名前を指します。電子メールでは、メールボックスの場所を割り当てたり、メールリストを定義したりするために別名を使用できます。タスクマップについては、「メール別名ファイルの管理 (タスクマップ)」の 第 2 章メールサービス (タスク)を参照してください。この章の 「メール別名ファイル」も参照してください。
大きなサイトでは通常、メール別名は、メールボックスの場所を定義します。メール別名を提供することは、複数の部屋を占有する大きな会社の個人のアドレスに部屋番号を含めるようなものです。部屋番号を提供しない場合は、メールは中央アドレスに配信されます。部屋番号がなければ、ビルの内部のどこにメールを配信するかを特定するために余分な労力が必要になります。そして、誤りが発生する可能性も増加します。たとえば、同じ建物に Kevin Smith という名前の人が 2 人いる場合、一方だけがメールを受け取ることになる可能性があります。この問題を解決するには、それぞれの Kevin Smith のアドレスに部屋番号を追加する必要があります。
メールリストを作成するときは、なるべくドメインの場所に依存しないアドレスを使用してください。別名ファイルの移植性と柔軟性を高めるため、別名エントリをできるかぎり一般的でシステムに依存しない形式にしてください。たとえば、システム mars のドメイン example.com に ignatz というユーザー名がある場合、別名は ignatz@mars ではなく、ignatz@example としてください。ユーザー ignatz がシステム名を変更しても、example ドメインには存在し続ける場合、システム名の変更を反映するように別名ファイルを更新する必要はありません。
別名エントリを作成するときは、1 行ごとに 1 つの別名を入力します。ユーザーのシステム名を含むエントリは 1 つだけにしてください。たとえば、ユーザー ignatz には、次のエントリを作成できます。
ignatz: iggy.ignatz iggyi: iggy.ignatz iggy.ignatz: ignatz@mars
ローカル名やドメインに別名を作成できます。たとえば、システム mars にメールボックスがある、ドメイン planets 内のユーザー fred の別名エントリでは、NIS 別名マップに次のエントリを作成できます。
fred: fred@planets
ドメイン外のユーザーを含むメールリストを作成するときは、ユーザー名とドメイン名を持つ別名を作成してください。たとえば、example.com ドメインの privet システムに smallberries というユーザーが存在する場合は、smallberries@example.com という別名を作成します。送信者の電子メールアドレスは、メールがユーザードメイン外に発信されるときは、完全指定ドメイン名に自動的に変換されます。
次に、メール別名のファイルを作成して管理する方法を示します。
NIS aliases マップ、または、ローカルの /etc/mail/aliases ファイルでグローバルな使用のためのメール別名を作成できます。また、同じ別名ファイルを使用するメールリストを作成して管理することができます。
メールサービスの構成によっては、NIS ネームサービスを使って別名を管理し、グローバルな aliases データベースを保持できます。または、すべてのローカル /etc/mail/aliases ファイルを更新して、別名の同期を維持することもできます。
また、ユーザー自身が別名を作成して使用できます。ユーザーは、別名をユーザーだけが使用できるようにローカル ~/.mailrc ファイルで作成することも、だれでも使用できるようにローカル /etc/mail/aliases ファイルで作成することもできます。通常、ユーザーは NIS 別名ファイルの作成および管理はできません。
メールの構成に必要な 3 つの要素は、単一のシステムによって提供することも別々のシステムによって提供することもできます。
ユーザーがドメイン外のネットワークと通信をするためには、4 番目の要素であるメールゲートウェイを追加する必要があります。詳細は、「メールゲートウェイ」を参照してください。次のセクションでは各ハードウェアコンポーネントについて説明しています。
「メールホスト」は、ネットワークのメインのメールマシンに指定するマシンです。メールホストはサイトにおいて、ほかのシステムでは配信できないメールを転送するためのマシンになります。hosts データベースにシステムをメールホストとして指定するには、ローカル /etc/hosts ファイルの IP アドレスの右に mailhost を追加します。または、ネームサービスのホストファイルに mailhost を同じように追加することもできます。タスク情報の詳細については、「メールホストを設定する方法」の 第 2 章メールサービス (タスク)を参照してください。
メールホストの候補は、ネットワークからグローバルなインターネットネットワークへのルーターとして構成されたシステムです。詳細は、『Oracle Solaris 11.1 での UUCP および PPP を使用したシリアルネットワークの管理』の第 1 章「Solaris PPP 4.0 (概要)」、『Oracle Solaris 11.1 での UUCP および PPP を使用したシリアルネットワークの管理』の第 10 章「UUCP (概要)」、および『Oracle Solaris 11.1 ネットワークの構成と管理』の「IPv4 ルーターの構成」を参照してください。ローカルネットワークのどのシステムにもモデムがない場合は、システムの 1 つをメールホストに指定します。
サイトの中には、タイムシェアリング構成でネットワークに接続されていないスタンドアロンのマシンを使用するものがあります。具体的に言うと、スタンドアロンのマシンが、シリアルポートに接続された端末として機能する場合です。このような構成では、スタンドアロンのシステムをシングルシステムネットワークのメールホストに指定することで、電子メールを設定できます。ハードウェアコンポーネントの概要に、典型的な電子メール構成を示す図があります。
「メールボックス」は、特定のユーザーの電子メールを含む単一のファイルです。メールは、ローカルマシンまたはリモートサーバーのユーザーのメールボックスが存在するシステムに配信されます。「メールサーバー」は、/var/mail ディレクトリにユーザーのメールボックスを保持しているいずれかのシステムになります。タスク情報については、「メールサーバーを設定する方法」の 第 2 章メールサービス (タスク)を参照してください。
メールサーバーはクライアントからすべてのメールをルーティングします。クライアントがメールを送信すると、メールサーバーは配信のためにそのメールをキューに入れます。メールがキューに入れられたら、ユーザーはこれらのメールメッセージを失わずに、クライアントをリブートしたり、電源を切ったりすることができます。受信者がクライアントからメールを受け取ると、メッセージの From 行のパスには、メールサーバー名が含まれます。受信者が応答すると、その応答はユーザーのメールボックスに送られます。メールサーバーとして適しているのは、ユーザーにホームディレクトリを提供するシステムか、定期的にバックアップされるシステムです。
メールサーバーがユーザーのローカルシステムでない場合、構成内で NFS ソフト ウェアを使用するユーザーは、root アクセスがあれば、/etc/vfstab ファイルを使用することによって、/var/mail ディレクトリをマウントできます。それ以外の場合は、オートマウンタを使用できます。NFS サポートが利用できない場合、ユーザーはサーバーにログインしてメールを読み込めます。
ネットワーク上のユーザーが、オーディオファイル、DTP システムからのファイルなどほかの形式のファイルを送信する場合は、メールボックスのメールサーバーには、さらに多くの領域を割り当てる必要があります。
全メールボックス用に 1 台のメールサーバーを設定すると、バックアップ作業が簡単になります。メールが多くのシステムに分散しているとバックアップ作業が困難になる場合があります。1 台のサーバーに多くのメールボックスを保存する場合の短所は、サーバーに障害が発生した場合に多くのユーザーが影響を受けることです。ただし、十分なバックアップ機能を提供すれば、1 台のサーバーを採用する価値があります。
「メールクライアント」は、メールサーバー上にメールボックスを持っている、メールサービスのユーザーです。メールクライアントにはさらに、/etc/mail/aliases ファイルで、メールボックスの位置を示すメール別名が設定されています。タスク情報については、「メールクライアントを設定する方法」の 第 2 章メールサービス (タスク)を参照してください。
「メールゲートウェイ」は、異なる通信プロトコルを実行するネットワーク間の接続を処理したり、同じプロトコルを使用する異なるネットワーク間の通信を処理するマシンです。たとえば、メールゲートウェイでは、SNA (Systems Network Architecture) プロトコルセットを実行するネットワークに、TCP/IP ネットワークを接続する場合もあります。
設定のもっとも簡単なメールゲートウェイは、同じプロトコルかメールプログラムを使用する 2 つのネットワークを接続するものです。このシステムでは、sendmail がドメインで受信者を見つけられないアドレスのあるメールを処理します。メールゲートウェイがある場合、sendmail はメールゲートウェイを使用して、ドメイン外でメールの送受信を行います。
2 つのネットワーク間には、次の図に示すように内容の異なるメールプログラムを使ってメールゲートウェイを設定できます。この構成をサポートするには、メールゲートウェイシステムで sendmail.cf ファイルをカスタマイズする必要がありますが、これは困難で時間のかかる作業になる場合もあります。
図 3-1 異なる通信プロトコル間のゲートウェイ
インターネットに接続できるマシンがある場合は、そのマシンをメールゲートウェイとして構成できます。メールゲートウェイを構成するときは、まずサイトのセキュリティー要件を慎重に考慮する必要があります。社内ネットワークをほかのネットワークと接続するには、ファイアウォールゲートウェイを構築し、それをメールゲートウェイとして設定しなければならない場合があります。タスク情報については、「メールゲートウェイを設定する方法」の 第 2 章メールサービス (タスク)を参照してください。