SMTP Authenticationの導入(Postfix編)
■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での設定は以下のとおりです。
- Outlook
Expressを起動し、「ツール」メニューから「アカウント」を選択。「メール」タブにある対象とするアカウント名をクリックして、「プロパティ」をクリックする。
- 「サーバー」タブをクリックして、画面下にある「送信メールサーバー」の下の「このサーバーは認証が必要」にチェックを入れる。
- 「設定」ボタンをクリックして「次のアカウントとパスワードでログオンする」にチェックを入れる。
- 「ログオン情報」の「次のアカウントとパスワードでログオンする」を選択し、saslpasswdで設定したアカウント名,パスワードを入力し,「OK」ボタンを押せば設定完了。
インストール・設定 − テスト