SMTP Authenticationの導入(Postfix編)

Mail System Postfix SMTP-Auth SMTP-Auth+TLS SMTP+Virtual Qpopper Qpopper/SSL Courier-IMAP FetchMail Procmail WebMail AntiVirus Relay Mail
インストール・設定  −  テスト

■SMTP AUTHのテスト

Postfixを起動したら,SMTP AUTHのテストを行います。下記のように、telnetでローカルホスト、ポート25番に接続して、「EHLO localhot」と入力した時に、「AUTH PLAIN LOGIN DIGEST-MD5 CRAM-MD5」と表示されるかを確認しましょう。(smtpd_sasl_security_optionsでPLAINでの認証をしないように設定した場合は「250-AUTH DIGEST-MD5 CRAM-MD5」と表示されます。)
本行の下の、「250-AUTH=PLAIN LOGIN DIGEST-MD5 CRAM-MD5」は、broken_sasl_auth_clientsでOutlook、Outlook Expressで使用するように設定にした場合に表示されます。
$ telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mail.aconus.com ESMTP Postfix
EHLO localhost ←(1)
250-mail.aconus.com
250-PIPELINING
250-SIZE 10240000
250-STARTTLS
250-ETRN
250-AUTH PLAIN LOGIN DIGEST-MD5 CRAM-MD5 ←(2)
250-AUTH=PLAIN LOGIN DIGEST-MD5 CRAM-MD5
←(2) 
250 8BITMIME
QUIT
 (1) 「EHLO localhost」と入力する。
 (2) 「250-AUTH・・・・」を確認する。
次に、saslpasswdで設定したパスワードをエンコードして、正しく認証が行われるかをチェックします。
例えば、前述のパスワードの作成で「ユーザ名:oyaji」、「パスワード:hogehoge」でパスワードを作成した場合、ユーザ名パスワードを以下のようにエンコードします。
# printf 'ユーザ名\0ユーザ名\0パスワード' | mmencode 
具体的には、以下のようになります。
# printf 'oyaji\0oyaji\0hogehoge' | mmencode
b3lhamkAb3lhamkAaG9nZWhvZ2U=
なお、最近のデストリには mmencode が入っていないことが多いので、以下の方法でエンコードしたほうが確実です。MIME::Base64 が万が一ない場合には、http://www.cpan.org/ から入手できます。

# perl -MMIME::Base64 -e 'print encode_base64("ユーザ名\0ユーザ名\0パスワード");'
具体的には、以下のようになります。
# perl -MMIME::Base64 -e 'print encode_base64("oyaji\0oyaji\0hogehoge");'
b3lhamkAb3lhamkAaG9nZWhvZ2U=
ここで、前述と同様に、Telnetでlocalhostのポート25番に接続して、「EHLO localhost]と入力した後、エンコードしたユーザ名パスワードを入力して、正常に認証されるかテストします。
# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mail.aconus.com ESMTP Postfix
EHLO localhost ←(1)
250-mail.aconus.com
250-PIPELINING
250-SIZE 10240000
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN DIGEST-MD5 CRAM-MD5
250-AUTH=PLAIN LOGIN DIGEST-MD5 CRAM-MD5
250 8BITMIME
AUTH PLAIN b3lhamkAb3lhamkAaG9nZWhvZ2U= ←(2)
235 Authentication successful ←(3)
QUIT
221 Bye
 (1) 「EHLO localhost」と入力する。
 (2) エンコードしたユーザ名パスワードを入力する。
 (3) 認証成功を確認する。誤ったユーザ名パスワードを入力すると「535 Error: authentication failed」と表示され、認証に失敗していることを確認する。 

■メールソフト(Outlook Express)によるテスト

ここまでは,実際にメールソフトを利用して,SMTP AUTHが機能しているかを確認します。テストしたメールソフトは、おやじが使用しているOutlook Expressです。Outlook ExpressはPLAIN認証にしか対応していませんので、CARM-MD5等を利用した認証チェックの動作確認はしていませんが、ここまで、動作していれば問題なく動作すると思います。(評価版を手に入れて確認すればいいのでしょうが、申し訳有りません横着してます。)
おやじは、ダイヤルアップで接続してテストしましたが、取り敢えずLAN内のクライアントからテストするのであれば、Postfixのmail.cfで設定した「smtpd_recipient_restrictions =」の中の「permit_mynetworks」を削除して、テストすればいいと思います。最終的には、外部からアクセスしてテストしておきましょう。(いざ使おうとして使えなかったら洒落になりませんから)

◆Outlook Expressでの設定

Outlook Expressでの設定は以下のとおりです。
  1. Outlook Expressを起動し、「ツール」メニューから「アカウント」を選択。「メール」タブにある対象とするアカウント名をクリックして、「プロパティ」をクリックする。

  2. 「サーバー」タブをクリックして、画面下にある「送信メールサーバー」の下の「このサーバーは認証が必要」にチェックを入れる。

  3. 「設定」ボタンをクリックして「次のアカウントとパスワードでログオンする」にチェックを入れる。

  4. 「ログオン情報」の「次のアカウントとパスワードでログオンする」を選択し、saslpasswdで設定したアカウント名,パスワードを入力し,「OK」ボタンを押せば設定完了。

Mail System Postfix SMTP-Auth SMTP-Auth+TLS SMTP+Virtual Qpopper Qpopper/SSL Courier-IMAP FetchMail Procmail WebMail AntiVirus Relay Mail

インストール・設定  −  テスト