第27章 メール
初期の 1960 秒で電子メール(電子メール)の生存日が発生しました。メールボックスは、そのユーザーのみが読み取り可能なユーザーのホームディレクトリー内のファイルでした。プリミティブメールアプリケーションは、ファイルの下部に新しいテキストメッセージを追加し、ユーザーが継続的に拡大したファイルをウォードし、特定のメッセージを見つけます。このシステムは、同じシステムのユーザーにのみメッセージを送信できました。
Ray Tomlinson という名前のコンピューターエンジニアが ARPANET を介して 2 台のマシン間でテストメッセージを送信した場合、電子メールメッセージファイルの最初のネットワーク転送は 1971 年にかかりました(インターネットへのプリキューター)。メールによる通信はまもなく一般的になり、ARPANET のトラフィックの 50% は 2 年未満に設定されています。
現在、標準化されたネットワークプロトコルに基づく電子メールシステムは、インターネット上で最も広く使用されているサービスの一部に進化しています。Red Hat Enterprise Linux は、メールを提供し、アクセスするための高度なアプリケーションを多数提供します。
本章では、現在使用している最新の電子メールプロトコルと電子メールの送受信用に設計されたプログラムについて説明します。
27.1. メールプロトコル
今日、電子メールはクライアント/サーバーのアーキテクチャーを使用して配信されています。電子メールのメッセージは、メールクライアントプログラムを使用して作成されます。次に、このプログラムがメッセージをサーバーに送信します。その後、サーバーはメッセージを受信者のメールサーバーに転送します。ここで、メッセージは受信者の電子メールクライアントに渡されます。
このプロセスを有効にするために、各種の標準のネットワークプロトコルが異なるマシンによる (多くの場合、異なるオペレーティングシステムで、異なる電子メールプログラムを使用) 電子メールの送受信を可能にしています。
以下は、電子メールの転送に最も一般的に使用されているプロトコルです。
27.1.1. メール転送プロトコル
クライアントアプリケーションからサーバーへのメール配信、および送信元サーバーから宛先サーバーへのメール配信は、SMTP( Simple Mail Transfer Protocol )によって処理されます。
27.1.1.1. SMTP
SMTP の第一の目的は、メールサーバー間における電子メールの転送です。ただし、これは、メールクライアントにも重要です。メールを送信するには、クライアントが送信メールサーバーにメッセージを送信し、配信先メールサーバーに接続します。このため、メールクライアントの設定時に SMTP サーバーを指定する必要があります。
Red Hat Enterprise Linux では、ユーザーはローカルマシンで SMTP サーバーを設定してメール配信を処理できます。ただし、送信メール用にリモート SMTP サーバーを設定することも可能です。
SMTP プロトコルに関して重要なのは認証が不要である点です。これにより、インターネット上の誰でも、個人や大規模なグループに対してでも電子メールを送信できます。ジュークメールや スパム を可能にする SMTP のこの特性です。リレー制限を課すと、インターネット上の任意のユーザーが、ご使用の SMTP サーバーを介してインターネット上の別のサーバーへ電子メールを送信することが制限されます。このような制限を課さないサーバーは、オープンリレー サーバーと呼ばれます。
デフォルトでは、Sendmail (/usr/sbin/sendmail)は、Red Hat Enterprise Linux におけるデフォルトの SMTP プログラムです。ただし、Postfix (/usr/sbin/postfix)と呼ばれるシンプルなメールサーバーアプリケーションも利用できます。
27.1.2. メールアクセスプロトコル
メールサーバーから電子メールを取得するために、電子メールクライアントアプリケーションが使用する主なプロトコルは 2 つあります。POP( Post Office Protocol )と Internet Message Access Protocol (IMAP)。
27.1.2.1. POP
Red Hat Enterprise Linux のデフォルトの POP サーバーは /usr/lib/cyrus-imapd/pop3d で、
cyrus-imapd
パッケージで提供されます。POP サーバーを使用する場合、電子メールメッセージは電子メールクライアントアプリケーションによってダウンロードされます。デフォルトでは、ほとんどの POP 電子メールクライアントでは、電子メールサーバーのメッセージが正常に転送された後に削除されるように自動的に設定されます。ただし、この設定は通常は変更できます。
POP は、電子メールのファイル添付を可能にするMIME( Multipurpose Internet Mail Extensions )などの重要なインターネットメッセージング標準と完全に互換性があります。
POP は、電子メールを読み取るシステムを 1 つ持つユーザーにとって最適に機能します。また、インターネットやメールサーバーを持つネットワークに常時接続していないユーザーにもうまく機能します。ネットワーク速度が遅いユーザーの場合は、POP は各メッセージのコンテンツ全体をダウンロードするために、認証時にクライアントプログラムを必要とします。このプロセスは、メッセージに大きなファイルが添付されている場合に長時間かかる場合があります。
標準 POP プロトコルの最新バージョンは POP3 です。
ただし、あまり使用されていない POP プロトコルのバリアントが複数あります。
- APOP: MDS 認証を使用した POP3。ユーザーのパスワードのエンコードされたハッシュは、暗号化されていないパスワードを送信するのではなく、電子メールクライアントからサーバーに送信されます。
- KPOP: Kerberos 認証を使用した POP3。詳細は、「Kerberos」 を参照してください。
- RPOP: RPOP 認証を使用した POP3 です。これは、パスワードに似たユーザーごとの ID を使用し、POP 要求を認証します。ただし、この ID は暗号化されないため、RPOP は標準の POP よりも安全ではありません。
セキュリティーを強化するには、クライアント認証およびデータ転送セッションにSSL( Secure Socket Layer )暗号化を使用できます。これは、ipop3s サービスを使用するか、/usr/sbin/stunnel プログラムを使用して有効にできます。詳細は、「通信のセキュリティー保護」 を参照してください。
27.1.2.2. IMAP
Red Hat Enterprise Linux のデフォルトの IMAP サーバーは /usr/lib/cyrus-imapd/imapd で、
cyrus-imapd
パッケージで提供されます。IMAP メールサーバーを使用する場合、電子メールメッセージはサーバーに残るので、ユーザーはメッセージの読み取りや削除が可能です。また、IMAP により、クライアントアプリケーションはサーバー上でメールディレクトリーを作成、名前変更、または削除して電子メールを整理および保存することもできます。
IMAP は、複数のマシンを使用して電子メールにアクセスするユーザーに特に便利です。このプロトコルでは、メッセージが開封されるまでは、電子メールのヘッダー情報しかダウンロードされず帯域幅を節減できるため、低速な接続でメールサーバーに接続するユーザーにも便利です。ユーザーは、メッセージを表示またはダウンロードすることなく削除することも可能です。
便宜上、IMAP クライアントアプリケーションはメッセージのコピーをローカルでキャッシュできるため、IMAP サーバーに直接接続していない場合に、ユーザーは以前に読み取りメッセージを閲覧できます。
IMAP は POP と同様に、電子メールのファイル添付を可能にする MIME などの重要なインターネットメッセージング標準と完全に互換性があります。
セキュリティーを強化するには、クライアント認証およびデータ転送セッションに SSL 暗号化を使用できます。これは、imaps サービスを使用するか、/usr/sbin/stunnel プログラムを使用して有効にできます。詳細は、「通信のセキュリティー保護」 を参照してください。
無償や商用の IMAP クライアントおよびサーバーは他にも提供されています。これらの多くは、IMAP プロトコルを拡張し、追加機能を提供します。包括的なリストは http://www.imap.org/products/longlist.htm でオンラインで参照できます。
27.1.2.3. Dovecot
IMAP および POP3 プロトコルを実装する
imap- login
デーモンおよび pop
3-login デーモンは、dovecot
パッケージに含まれています。IMAP および POP の使用は、dovecot
を使用して設定されます。デフォルトでは、dovecot
は IMAP ポートと POP3 ポートの両方でリッスンし、さらに安全なバリアントもリッスンします。dovecot
の使用を開始するには、以下を実行します。
- デーモンを起動します。
service dovecot start
- 次回の再起動後にデーモンが自動的に起動するようにします。
chkconfig dovecot on
dovecot
は IMAP サーバーを起動したことを報告するだけで、POP3 サーバーも起動することに注意してください。
SMTP とは異なり、これらのプロトコルの両方で、ユーザー名とパスワードを使用してクライアントを認証する必要があります。デフォルトでは、両方のプロトコルのパスワードは、暗号化されていないネットワーク上で渡されます。
dovecot で SSL を設定するには、以下を実行します。
- 必要に応じて、
dovecot
設定ファイル/etc/pki/dovecot/dovecot-openssl.cnf
を編集します。ただし、一般的なインストールでは、このファイルを変更する必要はありません。 /etc/pki/dovecot/certs/dovecot.pem
ファイルおよび/etc/pki/dovecot/private/dovecot.pem
ファイルの名前を変更、移動、または削除します。- dovecot の自己署名証明書を作成する
/usr/share/doc/dovecot-1.0/examples/mkcert.sh
スクリプトを実行します。証明書は、/etc/pki/dovecot/certs
および/etc/pki/dovecot/private
ディレクトリーにコピーされます。変更を実装するには、dovecot
を再起動します(/sbin/service dovecot を再起動します)。
dovecot
の詳細は、オンライン( http://www.dovecot.org )を参照してください。
注記
デフォルトでは、
SSLv2
および SSLv3
は Dovecot では許可されません。POODLE SSL 脆弱性 (CVE-2014-3566) の影響を受けないようにするためです。詳細は、Postfix および Dovecot の POODLE SSL 3.0 脆弱性(CVE-2014-3566)の解決 を参照してください。