ナビゲータのEVEです。

昨日は、Webにssl/tlsを導入するときの、苦労話というか、間抜けだったお話をしましたが、本日は、UbuntuをはずめLinuxサーバーの多くが利用している、メールソフト、Postfix、Dovecotへssl/tlsを導入するときの話です。
[メールの送受信ができない理由]
今から考えると、Postfix、Dovecotへssl/tlsを導入する場合、基本2箇所に、SSL証明書と秘密鍵のパスを書くだけで動作するようです。それは、Postfixではmain.cf、そして、Dovecotでは10-ssl.confファイルになります。
ただ、設定している最中は、そんなことは全く知らないので、ChatGPTに聞いていろいろなことをしました。サーバー側に原因があると思い・・・。ただ、今回、メールの送受信ができない理由は、クライアント側のソフトの設定にあることが分かりました。
[クライアントソフトの設定]
、それが分かったのは、Postfix、Dovecotでの設定をすべてやりつくし、もしかしたら、クライアントソフトに問題があるのでは?っと疑ってからでした。設定をいじり、受信ボタンを何回か押下することにより、受信することができました。クライアント側に問題があるかもしれないと思ってから、受信できたのはそれほど時間がかかりませんでした。
ただ、ちょっと、納得できていないのは、サーバー側の設定は、ssl/tlsを導入するに際し、有効としたのは、STARTTLSです。しかし、JustsystemのShutikenでは、STARTTLSを有効にするとメールの受信ができません。無効にすると受信できるのですけれどね・・・。
ただShutikenというソフトは、10年以上前のソフトなので、仕様等の問題かもしれないと思い、フリーウェアの最新のThunderBirdへ自分が想定したサーバーの設定をすると、STARTTLSで送受信することができました。
まっ、ソフトも最新のものを使用しないといけないということでしょうか?
[STARTTLSとSMTPS]
今回、STARTTLSを導入したのですが、それぞれどんな仕様だったのか、ChatGPTに解説をしてもらいます。
STARTTLS は、プレーンテキスト(非暗号化)の通信を途中から暗号化するためのプロトコル拡張です。
電子メールの通信において、SMTP(Simple Mail Transfer Protocol)や IMAP、POP3 などのプロトコルで使用されます。
★STARTTLS の特徴
❶暗号化の切り替え: もともとプレーンテキストで開始した通信を、クライアントが STARTTLS コマンドを送ることで TLS(Transport Layer Security)を用いた暗号化通信に切り替える。
❷後方互換性: サーバーが STARTTLS に対応していない場合でも、プレーンテキストの通信として動作する。
★使用ポート
・SMTP: ポート25(リレー用途)または ポート587(クライアント送信用)
・IMAP: ポート143
・POP3: ポート110
■SMTPSとは?
SMTPS(SMTP over SSL/TLS)は、最初から SSL/TLS による暗号化を前提として通信を行う方式です。
かつては SMTP の暗号化の標準方式として使われていました。
★SMTPS の特徴
・暗号化の強制: 接続開始時から SSL/TLS による暗号化を行う。
・専用ポート: 465 番ポートを使用。(RFC 8314 では廃止推奨)
・安全性: 初めから暗号化されるため、途中でダウングレード攻撃(STARTTLS の無効化攻撃)の影響を受けにくい。
★STARTTLS と SMTPS の違い
項目 | STARTTLS | SMTPS |
暗号化の開始タイミング | 平文で開始し、途中から暗号化 | 最初から暗号化 |
ポート番号 | 587(SMTP)、143(IMAP)など | 465(非推奨) |
後方互換性 | あり(未対応サーバーでは平文通信) | なし(SSL/TLS 非対応クライアントは接続不可) |
安全性 | ダウングレード攻撃のリスクあり | STARTTLS より安全 |
現在の推奨 | 〇(主流の方式) | ×(RFC 8314 で非推奨) |
一方、ポート 465(SMTPS)は過去に公式に廃止されましたが、一部の環境ではまだ使われることがあります。
■どちらを使うべきか?
・一般的には STARTTLS(ポート 587)を使用するのが推奨
→ ほとんどのメールサーバーやクライアントがこの方式に対応
・特定の環境では SMTPS(ポート 465)を使うこともある
→ 企業のレガシーシステムや一部のメールプロバイダーでまだ使用されることがある
■結論
現在の SMTP 通信では「STARTTLS を使用するのが標準的」
[ChatGPTとの対話を通して感じたこと]
今回、問題もないところを必死に調べいろいろやったため、振り返ってPostfix、Dovecotの設定を見ると、何がなんだか分からない状況になっています。
そのような状況になった理由の1つは、Postfix、Dovecotは他人が作ったシステムで、何がどうなっているのか、完全に把握できていないことが挙げられます。
そして、ChatGPTを信用しすぎ・・・。今まで、何回も対話していて、間違ったことも言うということは知っているのですが、今回ChatGPTが言っていることのほとんどを実行しました。その聞いている最中は、システムが動作することをを最優先しているため、理解することなく、矢継ぎ早にいろいろなことをしました。
昔は、1つのシステムの問題を2週間以上かけて解決したこともありましたが、ChatGPTがいる現在は、かかっても数日で解決することができます。そんな経験が、そんな行為をさせています。
この状況を振り返ってみると、AIを使って賢くなるという人が多くいますが、今まで考えながら作業していた部分を省略している状況は、なんか退化している印象を受けます。
[あとがき]
私は、インフラエンジニアではなく、開発者です。その観点から言うと、動くほうが先です。だから、今回の作業の仕方もありかなっとは思っています。ただ、何をどうしているのか分かっていない状況はいただけません。
来週以降になりますが、そのいただけない部分を補足する意味で、設定し自分が理解できていない部分をきちんと調べたいと思います。認識としては、多くはセキュリティに関する部分だと思うのですが・・・。
まっ、来週きちんと調べます。
では、また!!!
コメント
コメントを投稿