前回の「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ポートでの送信成功!