検索
連載

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

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

Share
Tweet
LINE
Hatena
前のページへ |       

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
注:/etc/rc.dが存在しない場合はそれぞれ/etc/init.d、/etc/rc2.dに置き換えてください

 うまく動作しない場合は、/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などもあります。

 次回は不正中継・SPAM対策を取り上げます。今回、POP Before SMTPやIMAP Before SMTPで不正中継を防ぎながらユーザビリティを損なわない方法を紹介しましたが、次回はさらに掘り下げてSPAMの踏み台やSPAMの対象にされてしまった場合についても触れていきます。


Copyright © ITmedia, Inc. All Rights Reserved.

前のページへ |       
ページトップに戻る