
こんにちは。サイオステクノロジー技術部 武井です。
PostfixのTLSを試してみました。PostfixからTLS対応メールサーバーに送る方です。相手はOffice365です。実際にパケットの中身を見て、どうなっているのかも確認しました。
まず、Postfixのインストールです。
1 |
# yum install postfix |
設定ファイルを修正します。今回はlocalhostからのみメールを送るので、そのように設定します。/etc/postfix/main.cfを修正します。差を見たいので、まずTLSじゃない状態でメールを送ってみます。
1 2 3 4 5 6 7 8 9 |
myhostname = mail.example.com ... mydomain = example.com ... inet_interfaces = 127.0.0.1 ... mynetworks_style = host ... mynetworks = 127.0.0.0/8 |
メールを送ってみます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# telnet localhost 25 Connected to localhost. Escape character is '^]'. 220 postfix-test.japaneast.cloudapp.azure.com ESMTP Postfix <span style="color: #ff0000;">HELO foo.or.jp mail.example.com</span> 250 postfix-test.japaneast.cloudapp.azure.com <span style="color: #ff0000;">MAIL FROM: ntakei@example.com</span> 250 2.1.0 Ok <span style="color: #ff0000;">RCPT TO: ntakei@contoso.onmicrosoft.com</span> 250 2.1.5 Ok <span style="color: #ff0000;">DATA</span> 354 End data with . <span style="color: #ff0000;">From: ntakei@example.com</span> <span style="color: #ff0000;">Subject: test Hello world. .</span> 250 2.0.0 Ok: queued as 76EAD3C4 <span style="color: #ff0000;">QUIT</span> 221 2.0.0 Bye Connection closed by foreign host. |
EHLOの結果です。tcpdumpでパケットキャプチャしたものをwiresharkで見ています。Office365がSTRTTLSに対応しているのがわかります。
しかし、PostfixがTLSに対応してないので、普通に平文で送っています。
PostfixをTLS対応してみます。/etc/postfix/main.cfに以下を追加します。
1 2 3 |
smtp_tls_CAfile = /etc/pki/tls/cert.pem smtp_tls_security_level = may smtp_tls_loglevel = 1 |
Postfixを再起動します。
1 |
# systemctl restart postfix |
先程と同様にメールを送信して、そのパケットをキャプチャしてみます。
Client HelloとかServer Helloとか出てきています。SSL処理が始まって暗号化されているのがわかりました。

>> 雑誌等の執筆依頼を受付しております。
ご希望の方はお気軽にお問い合わせください!
コメント投稿