Solaris 9 プラットフォームでの Sendmail の構成執筆者: Eric Rinker この記事の目的は、Solaris 9 オペレーティングシステムが稼働するマシンで、Sendmail を変更する方法の基礎知識をお伝えすることです。 この記事は、UNIX オペレーティングシステムの標準原則について、実務経験に基づいたある程度の知識を持っているエンジニアを対象に書かれています。 この記事を活用するには、ファイルの編集方法やプログラムの実行方法を理解し、ルートでアクセスできることが必要です。 電子メールの仕組み (Mail Transfer Agent)電子メールを処理するアプリケーションには、Mail User Agent (MUA) および Mail Transfer Agent (MTA) の 2 種類があります。 Mail User Agent は、電子メールメッセージを簡単に作成、表示、および削除できるようにするアプリケーションです。 例として、UNIX 環境の場合は mail や elm、Windows 環境の場合は Eudora や Outlook が挙げられます。 Netscape および Explorer は、MUA も兼ねることができるインターネットブラウザです。 Mail Transfer Agent は、1 台のマシンから電子メールを転送します。通常、各マシンは 1 つの MTA のみを使用します。 Sendmail はまさにこの役割を果たす MTA ですが、MTA にはほかにも Exim、Postfix、および Qmail があります。 Sendmail の進化Sendmail は、世界でもっとも広範に使用されている最古の MTA の 1 つです。 HP の HP-UX、IBM の AIX、および Sun Microsystems の Solaris OS など、大部分の UNIX ディストリビューションにとって、デフォルトの MTA になっています。 Sendmail は古くからあるため、構成および維持管理が複雑になりましたが、その欠点を万能な機能で埋め合わせています。 Sendmail は 30 年以上前に登場し、電子メールをある場所からほかの場所へ転送するための、堅牢で機能満載のツールへと進化してきました。 もともと Sendmail は、ハードディスクドライブが洗濯機並みの大きさでありながら、使用できるストレージが 64K バイトしかなかった時代に設計されたものです。そのためあらゆる手段を利用して領域を節約していました。 すべてを簡にして要を得たものにするため、Sendmail の構成ファイルは、「メールを受信するドメイン (Domains we receive mail for)」を意味する "Fw" や、「ローカルの電子メールをすべて取得するユーザー ("Who gets all local email")」を意味する "DH" など、短いパラメータを使用していました。 やむをえない理由があったとはいえ、この方法は初心者にはわかりづらいものです。 しかし下位互換性を持たせるために、これらの短いパラメータは、Sendmail の現バージョンの構成ファイルでも使用されています。 年とともに Sendmail に機能が追加されるにつれて、構成プロセスがいよいよ複雑になりました。 管理者にとって使いやすくなるように、Sendmail は、m4 ベースのコンパイルおよび構成モデルを使用するようになっています。 管理者と構築および構成プロセスの間にあるこのレイヤによって、新しい対話方法を処理するように古いプログラムをアップグレードしなくても、Sendmail を簡単に設定および維持管理できるようになります。 構成Sendmail について知るべきすべてのことをこの記事に網羅しようとすると、数百ページを費やさなくてはならず、読むのも一苦労という結果になります。 そこで、一般に見られる 3 つの構成、「Mail Server」、「Incoming Relay」、および「Outgoing Only」に絞って説明することにします。 Sendmail の動作を変更する場合、
サンプルの場合、 cd /usr/lib/mail/cf まず、3 つの構成すべてで共有される共通の要素があります。 最小限、次のファイルが含まれています。 OSTYPE(`solaris8')dnl DOMAIN(`generic')dnl MAILER(`local')dnl MAILER(`smtp')dnl
Mail Server は、受信メールに使用される代表的なサーバーです。 user@domain のメールを受信してユーザーのローカルメールボックスに配信し、外部の世界に配信するためキューに入れて処理します。 1 点のみ変更してください。 つまり、ローカルアカウントにする各ドメインを 最終的な構成: OSTYPE(`solaris8')dnl MAILER(`local')dnl MAILER(`smtp')dnlIncoming Relay Incoming Relay は、会社のファイアウォールの外側にある社内の電子メールサーバーでよく使用される構成です。 電子メールを蓄積しないで、会社のメールサーバーとして、ファイアウォールの内側にある事前定義されているサーバーに渡します。 この設定は、フィルタリングを実装するには完璧です。このマシンでは、通常使用されるメールサーバーのタスクのうち、フィルタリング以外のタスクは処理しないからです。 Incoming Relay を構成するには、まずリレーサーバー情報を追加する必要があります。 この場合、すべてを define(`SMART_HOST', 'relay.mydomain.com')dnl 次に、メールがこのマシン経由でリレーされるようにする必要があります。 最良の方法は、内部サーバーによってサポートされるドメインとの間でのみ、メールをリレーすることです。 次のオプションは、このサーバーを介してメールを送信または受信できるドメインのリストとして、/etc/mail/relay-domains ファイルを使用するように、sendmail に通知します。 FEATURE(`relay_entire_domain')dnl これで、構成は終了しました。 サーバーは、ローカルアカウントを除いた /etc/mail/relay-domains ファイル内のドメインとの間でやりとりするメールを、 最終的な構成: OSTYPE(`solaris8')dnl DOMAIN(`solaris-antispam')dnl define(`SMART_HOST', 'relay.mydomain.com')dnl FEATURE(`relay_entire_domain')dnl MAILER(`local')dnl MAILER(`smtp')dnlOutgoing Only セキュリティー上、無差別的なメールリレーは設定しないことをお勧めします。 すべてのマシンは、MTA を使用して電子メールを送信する必要があり、プログラムによっては SMTP サーバーを介して電子メールをリレーする機能が必要です。 このような要件の場合、ローカルサービスのメールをリレーしながらシステムをオープンリレーにならないようにセキュリティー保護するには、ループバックアドレスにのみ接続するように Sendmail を構成します。 Sendmail を発信専用にするには、Sendmail がリモートホストからのメールを受信しないようにする必要があります。 これには、ローカルのループバックアドレスのみを、Sendmail に強制的に使用させます。 DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA') その他のオプションは不要です。Sendmail は、デフォルトでローカルマシンから外部へメールを転送します。 最終的な構成: OSTYPE(`solaris8')dnl 次の学習ステップリレーサーバーのオプションの詳細については、sendmail.org のヒント、Allowing controlled SMTP relaying in Sendmail 8.9 and later を参照してください。 特に、access_db オプションを使用して、より堅牢な、スパム対策のフィルタリング用リレーサーバーを構成する方法の項をお読みください。 変更方法がわかったので、どのような変更を行うかを決定できるようになりました。 まず、 謝辞この記事をレビューしてくれた Sun Microsystems の John Beck に謝意を表します。 Unless otherwise licensed, code in all technical manuals herein (including articles, FAQs, samples) is provided under this License. |
BigAdmin SubscriptionsBigAdmin Areas
BigAdmin Sun Center
BigAdmin Topics |