POP/IMAPサーバの構築と不正中継対策:実用qmailサーバ運用・管理術(2)(3/3 ページ)
SMTPサーバ機能だけではメールクライアントを使うことができない。今回はメールクライアントからアクセスできるようにするため、POP3、APOP、IMAP4サーバを構築する。また、不正中継対策としてPOP Before SMTPおよびIMAP Before SMTP機能を組み込もう。
IMAP4とIMAP Before SMTPの導入
IMAP4の導入
次に、Maildirに対応しているcourier-imapを使って、IMAP4サーバを構築してみましょう。
courier-imapはIMAP4だけでなくPOP3も兼ね備え、SSLが実装されているため、より安全にサービスを提供できます(クライアントもSSLに対応させる必要がありますが)。Webメールを構築する場合も、IMAP4サーバを利用すればプログラム側の負担を減らせます。また、Maildirのquotaなど魅力的な機能を備えているので、興味がある方はCourier Mail Serverのホームページ(http://www.courier-mta.org/)を参照してください。
POP3はqmailパッケージに含まれるqmail-pop3dを使用したため、スムーズに既存のqmailサービスに組み込むことができました。しかし、IMAP4はまったくゼロの状態から構築することになります。また、courier-imapはコンフィグの過程ですでに組み込まれているOpenSSL、OpenLDAP、MySQLを自動で検出して認証モジュールに組み込むため、意図せず古いバージョンが混在していた場合、インストールに失敗することがあります。特に、OpenSSLは0.9.5a以上が前提になります。OpenSSLを最新版にするには、下記の手順あるいは各ディストリビュータが配布しているアップデートファイルを使ってインストールしましょう。
$ tar xvfz openssl-0.9.6.tar.gz $ cd openssl-0.9.6 $ ./config $ make $ make test # make install
では、courier-imapをインストールしてみましょう。
http://www.courier-mta.org/download.phpからcourier-imap-1.3.11.tar.gzをダウンロードして、下記の手順を実行します。rootで実行するとmake check時に警告が出力されて続行できないため、一般ユーザーで作業します。
$ tar xvfz courier-imap-1.3.11.tar.gz $ cd courier-imap-1.3.11 $ ./configure --prefix=/usr/local
ここでは/usr/local下にインストールするようにします。また、MySQLやLDAPを自動検出しないようにするには次のようにします。
$ ./configure --without-authmysql --without-authldap --prefix=/usr/local $ make $ make check
次に、courier-imapのインストールで上書きされてしまう/etc/pam.d/imap、/etc/pam.d/pop3のバックアップを取っておきます(ない場合もあります)。courier-imapのPOP3機能を使用する場合は上書きされても構いませんが、checkpasswordを使う場合はバックアップから戻す必要があります。
# cd /etc/pam.d/ # cp imap imap.org # cp pop3 pop3.org # make install # make install-configure
これまでの操作で下記のようにインストールされるはずです。
/usr/local/etc/ | 設定ファイル |
---|---|
/usr/local/libexec/ | 実行ファイル |
/usr/local/libexec/authlib/ | 認証のための拡張モジュール |
それではIMAP4を起動してみましょう。起動には/usr/local/libexec/imapd.rcスクリプトファイルを使用します。
# /usr/local/libexec/imapd.rc start
サーバの起動とともにcourier-imapも起動するようにするには、下記のようにします。
# cp /usr/local/libexec/imapd.rc /etc/rc.d/init.d/imapd # ln -s /etc/rc.d/init.d/imapd /etc/rc.d/rc2.d/S99imapd # ln -s /etc/rc.d/init.d/imapd /etc/rc.d/rc3.d/S99imapd # ln -s /etc/rc.d/init.d/imapd /etc/rc.d/rc5.d/S99imapd
うまく動作しない場合は、/var/log/maillogを手掛かりにしてください。認証に拡張モジュールが組み込まれてしまって思うように動作しない場合は、下記の要領で拡張モジュールを外します。
# cd /usr/local/libexec/authlib/ # mkdir old # mv authdaemond.ldap old/ # mv authdaemond.mysql old/
その後、courier-imapを立ち上げ直します。
# /usr/local/libexec/imapd.rc stop # /usr/local/libexec/imapd.rc start
IMAP4とPOP3は併用可能ですが、POP3でメッセージをクライアントに取り込んでしまうとIMAP4でサーバに接続した際にメッセージが読めなくなるので注意が必要です。また、courier-imapのインストール後にほかのPOP3が機能しなくなった場合は先ほどバックアップを取った/etc/pam.d/pop3を復元します。
IMAP Before SMTPの導入
IMAP Before SMTPの導入は、POP Before SMTPの場合とほとんど同様です。
具体的には、courier-imapの起動スクリプト(/usr/local/libexec/imapd.rc)に下記のように1行追加するだけです。
〜省略〜 /usr/local/libexec/couriertcpd -address=$ADDRESS \ -stderrlogger=/usr/local/libexec/logger \ -stderrloggername=imapd \ -maxprocs=$MAXDAEMONS -maxperip=$MAXPERIP \ -pid=$PIDFILE $TCPDOPTS \ $PORT ${exec_prefix}/sbin/imaplogin $LIBAUTHMODULES \ /usr/sbin/relay-ctrl-allow \ (*) ${exec_prefix}/bin/imapd Maildir" 〜省略〜
そのほかのPOP/IMAP系ソフトウェア
今回は機能ごとに代表的なソフトを紹介しましたが、courier-imapのようにIMAP4とPOP3を兼ね備えたものもあります。さらに、POP
Before SMTP機能を最初から実装しているものやシステムのPAMで認証を行える(/etc/shadowによるパスワード管理ができる)APOPなどもあります。
- imapd extensions
IMAP4の定番であるWU-IMAPDに、Maildirを扱うためのパッチを当てたもの。Maildir対応以外にも、popperとしての機能をほぼ網羅しています。http://www.gentei.org/~yuuji/software/imapext/ - qmapop
POP before SMTPを実装したAPOP認証パッケージです。http://www.emaillab.org/djb/qmapop/
次回は不正中継・SPAM対策を取り上げます。今回、POP Before SMTPやIMAP Before SMTPで不正中継を防ぎながらユーザビリティを損なわない方法を紹介しましたが、次回はさらに掘り下げてSPAMの踏み台やSPAMの対象にされてしまった場合についても触れていきます。
Copyright © ITmedia, Inc. All Rights Reserved.