メールサーバー · 1 min read · Oct 05, 2025
フルメールサーバーソリューション w/ バーチャルドメインとユーザー (Debian Etch, Postfix, Mysql, Dovecot, DSpam, ClamAV, Postgrey, RBL) - ページ 10
VII. セキュアメール
理想的な世界では、私たちのユーザーは、世界のどこにいてもネットに接続しているときに、メールを送受信できるはずです。残念ながら、それは非常に安全ではありません… パスワードはSMTPおよびIMAPプロトコルを介して平文でやり取りされており、それは誰でもパスワードを「盗み見る」ことができることを意味します。
ユーザーがメールソリューションに直接アクセスする必要がない場合は、それを与えないでください! すべてのユーザーが必要なのはWebメールだけであれば、安全なメール設定について心配する意味はありません! ただ、Webメールサーバーへの接続を安全にし、Webメールサーバーがメールサーバーと通信する際に安全なネットワーク接続を使用することを確認してください。問題解決! 一方、ユーザーがWebメールを使用せずにインターネット経由でメールを送受信する必要がある場合、それは物事をより困難にします。不可能ではなく、ただ困難です。
さて、あなたの問題は次のとおりです:SMTPとIMAPはパスワードをクリアテキストで送信します。MD5を使用してパスワードを送信させることもできますが、基本的なMD5はハッキングされる可能性があります。MD5CRYPTを使用してパスワードを送信させることもできますが、その場合は複数の実装に対処する必要があります(すべてのメールクライアントがMD5パスワードをサポートしているわけではありません)。解決策は? TLS(トランスポート層セキュリティ)です。インターネット上で暗号化された接続をサポートするようにソリューションを設定します。既存のサーバーの一部を変更することもできますが、それらの設定を過度に複雑にする意味はありません。すべてを処理するために別のサーバーを実行するだけです:secure-mail.example.com
NOTE: 元のシナリオでは、小規模ビジネスが複数の静的IPアドレスを持っていました。この場合、ポート25でSMTP+TLSを実行できましたが、複数のIPアドレスがない場合はそれは不可能です。理由は簡単です:IMAPS(セキュアIMAP)は標準IMAP(143)とは異なるポート(993)で実行されますが、SMTP+TLSはSMTP(25)と同じポートで実行されます。したがって、ポートに基づいてルーティングするためにファイアウォールを使用すると、別々のIMAPおよびIMAPSサーバーを実行できますが、世界中のどのファイアウォールもポート25を2つの異なるマシンにルーティングすることはできません。それでも、非標準ポートでSMTP+TLSを実行することは常に可能です… それはさらに安全になるでしょう。
これらすべてを考慮して、SMTP+TLSを使用してメールを送信し、IMAPSを使用して受信するセキュアメールサーバーを設定します。
A. SSL証明書
最も簡単な暗号化の形は、サーバー上にシンプルな自己署名証明書を持つことです。これにより、クライアントが最初に接続したときに警告メッセージが生成されますが、クライアントはそれを保存して再利用できるはずです。証明書を保存しない場合、誰でも中間者攻撃を実行できるため、実際には安全ではありません。
次のレベルは、商業的なものか、あるいは会社内部のCAによって署名されたサーバー証明書を使用することです。この方法では、サーバー証明書が信頼され、警告が表示された場合は、何か悪いことが起こっている可能性があります。
最後に、クライアント証明書を使用してサーバーにログインし、サーバー証明書を使用してサーバーをクライアントに認証することが重要です。これは非常に安全ですが、すべてのメールクライアントでサポートされているわけではありません。Thunderbirdなどはこれをサポートしています。
1. 自己署名サーバー証明書
まず、ディレクトリを作成し、プライベートキーを作成し、最後に証明書を作成します。
# mkdir -p /etc/ssl/example.com/mailserver/
# cd /etc/ssl/example.com/mailserver/
# openssl genrsa 1024 > mail-key.pem
# chmod 400 mail-key.pem
# openssl req -new -x509 -nodes -sha1 -days 365 -key mail-key.pem > mail-cert.pem「Common Name (eg, YOUR name)」は、サーバーの名前(この場合はsecure-mail.example.com)と一致する必要があります。
2. CA署名証明書
実際のCA署名証明書を使用することは、自己署名証明書を使用することと何ら変わりません。キー対の作成のもう一つのステップです。会社に独自のCAがある場合は、メールサーバーのために証明書を発行する必要があります。「be your own ca」でGoogle検索を行うと、必要に応じて自分で作成するための十分な回答が得られます。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。