Postfix とdovecotを使ってSMTP AUTHを使えるようにする必要性が出てきた。
というのも、gmailではSMTP AUTHが必須になっているので、このテストのためにもこの設定が必要だ。

このSMTP AUTHの問題さえ解決できれば私が作っているAdobe AIR版SMTPライブラリでメールがGmailを使って送れるようになる。
すでに、POP3版もできているので、これがそろえば送受信が行える。

幸いにも認証方法はLOGIN PLAINになっているので、dovecotで十分だ。
ちなみに、Postfixとdovecotのインストールがされていることが前提なので注意。

さて、PostfixでSMTP AUTHを使えるようにするにはというのをさがしてみるとPostfixの再インストールがされているものばかり。
しかし、最近インストールしたものなので、再インストールは必要ないだろうということで、それを確認する。

#postconf -a
cyrus
dovecot

SMTPの認証にcyrusというのとdovecotが使えると出力されているので、問題なくdovecotが使えるのが確認できた。
このあたりの確認方法は

man postconf

と打てば使いかたは出てくる。

-a List the available SASL server plug-in types. The SASL plug-in type is selected
with the smtpd_sasl_type configuration parameter by specifying one of the names
listed below.
cyrus This server plug-in is available when Postfix is built with Cyrus SASL sup-
port.
dovecot
This server plug-in requires the Dovecot authentication server.
This feature is available with Postfix 2.3 and later.

と出てきたので、Version が2.3より新しければだいたい大丈夫なのかもしれない。

また、postconfはこれから設定ファイルを変更するのだが、その設定がきちんと設定されているかなどを確認するのにも使う。
(私自身、スペルを間違ってしまってはまってしまったなんて時に、これを使って再確認する。)

さて、Postfixとdovecotの設定を行う。

詳しい設定は、http://www.postfix.org/SASL_README.html#build_dovecotにあるので、こちらを見てほしい。

しかし、ここではプログラム確認のためのサーバなのでセキュリティやら何やらの設定はいらない。
できるだけ、何の制約もなく使えるようにしたいので、必要最低限の設定を行う。
なので、実際の運用に使うものの設定ではないので、ご注意頂きたい。

/etc/postfix/main.cf 以下を追加

smtpd_sasl_auth_enable = yes
smtpd_sasl_authenticated_header = yes
broken_sasl_auth_clients = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth

/<どこかのパス>/dovecot.conf
以下のような記述が既にあるので、下記を参考に変更、もしくは頭の#を取って設定を有効にする。

auth default {
mechanisms = plain login
:
途中省略
:
socket listen {
  client {
  path = /var/spool/postfix/private/auth
  mode = 0660
  user = postfix
  group = postfix
  }
 }
}

これで、postfixとdovecotを再起動すれば問題ない。
ちなみに、テストで

$telnet localhsot 25 <-- (入力)
220 localhost ESMTP Postfix
EHLO localhost <-- (入力)
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-AUTH PLAIN
250-AUTH=PLAIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
AUTH LOGIN <-- (入力)
334 VXNlcm5hbWU6
xxxxxxxxxx <-- (入力)ここにLogin Userをbase64した形で入力
334 UGFzc3dvcmQ6
yyyyyyyyyy <-- (入力)ここにPasswordをbase64した形で入力
235 2.0.0 Authentication successful
QUIT <-- (入力)
221 2.0.0 Bye

ちなみに、
334 VXNlcm5hbWU6
などのように出力されるが、

これは、
334 Username:
と出力されている。VX..の部分がBASE64でエンコードされているだけだ。
また、UGFzc3dvcmQ6は「Password:」と出力されている。

このあたりが、BASE64でどうせセキュリティがほとんどないのに、このようになっている意味はよくわからない。

お仕事のご依頼・相談を承ります
この記事に関連するお仕事のご依頼やご相談をお待ちしております。 詳しくは、こちら

Leave a Reply

お仕事のご依頼・相談
この記事に関連するお仕事のご依頼やご相談をお待ちしております。 詳しくは、こちら
ソフトウェア&ライブラリ




ライブラリ
airxmail(en)
AIR版メール送受信ライブラリ
airxzip
AIR版ZIP圧縮・解凍ライブラリ
執筆書籍
本、雑誌等

WEB記事:CodeZine
執筆記事はこちら
カレンダー
2009年7月
« 6月   8月 »
 12345
6789101112
13141516171819
20212223242526
2728293031  

カスタム検索
RSS
Add to Google < !–adsense–>
アーカイブ
カテゴリ
にほんブログ村 IT技術ブログへ