メールサーバのクイックセットアップ①
メールサーバのクイックセットアップ②
ここから1つずつ認証や暗号化等の設定を追加していきます。
なお、主な環境は以下の通りです。
OS : CentOS6.5
MTA : postfix2.6.6
MRA : dovecot2.0.9
まずは、SMTP-AUTH(送信メール認証)機能を追加します。
※2016/05/06 一部加筆
設定の前に、SMTP-AUTHについて、(自分の頭の整理のために)ざっと説明します。
- もともとメールシステムは、SMTPサーバを使って、誰でも、匿名で、自由にメールを送信することができた。(そもそもコンピュータを使用する人自体が極端に限られていたので、悪意を持ったメールを送信する事自体が想定されていなかった。)
- コンピュータの普及に伴いスパムメール送信や、不正中継の悪用等が増え、対策が必要になった。
- その対策の1つとして認証機能があり、メールを送信するためには、「ユーザ名」「パスワード」を用いてログインすることが求められる。
- サーバ管理者の立場からすると、第三者が自分のメールサーバを不正に使用することを防止できる。
以下、具体的な設定方法に移ります。
まず、SMTP-AUTHの実装には、認証システムを提供するライブラリ=SASLが必要となります。SASLにはCyrus-SASLとDovecot-SASLがありますが、ここではDovecot-SASLを用います。
Dovecot-SASLを用いるので、Postfixだけでなく、Dovecotについても、設定の変更が必要になります。
① Postfixの設定
# postconf -a
(Dovecot と返ってくればOK)
2./etc/postfix/main.cf の末尾に、次のパラメータを追記
・smtpd_sasl_type = dovecot
⇒ SASLプラグインタイプの設定
・smtpd_sasl_auth_enable = yes
⇒ SASL認証を有効にする
・smtpd_sasl_path = private/auth
⇒ 認証ソケットファイルの場所(/var/spool/postfixからの相対パス)。
ソケットファイルはDovecotを再起動すると自動で作成される。
・smtpd_recipient_restrictions = permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination
⇒ 認証を通過すればリレーを許可する設定を追記
mynetworks 以外のネットワークからも、メール送信が可能になる。
以下2つはオプションで。
・broken_sasl_auth_clients = yes
⇒ SASL認証で[AUTH=PLAIN]を使っているクライアントソフト(古いOutlook等)
での認証を可能とする。
・smtpd_sasl_authenticated_header = yes
⇒ Received:フィールドに認証されたユーザ名を表示
3.Postfixの設定を読み込む。
# postfix reload
② Dovecotの設定
・auth mechanisms = plain login
⇒ 平文パスワードを利用する。
2./etc/dovecot/conf.d/10-master.conf
・unix_listener /var/spool/postfix/private/auth {
mode = 0660
user = postfix
group = postfix
}
3.Dovecotを再起動
# service dovecot restart
③ telnet でログインテストしてみる。
1.準備
ログインには、ユーザ名、パスワードをBase64でエンコードした文字列を用いる。
下記の様にをBase64でエンコードする。
$ perl -MMIME::Base64 -e 'print encode_base64("ユーザ名\0ユーザ名\0パスワード”);’下記の様にをBase64でエンコードする。
エンコードされた文字列が出力される。
2.telnet で25番ポートに接続
2.telnet で25番ポートに接続
telnet localhost 25
Trying ::1...
Connected to localhost.
Escape character is '^]'.
220 mail.○○○○.mydns.jp ESMTP Postfix
EHLO mail.○○○○.mydns.jp (← 『EHLO ホスト名』を入力)
250-mail.○○○○.mydns.jp
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-AUTH PLAIN
250-AUTH=PLAIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
AUTH PLAIN エンコードされた文字列 (←AUTH PLAIN に続いてエンコードされた文字列を入力)
235 2.7.0 Authentication successful (←ログイン成功!)
QUIT
221 2.0.0 Bye
Connection closed by foreign host.
※手順通りにやっても正常にログインできない事象が発生。パスワードが数字から始まるとダメみたい。
(参考:postfixでsmtpログイン出来ない)
但し、ThunderBirdからは正常にログイン&メール送信が可能。
④ ThunderBird で確認してみる。
送信サーバの設定をして、認証方式を『平文のパスワード認証』に設定する。
メール送信時にパスワードが求められるようになった。
(パスワードマネージャにパスワードが保存されていたら、入力は求められない。
テストしたい場合はパスワードマネージャから一旦削除する。)
また、クイックセットアップの段階では“Relay access denied” で、メール送信に失敗
していた場合でも、smtpd_recipient_restrictions に permit_sasl_authenticated が
追加されたため、メール送信可能に。
0 件のコメント:
コメントを投稿