第15章 メールサーバー
Red Hat Enterprise Linux は、メールを提供し、アクセスするための高度なアプリケーションを多数提供します。本章では、現在使用されている最新の電子メールプロトコルと電子メールを送受信するプログラムについて説明します。
15.1. メールプロトコル
今日、電子メールはクライアント/サーバーのアーキテクチャーを使用して配信されています。電子メールのメッセージは、メールクライアントプログラムを使用して作成されます。次に、このプログラムがメッセージをサーバーに送信します。メッセージは、サーバーが受信者の電子メールサーバーに転送し、そこで受信者の電子メールクライアントに渡されます。
このプロセスを有効にするために、各種の標準のネットワークプロトコルが異なるマシンによる (多くの場合、異なるオペレーティングシステムで、異なる電子メールプログラムを使用) 電子メールの送受信を可能にしています。
以下は、電子メールの転送に最も一般的に使用されているプロトコルです。
15.1.1. メール転送プロトコル
クライアントアプリケーションからサーバーへのメール配信、および送信元サーバーから転送先サーバーへのメール配信は、SMTP (簡易メール転送プロトコル) により処理されます。
15.1.1.1. SMTP
SMTP の第一の目的は、メールサーバー間における電子メールの転送です。ただし、これは、メールクライアントにも重要です。メールを送信するには、クライアントが送信メールサーバーにメッセージを送信し、配信先メールサーバーに接続します。ただし、このチェーンにはさらに多くの中間 SMT P サーバーが含まれる場合があります。この概念はメールリレーと呼ばれます。このため、メールクライアントの設定時に SMTP サーバーを指定する必要があります。
Red Hat Enterprise Linux では、ユーザーはローカルマシンで SMTP サーバーを設定してメール配信を処理できます。ただし、送信メール用にリモート SMTP サーバーを設定することも可能です。
SMTP プロトコルに関して重要なのは認証が不要である点です。これにより、インターネット上の誰でも、個人や大規模なグループに対してでも電子メールを送信できます。迷惑メールや スパム が可能になるのは SMTP のこうした特性が原因です。リレー制限を課すと、インターネット上の任意のユーザーが、ご使用の SMTP サーバーを介してインターネット上の別のサーバーへ電子メールを送信することが制限されます。リレー制限を課さないサーバーは、オープンリレー サーバーと呼ばれます。
Red Hat Enterprise Linux 7 は、Postfix および Sendmail SMTP プログラムを提供します。
15.1.2. メールアクセスプロトコル
メールサーバーから電子メールを取得するために、電子メールクライアントアプリケーションが使用する主要なプロトコルには、POP (ポストオフィスプロトコル ) と IMAP (インターネットメッセージアクセスプロトコル) の 2 つがあります。
15.1.2.1. POP
Red Hat Enterprise Linux のデフォルトの POP サーバーは Dovecot で、dovecot パッケージで提供されます。
Dovecot をインストールするには、以下のコマンドを実行します。
~]# yum install dovecot
yum を使用したパッケージのインストールは 「パッケージのインストール」 を参照してください。
POP
サーバーを使用する場合、電子メールメッセージは電子メールクライアントのアプリケーションがダウンロードします。デフォルトでは、ほとんどの POP
電子メールクライアントでは、電子メールサーバーのメッセージが正しく転送されるとそのメッセージは削除されるように自動的に設定されています。ただし、この設定は通常は変更できます。
POP
は、電子メールのファイル添付を可能にする MIME (多目的インターネットメール拡張) などの重要なインターネットメッセージング標準と完全な互換性があります。
POP
は、電子メールを読むためのシステムが 1 つであるユーザーの場合に最適に機能します。また、インターネットやメールサーバーを持つネットワークに常時接続していないユーザーにもうまく機能します。ネットワーク速度が遅いユーザーの場合は、POP
はクライアントプログラムに対して、認証を行った上で各メッセージのコンテンツ全体をダウンロードするよう要求します。このプロセスは、メッセージに大きなファイルが添付されている場合に長時間かかる場合があります。
標準 POP
プロトコルの最新版は POP3
です。
ただし、あまり使用されていない POP
プロトコルのバリアントにも様々な種類があります。
-
APOP:
MD5
認証を使用したPOP3
です。暗号化されていないパスワードを送信するのではなく、エンコードされたユーザーパスワードのハッシュが電子メールクライアントからサーバーへ送信されます。 -
KPOP: Kerberos 認証を使用した
POP3
です。 -
RPOP:
RPOP
認証を使用したPOP3
です。これは、パスワードに似たユーザーごとの ID を使用し、POP 要求を認証します。ただしこの ID は暗号化されていないため、RPOP
のセキュリティーレベルは標準POP
と同程度です。
セキュリティーを改善するために、クライアント認証およびデータ転送セッションに Secure Socket Layer (SSL) 暗号化を使用できます。SSL 暗号化を有効にするには、以下を使用します。
-
pop3s
サービス -
stunnel
アプリケーション -
starttls
コマンド
メール通信のセキュリティー保護に関する詳細は、「通信のセキュリティー保護」 を参照してください。
15.1.2.2. IMAP
Red Hat Enterprise Linux のデフォルトの IMAP
サーバーは Dovecot で、dovecot パッケージで提供されます。Dovecot のインストール方法は 「POP」 を参照してください。
IMAP
メールサーバーを使用する場合は電子メールメッセージはサーバーに残るため、ユーザーはメッセージの読み取り、または削除を行うことができます。また、IMAP
により、クライアントアプリケーションがサーバー上でメールディレクトリーの作成、名前変更、削除を行い電子メールを整理、保存することもできます。
IMAP
は複数のマシンを使用して電子メールにアクセスするユーザーに特に役立ちます。このプロトコルでは、メッセージが開封されるまでは、電子メールのヘッダー情報しかダウンロードされず帯域幅を節減できるため、低速な接続でメールサーバーに接続するユーザーにも便利です。ユーザーは、メッセージを表示またはダウンロードすることなく削除することも可能です。
便宜上、IMAP
クライアントアプリケーションは、メッセージのコピーをローカルでキャッシュすることが可能です。そのため、ユーザーは IMAP
サーバーに直接接続していない時でも、既読メッセージを閲覧することができます。
IMAP
は POP
と同様に、電子メールのファイル添付を可能にする MIME などの重要なインターネットメッセージング標準と完全に互換性があります。
セキュリティーを強化するには、SSL
暗号化をクライアント認証とデータ転送セッションに使用することができます。これは、imaps
サービスまたは stunnel
プログラムを使用して有効にできます。
-
pop3s
サービス -
stunnel
アプリケーション -
starttls
コマンド
メール通信のセキュリティー保護に関する詳細は、「通信のセキュリティー保護」 を参照してください。
無償や商用の IMAP クライアントおよびサーバーは他にも提供されています。これらの多くは、IMAP プロトコルを拡張し、追加機能を提供します。
15.1.2.3. Dovecot
IMAP
および POP3
プロトコルを実装する imap-login
プロセスと pop3-login
プロセスは、dovecot パッケージに含まれているマスターの dovecot
デーモンが生成します。IMAP
および POP
の使用は、/etc/dovecot/dovecot.conf
設定ファイルで設定されます。デフォルトでは、dovecot
は、SSL
を使用するセキュアなバージョンとともに IMAP
および POP3
を実行します。POP
を使用するように dovecot
を設定するには、以下の手順を実行します。
protocols
変数がコメント解除されていて (行頭のハッシュ記号 (#
) を削除)、pop3
引数を含むよう/etc/dovecot/dovecot.conf
設定ファイルを編集します。以下に例を示します。protocols = imap pop3 lmtp
protocols
変数がコメントアウトされている場合、dovecot
は上記のようにデフォルト値を使用します。root
で以下のコマンドを実行して、現行セッションで変更を可能にします。~]# systemctl restart dovecot
この変更を次回の再起動後に有効にするには、以下のコマンドを実行します。
~]# systemctl enable dovecot Created symlink from /etc/systemd/system/multi-user.target.wants/dovecot.service to /usr/lib/systemd/system/dovecot.service.
注記dovecot
が報告するのはIMAP
サーバーを起動したことだけですが、POP3
サーバーも起動する点に注意してください。
SMTP
とは異なり、IMAP
と POP3
は、接続するクライアントを、ユーザー名とパスワードを使用して認証する必要があります。デフォルトでは、両方のプロトコルのパスワードは、暗号化されていないネットワーク上で渡されます。
dovecot
で SSL
を設定するには、以下を実行します。
/etc/dovecot/conf.d/10-ssl.conf
設定を編集して、ssl_protocols
変数がコメント解除されていて、!SSLv2 !SSLv3
変数を含めるようにします。ssl_protocols = !SSLv2 !SSLv3
これらの値により、
dovecot
は、安全でないことがわかっている SSL バージョン 2 および 3 を回避するようになります。これは POODLE: SSLv3 脆弱性 (CVE-2014-3566) で説明されている脆弱性が原因です。詳細は、Postfix および Dovecot における POODLE SSL 3.0 脆弱性問題 (CVE-2014-3566) の解決方法 を参照してください。/etc/dovecot/conf.d/10-ssl.conf
には、以下のオプションが含まれます。ssl=required
-
/etc/pki/dovecot/dovecot-openssl.cnf
設定ファイルを必要に応じて編集します。ただし、標準的なインストールではこのファイルへの変更は必要ありません。 -
/etc/pki/dovecot/certs/dovecot.pem
ファイルおよび/etc/pki/dovecot/private/dovecot.pem
ファイルの名前変更、移動、削除を行います。 /usr/libexec/dovecot/mkcert.sh
のスクリプトを実行して、dovecot
の自己署名証明書を作成します。証明書は/etc/pki/dovecot/certs
および/etc/pki/dovecot/private
ディレクトリーにコピーされます。変更を実装にするには、root
で以下のコマンドを実行してdovecot
を再起動します。~]# systemctl restart dovecot
dovecot
の詳細は http://www.dovecot.org でオンラインで参照できます。