POP/IMAPサーバの構築と不正中継対策実用qmailサーバ運用・管理術(2)(1/3 ページ)

SMTPサーバ機能だけではメールクライアントを使うことができない。今回はメールクライアントからアクセスできるようにするため、POP3、APOP、IMAP4サーバを構築する。また、不正中継対策としてPOP Before SMTPおよびIMAP Before SMTP機能を組み込もう。

» 2001年10月05日 00時00分 公開
[鶴長鎮一@IT]

メール受信環境を構築するには

 さて、サーバ(MTA)のメールボックスを直接読み書きしていたという時代ならいざ知らず、いまやUNIXをデスクトップマシンとして使っている方でさえ、POP3やIMAP4でメールを取り込むことが多くなってきていると思います。今回は、POP3やIMAP4でクライアントにメールを取り込めるようにしましょう。

メール受信を実現するプロトコル

 SMTPはメール送信プロトコルの実質的な標準であるのに対し、メールボックスからメールを取り出す仕組みは、MTA(サーバ)とMUA(各端末)のローカルな取り決めで済むため、用途に応じて複数の手段が用意されています。

  • POP3(Post Office Protocol version 3)
     バージョン3が付いていることからも分かるとおり歴史もあり、それ故に最も多くのメールクライアントに実装されています。認証時に平文でパスワードを流すため、パケット盗聴による盗み見が危惧されています。多くのプロバイダで採用されているプロトコルです。
    参考:連載:インターネット・プロトコル詳説 POP3

  • APOP(Authenticated POP)
     POPのパケット盗聴による盗み見が危険視されたため、POP version 3からAPOPコマンドによる認証がRFC 1734に規定されるようになりました。プロバイダ側のユーザー管理が煩雑になるためか、採用されるケースは多くありませんが、セキュリティを高めながら汎用性を失わない手段としては最も効果的です。

  • IMAP4(Internet Mail Access Protocol version 4)
     POPがクライアント側に完全にメッセージをダウンロードし、クライアントでメッセージの管理を行うのに対し、IMAPはサーバ側でメッセージの管理を行い、クライアント側はその操作を行います。ストレージ容量が限られているモバイル端末や複数人でPCを共有する環境などでは有効ですが、サーバ側の負担が増えるためプロバイダなどで採用されることはほとんどありません。
    参考:連載:インターネット・プロトコル詳説 IMAP4

 サーバに受信機能を組み込む際には、クライアントの対応が問題になります。どんなメールソフトがどのプロトコルに対応しているか、確認してからサーバを構築しましょう()。

注:メールソフトの対応状況はこちらを参考にしてください。

滝澤 隆史著「MUAs for Windows - Windows のメイラーの評価 -」http://www.emaillab.org/win-mailer/table-otherspec.html


SPAM対策は必須

 最近では、SPAMの温床にされないように、送信時にもユーザー確認などの防御策を講じる必要が出てきました。しかしながら、すべてのメールクライアントで「送信時の認証」が実装されているわけではないため、この方法はクライアントソフトを限定できる場合に限られます。そこで、多く用いられる手段としてPOP Before SMTPがあります。送信の前にPOPで認証を行い、それからSMTPリレーを許可するというものです。今回は受信サーバの構築とともにこちらの組み込み方法も紹介します(同様にIMAP Before SMTPについても取り上げます)。

POP3/IMAP4導入の前に

 これから構築作業に入るわけですが、以後の作業はMaildir形式でqmailが起動されていることを前提にしています。コマンドプロンプトの「#」はroot、「$」は一般ユーザーでの作業であることを示しています(「su -」は省略しています)。

 また、最近のLinuxディストリビューションは標準でPOP3やIMAP4が組み込まれているため、競合を起こさないようにサービスを停止しておく必要があります。/etc/inetd.confファイルを編集し、下記のようにPOP3、IMAP4に関する行の先頭に「#」を付けてコメントアウトします(xinetdを使用している環境では/etc/xinetd.dにある各サービスを定義しているファイル、または/etc/xinetd.confの該当セクションの中でdisable = yesとします)。

#pop3   stream  tcp     nowait  root    /usr/sbin/ipop3d       ipop3d 
#imap4  stream  tcp     nowait  root    /usr/sbin/imapd        imapd

 次に、inetdデーモンプロセスにHUP信号を送って再起動します(xinetdの場合はxinetdに置き換えてください)。

# ps -aef | grep inetd 
root       プロセス番号     1  0 09:41 ?        00:00:00 inetd -wW 
# kill -HUP プロセス番号

 また、下記のようにtelnetで、

# telnet localhost 110
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused

となることを確認し、POP3が使用するサービスポート110番がフリーになっていることを確認します。同様にIMAP4が使用する143番もフリーになっていることを確認しておきます。

# telnet localhost 143
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused

 以降の作業では、たびたびqmail起動スクリプト(前回紹介した/etc/rc.d/init.d/qmailスクリプト)の修正を行います。修正を有効にするには、下記のようにサービスの再起動が必要になります。

# /etc/rc.d/init.d/qmail stop
# /etc/rc.d/init.d/qmail start
注:/etc/rc.d/init.dがない場合は/etc/init.dに置き換えてください
       1|2|3 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。