2022/12/23(金)メールサーバの中規模改修と基礎知識(1)

背景や前提条件など

このシリーズは、8回に分けて記事を起こした時点における、今どきのメールサーバ運営管理上のインストール手順や参考情報を掲載します。Portsやバイナリパッケージに頼らず、ソースコードから自力で構築する手順から紹介しています。
『時代錯誤だ!』と嘲笑されようが、これを経験することが基礎知識を維持し、育むにはとても重要なのです。

OSは FreeBSD13 ですが、他のLinux 系OSにおいても参考になる部分が多いと思います。
また、ここでは OpenLDAP のインストールや設定を終えており、LDAP 検索にて、電子メールアドレスまたはSASLユーザ名を検索条件として与えると、
 ・SASL パスワード
 ・UID
 ・GID
 ・homeDirectory
 ・status〔有効にしている(valid)か、無効にしている(invalid)か〕
の情報が得られる仕組みが出来ていることを前提にしています。

実は、約2年前に計画していた改修ですが、
別の企業にて壊れたオンラインシステムの復旧作業・改修作業を事実上一手に引き受けた状態になり、
そちらを優先して、自社システムの細かな不具合がないがしろになっていた状態でした。

当初技術的に先行していた(と自負できる)メールサーバの構成が15年以上経過して色あせてきたことと、
昨今のOutlookやアンチウィルスソフトとの相性が悪くなっているため、中規模改修を行ってこの細かな不具合を出来るだけ解消しようと、やっとのことで実施に移しています。

一口に『メールサーバ』と言っても、知っている人は知っているのですが、構成は複雑です。
サーバ運営・管理的には難易度が高い部類になるかと思います。
20221223_mailserver_2022enhance.jpg


上図に(丁寧に作っている暇がないので)手書きで示した構成図を見ても、実に8種類のサーバサイドソフトウェアを使って1つのメールサーバを実現しています。しかも、これは基本的構成に過ぎません。

実際は、このほかにも動作させるために、Perl,ruby,Python といったスクリプト言語や、rust などの新しい言語のライブラリ、各種の補助的ツールを必要とし、メーリングリストの実現なんかは更に、上図で図示していない別のサーバソフトウェアを必要とします。
また、SSL/TLS といった暗号化通信のためには、サーバ証明書の取得・管理だけではなく、OpenSSL,GnuTLS といった暗号化ライブラリが別途必須になります。

こういう構成図(設計図?)を描ける若手エンジニアを昨今では見ませんね。
「クラウド」「クラウド」と、もてはやすおかげで、自力でこのようなものを構築する機会を奪っているから。
ハッキリ言って、この状況では日本のICT技術水準は、自ら周回遅れの状況を作ってしまっています。

ということで、技術継承的な危機感を感じていますが、憂いでも何も変わらないので、せめて構成例の一例として参考にして欲しいということで、自分メモも兼ねて記録に残しています。(つか、こっちがメインかも)

抑えておきたいポート番号とSSL/TLS の対応

皆さまが使う、電子メール送受信ソフトウェア(Outlook,Thunderbird など)にて、サーバの設定におけるポート番号と暗号化通信形式の組み合わせは、一般的に下記の表のようになります。
時々「メール送受信が上手く出来ない」という問合わせ受けますが、単純ではないものの、下記の対応が滅茶苦茶になっている設定が案外散見されます。参考にどうぞ。
表1 送信側
ポート番号非暗号STARTTLSSSL/TLS説明
25(SMTP)×現在はメールサーバ間の通信に使用。
昨今はOP25 対策で、メール送信元で使えない場合が殆ど。
587(submission)×メール送信元にて、メール発信の際に使う。
OP25環境では、メールサーバ間の通信にも使用。
465(SMTPS)××メール送信元にて、暗号通信を行う際に使用する。
有名どころでは OCN なんかがこれを標準にしているが、
おかげで従来の制御機器が使えなくなるケースも実在する。
表2 受信側
ポート番号非暗号STARTTLSSSL/TLS説明
110(POP3)×メール受信者が、メールサーバから電子メールを取り寄せる時に使用。
143(IMAP4)×POP3 と役割は同じだが、メールサーバ上にメールを一定期間残す挙動が標準。
993(IMAP4S)××IMAP4 を暗号化通信専用にしたようなもの。その他は IMAP4 と同じ。
995(POP3S)××POP3 を暗号化通信専用したようなもの。その他は POP3 と同じ。
有名どころでは OCN なんかがこれを標準にしているが、
おかげで従来の制御機器が使えなくなるケースも実在する。
STARTTLS というのは、一般的に「暗号通信するぞ」という宣言を接続元で行うという手順を踏んで暗号化通信を行う仕組みを指します。
SSL/TLS は、SSL(Secure Sockets Layer) の後継規格が TLS(Transport Layer Security) というもので、SSL は既に旧規格です。ですが、役割は同じなので、同列に語られます。
SSL は当初、Netscape社が開発したものですが、IETF というインターネット技術の国際標準化組織に引き継ぐ際に名称が変わりました。

と、いうことで次からメールサーバ構築の流れを自分メモ的に記していきます。