Oracle Linux 6.2 の Postfix 2.6.6 にSMTP認証を設定

Oracle Linux 6.2 にメール・サーバーを構築する第2章。Postfix は Cyrus SASL を使うことでSMTP認証を実現している。Cyrus SASL はいろいろな認証方法をサポートしているが、CRAM-MD5などの暗号化された方法はテレビなどの家電や Outlook Express などの古いメーラーが対応していないことが多いので、平文パスワードを使用するPLAIN (LOGIN) 認証をまずは設定する。ただし、平文パスワードをインターネットでそのまま使用するのは危険なので、経路を暗号化する SMTP over SSL/TLS を合わせて使用することにする。この記事では Oracle Linux 6.2 でSMTP認証を設定する方法を記載するが、Red Hat Enterprise Linux (RHEL) / CentOS / Scientific Linux でも同様だろう。SMTP over SSL/TLS の設定方法については別記事で扱う。

まずは Cyrus SASL をインストールしよう。PLAIN認証しか使用しないのであればcyrus-sasl-plainパッケージだけで良い。

パスワードの保存方法には /etc/sasldb2 を使った独自方式とPAM認証を使ったOSユーザーのパスワードと共通にする方法がある。今回はシングル・サインオンを目指してPAM認証を使用する。PAM認証を使用するsaslauthdサービスを起動する。

SMTP認証に関する設定をPostfixの /etc/postfix/main.cf に追加する。この設定で匿名でのログインを拒否し (noanonymous) 、SASL認証された場合 (permit_sasl_authenticated) または$mynetworksからの接続 (permit_mynetworks) は許可し、$mydestination 宛てでない接続 (reject_unauth_destination) は拒否するようになる。

設定ファイルを再読み込みし、TelnetからSMTPコマンドを直接実行して動作確認してみよう。以下ではLAN内のMacからGmailにメールを送信しており、EHLOコマンドを送信するとAUTHコマンドが応答されていることが分かる。送信するパスワードは username\0username\0password というフォーマットでMIMEエンコードする必要があるので、Perlで事前に作成している。

コメントを残す