Ubuntu18.04 TLS 1.3で保護する

Twitterをぼんやり見ていたら、金盾がTLS 1.3による通信をブロックしているとのこと。
これはきっとセキュリティレベルが高いのだろうということで、取り組んでみようと思った。





やること。

守るものが少ないな。

Apacheの暗号化

元々HTTPSでサービス公開しており、軽くパケットキャプチャーしてみたところ、TLS 1.3で接続ができている模様。
となれば、TLS 1.3に接続を限定すれば良さそう。
WEB ARCH LABO / Apache httpd で接続を許すSSL/TLSのバージョンを制限する方法

/etc/apache2/sites-available/default.conf
SSLProtocol TLSv1.3
    SSLEngine on
    SSLCertificateFile    /etc/letsencrypt/live/rohhie.net/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/rohhie.net/privkey.pem
…

これで、Apacheに設定を読み込ませればOKだった。

$ sudo systemctl reload apache2

Windows 10 + Chrome と、Android + Chromeでアクセスして問題なしだったので、良しとする。

2020/08/15追記 弊害発生!

  1. TwitterでCard表示がなされなくなった。
    Developer – Card validatorでチェックしたら、エラー発生。
  2. WindowsMailでZ-Pushを使ったメールの同期ができなくなった。
    → 証明書に問題がある可能性があります 0x80072f7d

TwitterのCard表示については、探すと証明書関連の問題がいくつか見つかった。
あやめ商店ブログ / twitter cardが表示されない(ERROR: Fetching the page~)
おかげで、WindowsMailの問題も問題もこれが原因と分かってきた。

TLS 1.3のみというのは少し急ぎすぎなのかもしれない。

Postfixの暗号化(失敗)

今まで暗号化の観点でしっかりと設定を見たことがなかった。
結果からすると暗号化を必須にはできなかった。

/etc/postfix/main.cp
#smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
#smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
#smtpd_use_tls=yes
smtpd_tls_cert_file=/etc/letsencrypt/live/rohhie.net/fullchain.pem
smtpd_tls_key_file=/etc/letsencrypt/live/rohhie.net/privkey.pem
smtp_tls_security_level=may
smtp_tls_mandatory_protocols=!SSLv2, !SSLv3
smtp_tls_mandatory_ciphers=medium

証明書と秘密鍵はLet’s Encryptに署名してもらったものに置き換えてみた。

smtp_tls_security_level=encryptにしたかったけれど、プロバイダが用意してくれているSMTPは暗号化を要求すると受け付けてくれなかった。
そのため暗号化を強制することができなかった。恐らくは、他ドメインからのリレー(実際は受け取りのみだが)への暗号化強要はできていないと思われる。

とはいえ、少しは状況が良くなったと思うので、設定を反映させる。

$ sudo systemctl reload postfix

メールの送受信はできたので、まずは良しとする。

やったこと

SMTPで利用するポート

こちらで説明してくれている。
Kinsta / 正しいSMTPポートの選び方(ポート番号25、587、465、2525)

また、ここをSMTPで探せばだいぶ詳しい。
ウィキペディア / TCPやUDPにおけるポート番号の一覧

ポート番号説明備考
25Simple Mail Transfer Protocol(SMTP)
465Message Submission over TLS protocol(SMTPS)非推奨
587e-mail message submission(SMTP)
2525SMTP alternate非公式
3535SMTP alternate非公式

サブミッションとされているのは、メール送信というか、ポストへのメール投函というか、そのためだけのもの。
メールのバケツリレーは25番ポートで行う。うちは遠隔地にサーバーを置く形にしていないので、25番ポートだけをケアすれば良い。

改めて「そういうものなのか」と理解。

さいごに

見つけた記事は参考になったと同時に、ネットワーク管理の難しさも感じていたりする。
ネットワーク管理の立場で言えば、その通信が何やってるか分からねぇよ、って話だろうから。

お気軽にどうぞ ~ 投稿に関するご意見・感想・他

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