NO IMAGE

Postfix SMTP over SSL の設定と動作確認

■SMTP-AUTHを設定

SMTP-AUTH は、SMTP Authentication の略。
SMTP-AUTH の実現には、SASL(Simple Authentication and Security Layer)という認証システムを提供するライブラリが必要になります。
現状のPostfixが対応しているSASLライブラリは、postconf コマンドで表示可能。

# postconf -a
cyrus
dovecot

Cyrus-SASL ライブラリと Dovecot-SASL ライブラリが使えるようです。
今回は、Postfix と Dovecot に親和性が高い Dovecot-SASL ライブラリを使用します。
(下記、smtpd_sasl_type = で指定します。)

 

●Postfix の設定ファイル main.cf を編集します。

# vi /etc/postfix/main.cf

最後部に以下の記述を追加。

# TLS Setting
smtpd_use_tls = yes
smtpd_tls_loglevel = 1
smtpd_tls_cert_file = /etc/pki/dovecot/certs/dovecot.pem
smtpd_tls_key_file = /etc/pki/dovecot/private/dovecot.pem
smtpd_tls_session_cache_database = btree:/etc/postfix/smtpd_scache
smtpd_tls_session_cache_timeout = 3600s

# SASL Setting
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 の設定ファイル 10-master.conf を編集。

# vi /etc/dovecot/conf.d/10-master.conf

service auth { の部分を修正・追加します。

service auth {
  # auth_socket_path points to this userdb socket by default. It's typically
  # used by dovecot-lda, doveadm, possibly imap process, etc. Its default
  # permissions make it readable only by root, but you may need to relax these
  # permissions. Users that have access to this socket are able to get a list
  # of all usernames and get results of everyone's userdb lookups.
  #unix_listener auth-userdb {
    #mode = 0600
    #user =
    #group =
  #}

  # Postfix smtp-auth
  unix_listener /var/spool/postfix/private/auth {
    mode = 0666
    user = postfix
    group = postfix
  }

  # Auth process is run as this user.
  #user = $default_internal_user
}

Dovecot を再起動。

# service dovecot restart

 

■SMTP over SSLを設定

メールサーバ「Postfix」へのSMTP接続時、ユーザ名とパスワードを保護する為、「SMTP over SSL」を設定します。

# vi /etc/postfix/master.cf

#smtpsの行があるので、先頭の#を外して有効にします。また、その下の3行もコメントアウトします。

smtps     inet  n       -       n       -       -       smtpd
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
#  -o milter_macro_daemon_name=ORIGINATING

master.cfを保存したら、設定ファイルを再読み込み。

# service postfix reload
postfix/postfix-script: refreshing the Postfix mail system

 

SMTP over SSL は、TCPの465番ポートを使用しますので、netstat コマンドで、465番ポートが開いていることを確認します。

# netstat -ln | grep tcp
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:465 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:995 0.0.0.0:* LISTEN
tcp 0 0 :::110 :::* LISTEN
tcp 0 0 :::80 :::* LISTEN
tcp 0 0 :::465 :::* LISTEN
tcp 0 0 :::22 :::* LISTEN
tcp 0 0 :::25 :::* LISTEN
tcp 0 0 :::995 :::* LISTEN

 

■ThunderBirdでの動作確認

今回は、別PC(TV録画用PC)に導入済のメールクライアント(サンダーバード)にアカウントを追加して動作確認してみます。

まずは、サーバCentOSに、ユーザ tv-pc を登録し、パスワードを設定。

# useradd tv-pc
# passwd tv-pc

 

別PC(TV録画用PC)で、SMTPサーバとPOPサーバに「mail.a21-hp.com」を指定するため、hosts ファイルで名前解決。
( hosts ファイルの場所は、C:\Windows\System32\drivers\etc )

192.168.1.21 a21-hp.com # CentOS server
192.168.1.21 www.a21-hp.com # CentOS server
192.168.1.21 mail.a21-hp.com # CentOS server

 

20130814aまず、メールクライアントソフト(サンダーバード)を起動し、「アカウント設定」の画面を出し、左ペインの最下部の「送信(SMTP)サーバ」をクリックして、送信サーバーを設定します。

「説明(D):」に「Postfix」、「サーバ名(S):」に「mail.a21-hp.com」を入力。
「セキュリティ設定」「接続の保護(D):」に「SSL/TLS」を選ぶと、「ポート番号(P):」に「465」が、「認証方式(I):」に「通常のパスワード認証」が設定されます。
「ユーザ名(M):」には「mailadmin」を指定してみました。

 

20130814b次に、アカウント tv-pc を追加します。

ユーザ名、メールアドレス、パスワードを入力し、「続ける」をクリックすると画面のように、「・・・見つかりました」となります。

しかし、STARTTLSとなっているので、「手動設定(M)」をクリックして設定を変更します。

 

 

20130814bこのような画面になるので、「送信サーバ SMTP」の横のリストを、先に登録したサーバー「Postfix – mail.a21-hp.com:465」に切り替えます。

 

 

 

 

20130814b「再テスト(T)」をクリックし「・・・見つかりました」となることを確認。

受信サーバを「SSL/TLS」にすると「・・・見つけられませんでした。」となり「完了」ボタンをクリックできないので、ここでは「STARTTLS」のままとします。

「完了(D)」をクリックします。

 

20130814b「セキュリティ例外の追加」画面が表示されます。

第三者機関の正式な証明書ではないので、この画面が表示されるようです。

URL: mail.a21-hp.com:110

下部の「次回以降にもこの例外を有効にする(P)」がチェックされていることを確認し、「セキュリティ例外を承認(C)」します。

 

 

20130814bアカウント設定の画面に戻り、左ペインにアカウント「tv-pc@a21-hp.com」が追加されるので、その下の「サーバ設定」をクリックします。

「セキュリティ設定」の「接続の保護(U):」が「STARTTLS」になっているので、「SSL/TLS」に変更します。

「OK」をクリック。

 

20130814b再度、「セキュリティ例外の追加」画面が表示されます。

URL: が mail.a21-hp.com:995
と、今度はポート番号995になっています。

下部の「次回以降にもこの例外を有効にする(P)」がチェックされていることを確認し、「セキュリティ例外を承認(C)」します。

 

 

 

20130814bメールを新規作成し、送信してみます。

「送信」ボタンを押し、メールサーバと通信を開始すると、警告メッセージと、セキュリティ例外の通知の画面が表示されます。

警告画面はOKし、セキュリティ例外は承認します。

メールが送信されず、一旦元の画面(この画面)に戻るので、再度「送信」ボタンを押します。

 

20130814b今度は警告画面は出ませんが、SMTP サーバのパスワードを要求します。

mailadmin のパスワードを入力し、「パスワードマネージャーにこのパスワードを保存する」にチェックを入れて「OK」をクリックします。これらの確認画面は初回のみで、次回以降は表示されません。

 

別PC(satoh163@a21-hp.com)でメールを受信し、返信します。

20130814bTV録画用PC側で、受信もできることを確認します。

SMTP over SSL でメール送受信が確認できました。

/var/log/maillog にもエラーは無いようです。

 

 

・・・本日は、ここまで。