前回の「Postfix3.3 ソース版 マルチドメイン対応 SMTP認証設定」では、TLS対応ではなく、平文でしたので、今回は、暗号化バージョンの設定を。
自己証明書バージョンです。
目次
自己証明書ファイルの作成と組み込み
# cd /etc/pki/tls/certs/
# make mail.pem
umask 77 ; \
PEM1=`/bin/mktemp /tmp/openssl.XXXXXX` ; \
PEM2=`/bin/mktemp /tmp/openssl.XXXXXX` ; \
/usr/bin/openssl req -utf8 -newkey rsa:2048 -keyout $PEM1 -nodes -x509 -days 365 -out $PEM2 ; \
cat $PEM1 > mail.pem ; \
echo "" >> mail.pem ; \
cat $PEM2 >> mail.pem ; \
rm -f $PEM1 $PEM2
Generating a 2048 bit RSA private key
...............+++
................................................................................................................................................................+++
writing new private key to '/tmp/openssl.2v8dF8'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:JP
State or Province Name (full name) []:tokyo
Locality Name (eg, city) [Default City]:shibuya
Organization Name (eg, company) [Default Company Ltd]:ITkk
Organizational Unit Name (eg, section) []:IT
Common Name (eg, your name or your server's hostname) []:(ホストのFQDN)
Email Address []:
↑自己証明ファイルを作成します。
# vi /etc/postfix/main.cf smtpd_use_tls = yes smtpd_tls_cert_file = /etc/pki/tls/certs/mail.pem smtpd_tls_key_file = /etc/pki/tls/certs/mail.pem smtpd_tls_session_cache_database = btree:/etc/postfix/smtpd_scache
↑自己証明ファイルをpostfixで指定します。
postfix のSMTPs 部分を有効に
# vi /etc/postfix/master.cf
-------------------------------------------------------------------------
#smtps inet n - n - - smtpd
# -o smtpd_tls_wrappermode=yes
# -o smtpd_sasl_auth_enable=yes
-------------------------------------------------------------------------
↓
-------------------------------------------------------------------------
smtps inet n - n - - smtpd
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
-------------------------------------------------------------------------
↑postfix smtps部分を有効にします。
dovecot 証明書の指定
# vi /etc/dovecot/conf.d/10-ssl.conf
-------------------------------------------------------------------------
#ssl_cert = </etc/ssl/certs/dovecot.pem
#ssl_key = </etc/ssl/private/dovecot.pem
ssl_cert = </etc/pki/tls/certs/mailcert.pem
ssl_key = </etc/pki/tls/private/mailkey.pem
-------------------------------------------------------------------------
↓
-------------------------------------------------------------------------
#ssl_cert = </etc/ssl/certs/dovecot.pem
#ssl_key = </etc/ssl/private/dovecot.pem
#ssl_cert = </etc/pki/tls/certs/mailcert.pem
#ssl_key = </etc/pki/tls/private/mailkey.pem
ssl_cert = </etc/pki/tls/certs/mail.pem
ssl_key = </etc/pki/tls/certs/mail.pem
-------------------------------------------------------------------------
↑dovecotで、証明書を指定します。
dovecot 受信ポートの設定
# vi /etc/dovecot/conf.d/10-master.conf
-------------------------------------------------------------------------
service pop3-login {
inet_listener pop3 {
#port = 110
}
inet_listener pop3s {
#port = 995
#ssl = yes
}
}
-------------------------------------------------------------------------
↓
-------------------------------------------------------------------------
service pop3-login {
inet_listener pop3 {
port = 110
}
inet_listener pop3s {
port = 995
ssl = yes
}
}
-------------------------------------------------------------------------
↑POP3sのポート、995を有効にします。
postfix,dovecotのサービス再起動
# /etc/rc.d/init.d/dovecot start
# /usr/sbin/postfix stop
# /usr/sbin/postfix start
POP3s、995ポートでの受信
自己証明書を有効にする。
beckyというメールソフトでは、「SSL/TLS関係」の「証明書を検証しない」というところにチェックを入れます。
>>> Connecting to "XXX.XXX.XXX.XXX" (SSL/TLS) [2018/XX/XX XX:XX:XX] <<< +OK Dovecot ready. USER (メールアドレス) +OK PASS ******** +OK Logged in. STAT +OK 4 3264 LIST +OK 4 messages: 1 647 2 702 3 702 4 1213 . UIDL +OK 1 000000015ba10240 2 000000025ba10240 3 000000035ba10240 4 000000045ba10240 . QUIT +OK Logging out.
↑POP3sでの受信がOKとなりました。
SMTPs、465ポートでの送信
次に送信側、STMPs 465ポートでの接続を試みますが、エラーとなる!(汗)
/var/log/maillog
を見てみる。
Oct XX XX:XX:XX postfix/smtpd[xxxx]: warning: TLS has been selected, but TLS support is not compiled in
と「TLSでの要求が来たが、コンパイル時に指定してない・・・」(汗)
ということで、
「-DUSE_TLS」
という指定を入れて、ソース版postfix 3.3.1から、再コンパイル。
# make makefiles CCARGS='-DUSE_TLS -DUSE_SASL_AUTH -DHAS_MYSQL -DDEF_SERVER_SASL_TYPE=\"dovecot\" -I/usr/local/include -I/usr/include/mysql/' AUXLIBS="-lssl -lcrypto -L/usr/local/lib" 'AUXLIBS_MYSQL=-L/usr/lib64/mysql -lmysqlclient -lz -lm' # make # make install
再度、送信。
>>> Connecting to "XXX.XXX.XXX.XXX" (SSL/TLS) [2018/XX/XX XX:XX:XX] <<< 220 (ホスト名) ESMTP Postfix EHLO [127.0.0.1] 250-(ホスト名) 250-PIPELINING 250-SIZE 20480000 250-VRFY 250-ETRN 250-AUTH PLAIN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN 235 2.7.0 Authentication successful RSET 250 2.0.0 Ok MAIL FROM:<(差出人メールアドレス)> 250 2.1.0 Ok RCPT TO:<(宛先メールアドレス)> 250 2.1.5 Ok DATA 354 End data with <CR><LF>.<CR><LF> . 250 2.0.0 Ok: queued as F391C2F13A4 QUIT 221 2.0.0 Bye
↑SMTPs 465ポートでの送信成功!