セキュアサーバーの章ではSendmailのSMTPに認証機能を持たせ、既にAPOPによる暗号化認証を導入しました。その際、外部からの接続は APOPのみに限定しました。
今回は更にSSLによる保護を可能にし、経路の暗号化により、Outlookでも安全にPOPサーバーへログイン可能にする事が目的です。そのため、前回を継承する形で紹介しています。
ご注意(2005/9/10)
この記事は 2000年から公開している Sendmail 8.9 & メーリングリストサーバーFML & InFlex で構築したSendmail によるメールサーバーについて解説した内容となっています。
これからLinuxサーバーを行う場合は、やや古い内容となっていますが解決の糸口になることもあるため残しています。
Sendmail 8.12 から大幅に仕様が変更されたため、2004年中旬からFedoraCore 2/3/4 CentOS4 に置換えて新規に再編して公開しているページがあります。これからLinuxサーバー構築される場合は、そちらを参考にして下さい。
参照 => メールサーバー構築(APOP POP3) FC /CentOS
参照 => SMTP認証を暗号化する FC /CentOS
参照 => STARTTLSによるSSL-SMTPサーバー構築 FC /CentOS
参照 => GUI(ブラウザ)で管理するFMLサーバー FC /CentOS
OpenSSLに関してはこちらで説明しています。Sendmail に限らずサーバーのSSL化に必要な証明書作成手順は共通します。
SSL暗号化の導入には二通りの方法があります。ここではCAによる署名は行なわず、自己証明型 証明書を使用する方法で説明します。
メールのための証明書なので/etc/mail/certsとしました。作成し移動します。証明書と秘密鍵を一つのファイルで作成します。有効期限は7000日。怠慢です。
# openssl req -new -x509 -nodes -out server.pem -keyout server.pem -days 7000
Country Name (2 letter code) [AU]:JPこの一連の作業で
/etc/mail/certs/server.pem(サーバー証明書)
が生成されます。これが、Qpopper4用のサーバー証明書 兼 秘密鍵になります。パーミッションは特に注意して下さい。rootの以外のユーザーが読めてはエラーがでます。
これはクライアントに自CAを信頼してもらうための公開鍵です。Netscapeの場合は、信頼できる認証期間(CA)として登録することが出来ますが、Outlookの場合、認証期間の公開鍵をインストールしなければクライアントが接続のたびに警告がでます。
不特定多数で利用するサービスにおいては利用できません。組織内の限られた目的で利用する事を前提としています。
これの警告を失くすには公開鍵をクライアント側にインストールしてもらう必要があります。このセキュリティ リスクについては、公的CA(認証機関)と独自CAの違いについて で説明しています。
der形式の場合
pkcs12形式の場合
/etc/mail/certs/popserver.der(CA公開カギ)
この証明書をクライアント側にインストールし、信頼される認証機関(CA)としてユーザーに登録してもらいます。これにより警告は出なくなります。 Netscapeの場合、これらを行わなくても今後信頼される機関として登録するかどうかと聞かれます。今後も信頼すると答えると登録されるのでこれらを渡す必要ありません。