CentOS 6.x のパッケージで提供される メール受信(POP3)サーバーに Dovecot、メール送信(SMTP)サーバーにPostfix を使用しています。また、ここで構築したメールサーバーを活用する目的で、メーリングリスト管理システム(Mailman)を導入する手順について説明しています。
メールサーバの利用者は不特定多数に提供するサービスではなく、自組織の限られたユーザーでの利用を想定しています。オフィス内に設置、活用するメールサーバーを想定していますので、併せてメーリングリストシステムも導入します。
以下のセキュリティポリシーを想定して構築します。
社内LAN、外部のインターネットからメール受信サーバーに接続する際は、SSL/TLS、及び STARTTLS により通信経路を暗号化し、スニッフィングによる機密情報の漏えい防止に配慮します。
送信サーバーには認証機構を儲けてスパムメールの温床にならないことを大前提に、通信経路も受信サーバーと同様に暗号化します。STARTTLS による暗号化保護のため、外部のドメインに対しても条件が揃えば、相手のメールサーバーまでの通信経路が保護されるSMTPサーバーを構築します。
送受信の通信経路を暗号化することと、外部から同じSMTPサーバを利用することで、同じ SMTPサーバを利用する社内のメールアカウント同士のメールのやり取りで情報の機密性が保たれることになります。
自組織内に設置したメールサーバーを積極的に活用する目的で、メーリングリストを運用、管理するためのツールを導入します。使い方や、考え方によってはセキュリティーホールそのものになる側面もあるので、運用に関するポリシーを十分検討した上で導入されることをお奨めします。
保守の観点から OS のリポジトリで供給される標準パッケージをインストールします。CentOS6.x 、RHEL6系であればほとんど同じだと思います。
メールサーバーは、"配送" と "受信" を行う二つのサーバーを構築する必要があるので設定項目は非常に多岐にわたります。また、通信経路を暗号化するためには、SSLサーバー証明書を準備したり、それに伴う設定も必要です。
構築時の問題の切り分けをハッキリさせるために、ポリシー通りに動作しているか確認しながら、ステップを踏んで構築していく必要があります。本項では順を追って説明します。
ちなみに CentOS6.x のパッケージで導入した場合、受信、送信に関するログは、/var/log/maillog に集約されています。
メールサーバーを構築するにあたり、本稿では最も重要な 以下の2点については触れていません。これらの設定が既に済んでいる、あるいは導入済みであることを前提に説明しています。
本稿で構築するサーバーは通信経路のSSL暗号化が目的ですが、それらに必要なサーバー証明書は、事前に別途取得しておく必要があります。
サーバー証明書の作成方法については、こちらを参照して下さい。本稿では割愛しています。このような独自CAによって発行した証明書を用いてサーバーをSSL化する場合の 運用ポリシーについても同じです。不特定多数に提供する目的のサーバーでは決して使用しないで下さい。
メールアドレスで言うところの @以降のドメインが、既に適切に運用されていることが条件です。これがないことには、インターネットサーバーは始まりませんので、ここについても本稿では触れていません。
ISPなどがユーザーに提供するメールサービスは、ユーザーがどんなメールクライアントを使用するのか分からないので、互換性を優先させるためにセキュリティの甘い認証方式を敢えて採用したり、
また、苦肉の策というか POP Berfore SMTP といったトリッキーな対策をすることが多かった様に思います。
最近はサーバー、クライアント側、双方にSSLに関する実装が進んだおかげで、その辺の互換性の問題も随分緩和されたように思います。本稿ではLAN内、あるいは組織の特定の部所において、社員が外部のネットワークから社内に独自に設置したメールサーバーを利用することを想定しています。
つまり、クライアントが使用するメーラーをある程度限定可能なので、メーラーとの互換性よりも、セキュリティに重点をおいた運用を想定しています。Thunderbird、iOS で確認しています。
MTAとはメールサーバーの中でメールの配送を行うプログラムのことです。メールサーバーを構築する上で検討の俎上に上がるだろう代表的なMTAに Sendmail、Postfix、qmail が上げられると思いますが3者とも特徴がハッキリしています。
長い歴史を持つMTAの代名詞的な存在が Sendmail です。他のサービスとの連携、開発用途において高い柔軟性と機能を有します。
8.9系まではセキュリティーホールの宝庫と揶揄されたMTAですが、8.12以降からはセキュリティ面で大幅な見直しが図られています。特徴は、m4プリプロセッサで設定を行う手間とやや難解な点。
ただしネットで最も情報が溢れているので、逆に初心者にはとっつき易いかもしれません。開発用途に向いた高い柔軟性の反面、扱い方によってはセキュリティーホールをつくり出す側面を併せ持っています。
サービスプロバイダのように大勢のユーザーにメールサービスを提供する用途、大規模なML運用においてはパフォーマンスに難があります。CentOS 4.x まで Sendmail が標準の MTA として採用されていました。
Sendmail 互換のMTAとして開発されており、Sendmail 向けに開発されたプログラムが利用できる互換インターフェイスを備えています。設定がSendmailに比べると容易であること。
また、セキュリティホールを生み出す側面は Sendmail 程ではなく、メール配送のパフォーマンスは Sendmail よりも優れます。
ちょうど、セキュリティ、パフォーマンス、設定のし易さ、全てにおいて qmail と中間的な立ち位置という印象があります。CentOS5 以降、Sendmail に代わり Postfix が デフォルトの MTA として採用されています。
メール配送の高速動作とセキュリティホールが少ない特徴を持つ MTA で、大規模なMLの運用によく用いられていました。自分は利用した事がないのでこちらを参照。 http://ja.wikipedia.org/wiki/Qmail