Gmailで暗号化されませんでしたを対策したDebian Postfix relayhost設定

2019/09/24[公開]

postfix-relay1

 自宅サーバーのPostfixで送信したメールですが、Gmailで受信すると「 このメールは **** で暗号化されませんでした」 と赤いロックが外れたアイコンが出ていたのをrelayhostの設定をして修正しました。ちょっとだけセキュリティが増した気分です。

 PostfixにPB25対策のリレー設定をすれば解決というだけですが、いままで家のISP(usen.ne.jp)ではリレー設定をしなくてもメール送信がポート25でできていましたが、せっかくLetsencrypt証明書で暗号化しているのに即非暗号化になっていたようです。 一般的なメールソフトでは気になりませんが、Gmailを使っていると気になります。

 そろそろDebian10(Buster)にアップデートしようかなとテストしていて、先だって今運用中のDebian9(Stretch)も修正できました。

 リレーする送信メールサーバーを、契約しているプロバイダーを使うのと、Gmailの送信メールサーバーを利用するのと2通りの方法の紹介です。

 こちらの記事の通りに設定した前提からの内容です。

スポンサー リンク

ISPのSMTPサーバーにリレー

 契約しているISPのSMTPサーバーのポート587にリレーする設定です。 ISPのメール設定情報が必要になります。

/etc/postfix/main.cf の42行目あたりの relayhost=(空欄) の行から下記を追記します。

relayhost =[smtp.hogehoge.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/relayhost_info
smtp_sasl_security_options = noanonymous

smtp.hogehoge.com の部分は自身のISPのSMTPサーバーになります。

/etc/postfix/relayhost_info ファイルを今から作成します。

# nano /etc/postfix/relayhost_info

ファイルの中身を下記にして保存します。

[smtp.hogehoge.com]:587    SMTPユーザ名:SMTPパスワード
  • smtp.hogehoge.com は自身のSMTPサーバーになります。[ ]で囲みます。
  • SMTPユーザー名 はISPの送信サーバーのユーザー名です。
  • SMTPパスワード はISPの送信サーバーのパスワードです。

relayhost_infoファイルはパスワードが平文で入っているので、rootしか開けないようにします。

# chmod 600 /etc/postfix/relayhost_info

または、 postmapコマンドでデータベース化して平文ファイルは削除します。

# postmap hash:/etc/postfix/relayhost_info
# rm /etc/postfix/relayhost_info

Postfixのサービス再起動で設定が有効になります。

# /etc/init.d/postfix restart

以上で、ISPの送信サーバーでSMTP認証を行う設定は完了です。

Gmailにメールを送信してテストしてみました。

鍵付きの暗号化メールになった。
鍵付きの暗号化メールになった。

Gmailの送信サーバーにリレー

 メールサービスがオプションのISPだったり、メールサーバー情報が不明な場合にフリーメールのGmailのSMTPサーバーにリレーする方法があります。基本は同じですが、ちょっとだけややこしいです。

Gmail側の設定

 既存のGmailアカウントでも、新規に作成したGmailアカウントでもいいのでGmailの設定⇒アカウントとインポート で「他のメール アドレスを追加」のところにホストメールアドレスを追加します。

 一般的なGmailの作法なので、追加方法はGoogleのヘルプを参照してください。

  • 送信ポートは465または587どちらでも大丈夫です。
  • リレーしたいメールアドレスの数だけ追加するのをお勧めします。追加していないメールアドレスでも送信できますが、相手に表示される送信者メールアドレスはGmailの既定のメールアドレスになります。追加済みのメールは自身のメールアドレスでの送信になります。

2段階認証の設定なしのアカウントの場合

 2段階認証を設定していないアカウントの場合、「安全性の低いアプリの許可」を有効にしておく必要があります。セキュリティ的にはあまりお勧めできません。

2段階認証の設定ありのアカウントの場合

 2段階認証を設定しているアカウントの場合、「アプリパスワード」を作成しておきます。

  • アプリを選択:メール
  • デバイスを選択:その他(任意の名前)

この選択で作成した16桁のパスワードをメモしておきます。

リレー設定

/etc/postfix/main.cf の42行目あたりの relayhost=(空欄) の行から下記を追記します。

relayhost = [smtp.gmail.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/relayhost_google
smtp_sasl_tls_security_options = noanonymous
smtp_sasl_mechanism_filter = plain
smtp_tls_security_level = may

/etc/postfix/relayhost_google ファイルを今から作成します。

# nano /etc/postfix/relayhost_google

ファイルの中身を下記にして保存します。

2段階認証の設定なしのアカウントの場合

[smtp.gmail.com]:587    gmailアドレス:gmailパスワード

2段階認証の設定ありのアカウントの場合

[smtp.gmail.com]:587    gmailアドレス:アプリパスワード

relayhost_googleファイルはパスワードが平文で入っているので、rootしか開けないようにします。

# chmod 600 /etc/postfix/relayhost_google

または、 postmapコマンドでデータベース化して平文ファイルは削除します。

# postmap hash:/etc/postfix/relayhost_google
# rm /etc/postfix/relayhost_google

Postfixのサービス再起動で設定が有効になります。

# /etc/init.d/postfix restart

サービス再起動後、Gmailにメールを送信してテストして暗号化メールであることを確認できました。

スポンサー リンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です