ubuntuでSMTPサーバの構築(SMTP-AUTHの設定)
devocotを用いてSMTP-AUTHの設定を行ったのでメモ
参考ページはこちら
http://www.asahi-net.or.jp/~aa4t-nngk/postfix-389ds5.html#cyruspostfixconf
各設定の意味まで細かに説明してあったため大変わかりやすかったです。
設定はこちら
/etc/postfix/main.cf
# SMTP-AUTHの有効化 smtpd_sasl_auth_enable = yes # ドメイン名なしで認証を求めてきた場合に補完するドメイン名 smtpd_sasl_local_domain = $mydomain # dovecotによってsaslの機能を提供 smtpd_sasl_type = dovecot # ソケットファイルのパス(postfixのスプールディレクトリの基底からの相対パス) smtpd_sasl_path = private/auth # EHLO時に’AUTH=’を返答するための設定(古いメールクライアント用) broken_sasl_auth_clients = yes # saslの制限事項の設定 smtpd_sasl_security_options = noanonymous # RCPT TOを受け取った時点で適用される規制を設定 smtpd_recipient_restrictions = check_client_access cidr:/etc/postfix/authclients, permit_sasl_authenticated, reject_unauth_destination
ここで注意なのでsmtpdとすること。クライアント用の設定としてsmtpという接頭辞から始まるものもあるためそちらを書いてしまうと当然サーバ用の設定としては機能しない。自分はそれで一度ハマった。
/etc/postfix/authclientsに以下を書いて保存
127.0.0.0/8 permit
.dbファイルへ変換
$ postmap /etc/postfix/authclients
ここで行っていることは、自ホストのみSMTP-AUTHの認証なしで外部へメールを送れるようにするということ。
また、dovecotの設定を書く
/etc/dovecot/conf.d/10-auth.conf
auth-mechanisms = plain auth default { socket listen { client { path = /var/spool/postfix/private/auth mode = 0660 user = postfix group = postfix } } }
この設定で/var/spool/postfix/private/authとしてsaslの認証ソケットを提供できる
以上を設定したらサービスの再起動
$ sudo service postfix restart $ sudo service dovecot restart
動作確認はtelnetを用いる
認証にはハッシュ化したdovecot用のユーザのパスワードが必要なので以下をコピっておく
dovecotの設定にかんしては以前メモした
http://jsapachehtml.hatenablog.com/entry/2014/01/23/230029
# user名がhoge、passwardがfugaのとき $ perl -MMIME::Base64 -e 'print encode_base64("hoge\0hoge\0fuga");' aG9nZQBob2dlAGZ1Z2E=
telnetにて認証確認
$ telnet localhost 25 EHLO localhost
出力の中にAUTHが含まれていれば認証の機能自体は設定されている
250-AUTH PLAIN
ちなみにbroken_sasl_auth_clients = yesを設定している場合は250-AUTH=PLAINも出力されているはず
そのままtelnet上で以下を打って正しく認証されるか確認
AUTH PLAIN aG9nZQBob2dlAGZ1Z2E=
以下のように出力されれば認証成功
235 2.7.0 Authentication successful
プロのための Linuxシステム構築・運用技術 (Software Design plus)
- 作者: 中井悦司
- 出版社/メーカー: 技術評論社
- 発売日: 2010/12/22
- メディア: 大型本
- 購入: 21人 クリック: 411回
- この商品を含むブログ (38件) を見る