ホーム » 「postfix」タグがついた投稿

タグアーカイブ: postfix

サーバ⚙

最近の投稿

アーカイブ

カテゴリー

dovecot が動かない Let’s Encrypt 証明書問題

数日前から、iphoneで自宅サーバのメールを見ると証明書が有効期限切れとのエラーが表示される。パソコンから Thunderbird で見るのには影響がないようだ。設定を色々と確認しても改善しない。

/var/log/mail.log を見ると、”SSL issue: alert number 46″ などのエラーメッセージが残っていて、dovecot と合わせてググると、Let’s Encrypt のルート証明書が、2021/09/30 で切れるといった記事が見つかり、これが影響しているようだ。

dovecot の設定の修正

さらに検索すると、ようやく対応記事が見つかった。ssl_cert の cert.pem を fullchain.pem に替えるだけ。こちらの資料を見ても、dovecot とか postfix なら fullchain.pem を使うような説明がある。

((( /etc/dovecot/conf.d/10-ssl.conf )))
# ssl_cert = </var/lib/dehydrated/certs/自宅サーバ名/cert.pem
ssl_cert = </var/lib/dehydrated/certs/自宅サーバ名/fullchain.pem

((( restart dovecot )))
$ sudo systemctl restart dovecot

postfix の設定の修正

同じような設定は postfix も使っていたはず。試しに、iphone でメールを出そうとすると、dovecot と同じような証明書が信用できないとのメッセージでメールが送れない。

((( /etc/postfix/main.conf )))
# smtpd_tls_cert_file=/var/lib/dehydrated/certs/自宅サーバ名/cert.pem
smtpd_tls_cert_file=/var/lib/dehydrated/certs/自宅サーバ名/fullchain.pem

((( restart postfix )))
$ sudo systemctl restart postfix

サーバ原因不明のフリーズ

休みののんびりする中、自宅サーバがフリーズ。出先だったのでママが恐る恐るリセット。

普通に起動したけど、icinga, munin を見ても予兆の変な雰囲気は無かった。

自宅に帰って改めてフリーズ時間の履歴を見ると、以下のようなところで syslog が途切れていた。

Apr 29 09:49:53 perrine postfix/smtpd[1325089]: connect from unknown[185.143.xx.xx]
^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@

この後、このIPアドレスから以下のような接続が続いている。postfix の脆弱性でもあるのかな。侵入には失敗しているようだが、なんか不気味。あまりにも不気味だし、繰り返し login を試しているし、iptables で接続をブロックする。

Apr 29 10:27:08 perrine postfix/smtpd[1943]: connect from unknown[185.143.xx.xx]
Apr 29 10:27:10 perrine postfix/smtpd[1937]: warning: unknown[185.143.xx.xx]: SASL LOGIN authentication failed: authentication failure

postfixのサーバ間暗号化

DKIM, DMARC などの設定をしていたが、gmail 宛のメールの状態を確認していたら、DMARC p=quarantine に変更したのを確認できたけど、サーバ間のメール転送で暗号化がされていない様子。

この手の暗号化はデフォルトで行われているものと思っていたが甘かった。

postfix に以下の設定を追加する。

(((/etc/postfix/main.cf )))
smtp_tls_security_level = may

上記の状態の確認をしていたけど、外部サイトと25番ポートで繋がるんだな。プロバイダのファイアウォールで OP25 などの対策で、smtp(25番ポート)って接続禁止で、starttls(587) とか、smtps(over SSL:465) とかを優先的に使うと思っていたけど、google さんの smtp と 25 番ポートと繋がるな…。

postfix,dovecotのSSL化

子供の進学で自宅を離れ、出先でも自宅サーバにメールの読み書きがあれば、様子を伺えるんだけど、自宅サーバのメール関連のSSL化が不完全だったので、子供の引っ越し先に泊まった際に見直し。

すでに、dehydrated を Web サーバで導入済みなので、それを postfix , dovecot に利用させるだけなんだけど、一度失敗してたのでリトライ。

((/etc/apache2/site-enable/010-default-ssl.conf))
- SSLCertificateFile      /etc/ssl/certs/ssl-cert-snakeoil.pem
- SSLCertificateKeyFile   /etc/ssl/private/ssl-cert-snakeoil.key
- SSLCertificateChainFile /etc/apache2/ssl.crt/server-ca.crt
+ SSLCertificateFile      /var/lib/dehydrated/certs/MYDOMAIN/cert.pem
+ SSLCertificateKeyFile   /var/lib/dehydrated/certs/MYDOMAIN/privkey.pem
+ SSLCertificateChainFile /var/lib/dehydrated/certs/MYDOMAIN/chain.pem

((/etc/postfix/main.cf))
- smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
- smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
+ smtpd_tls_cert_file=/var/lib/dehydrated/certs/MYDOMAIN/cert.pem
+ smtpd_tls_key_file=/var/lib/dehydrated/certs/MYDOMAIN/privkey.pem

((/etc/dovecot/conf.d/10-ssl.conf))
- ssl_cert = </etc/ssl/certs/ssl-cert-snakeoil.pem
- ssl_key = </etc/ssl/private/ssl-cert-snakeoil.key
+ ssl_cert = </var/lib/dehydrated/certs/MYDOMAIN/cert.pem
+ ssl_key = </var/lib/dehydrated/certs/MYDOMAIN/privkey.pem

これで、メールサーバのアカウント登録で、「登録されていない安全でない証明書を使うか?」といった表示もなくなるし、Windows の標準メールでも登録ができるようにできた。

 

検索 🔎

  My Google     Yahoo

便利サイト