POP3/IMAPサーバ(Courier-IMAP)の構築(CentOS編)


CentOSでは、POP3/IMAPサーバとしてDovecotが用意されており、一般的にはほとんど設定することなく利用可能です。しかし、Dovecotはmobileimapとの相性が悪くmobileimapが起動できないので、CentOSでも従来どおりCourier-IMAPを動かすことにしました。
なお、squirrelmailでは特に問題が発生しないので、mobileimapを使用しないなら管理を考えるとDovecotを使用したほうが良いと考えます。

■Courier-IMAPのダウンロードとRPMの作成

Courier-IMAPをこちらからダウンロードしますが、4.0系から認証ライブラリ(Courier authentication library)が別になったので、こちらの rpmを先に作成してインストールしてからでないと、Courier-IMAPの rpmが作成できないことと、rpmの作成までは一般ユーザで行わないとエラーがでるので注意が必要です。作業ディレクトリのパーミッションにも注意が必要です。おやじは、作業ユーザのhomeディレクトリにダウンロードして作業しました。
また、CentoOSやFedora Core3ではfamの替わりにgaminが採用されているので、specファイルを少し変更しないとrpmを作成できません。

  1. 準備作業として、作業ユーザの homeディレクトリに rpmの作成環境を作成する。

    $ cd ~
    $ mkdir -p $HOME/rpm/{SOURCES,SPECS,BUILD,SRPMS,RPMS/i386}
    $ echo "%_topdir   $HOME/rpm" >> $HOME/.rpmmacros

  2. 作成した rpm作成環境の SOURCESディレクトリに移動して、courier authentication library をダウンロードして、rpmを作成する。

    $ cd ~/rpm/SOURCES
    $ wget http://jaist.dl.sourceforge.net/sourceforge/courier/courier-authlib-0.55.tar.bz2
    $ rpmbuild -ta courier-authlib-0.55.tar.bz2

  3. rootになり、作成された rpmファイルを確認し必要なものをインストールする。おやじはlogin認証だけなので、courier-authlib-0.55-1.i386.rpmと courier-authlib-devel-0.55-1.i386.rpmのみをインストールした。なお、SRPMSフォルダにはsrpmができている。

    $ su -
    password:xxxxx
    # cd ../RPMS/i386
    # ls
    courier-authlib-0.55-1.i386.rpm
    courier-authlib-devel-0.55-1.i386.rpm
    courier-authlib-userdb-0.55-1.i386.rpm
    courier-authlib-ldap-0.55-1.i386.rpm
    courier-authlib-mysql-0.55-1.i386.rpm
    courier-authlib-pgsql-0.55-1.i386.rpm
    courier-authlib-debuginfo-0.55-1.i386.rpm
    # rpm -Uvh courier-authlib-0.55-1.i386.rpm courier-authlib-devel-0.55-1.i386.rpm

  4. 続いて courier-imapのrpmを作成するため再度作業ユーザに戻り、作成した rpm作成環境の SOURCESディレクトリに移動して、courier-imapをダウンロードして解凍する。

    $ cd ~/rpm/SOURCES
    $ wget http://jaist.dl.sourceforge.net/sourceforge/courier/courier-imap-4.0.2.tar.bz2
    $ tar -jxf courier-imap-4.0.2.tar.bz2

  5. 解凍したcourier-imapのフォルダ内にあるspecファイルを編集し、~/rpm/SPECSフォルダに置く。変更したのは、famからgaminへの変更と日本語検索機能のための unicodeへの iso-2022-jpの追加である。

    $ sed -e "s/fam/gamin/g" \
            -e "s/iso-8859-1/iso-2022-jp,iso-8859-1/g" \
            ./courier-imap-4.0.2/courier-imap.spec > ../SPECS/courier-imap.spec

  6. SPECSディレクトリに移動してrpmを作成する。依存関係で警告が出たら、Yumでインストールする。

    $ cd ../SPECS
    $ rpmbuild -ba courier-imap.spec

  7. rootになり、作成された rpmファイルを確認しインストールする。なお、SRPMSフォルダにはsrpmができている。

    $ su -
    password:xxxxx
    # cd ../RPMS/i386
    # ls
    courier-imap-4.0.2-1.i386.rpm
    # rpm -Uvh courier-imap-4.0.2-1.i386.rpm

なお、おやじが作成したCentOS4.0用のrpmをこちらに置いておきます。

■Courier-IMAPの設定

Corier-IMAPをrpmからインストールすると、デフォルトでPOP3/POP3 over SSL/IMAP/IMAP over SSLの4つのモードが起動されます。おやじは、全て起動してルータやファイヤウォールでアクセス制御していますが、不必要なものは止めておいたほうが良いでしょう。設定ファイルは /usr/lib/courier-imap/etc に作成されますので、その内容を修正していきます。以下に、修正内容を示します。(青字は削除、赤字は追加、緑字は変更したものです。)
なお、SSL証明書については、サーバ証明書の作成を参照して作成してください。

◆pop3dファイルの編集(POP3未使用時)

◆pop3d-sslファイルの編集

◆imapdファイルの編集(IMAP未使用時)

◆imapd-sslファイルの編集

■メールBoxの作成とPostfixの設定

Corier-IMAPのメールBoxはMaildir形式なので、各ユーザのホームディレクトリにMaildirを作成するとともに、PostfixのMaildir形式対応にします。

◆メールBoxの作成

メールBoxを作成するには、各ユーザのホームディレクトリで下記のようにコマンドを入力します。
$ cd ~
$ /usr/lib/courier-imap/bin/maildirmake Maildir 

 新規ユーザ作成時に、自動的にユーザホームディレクトリにMaildirが作られるようにするには、root で「/etc/skel」にも作成しておきます。

# /usr/lib/courier-imap/bin/maildirmake /etc/skel/Maildir 


◆Postfixの設定

PostfixをMaildir形式対応にするには、/etc/postfix/main.cf を編集してhome_mailboxでのMaildirの指定と、mail_spool_directoryでのスプールディレクトリの指定を行います。(青字は削除、赤字は追加、緑字は変更したものです。)
 下記以外は、Postfixのページを参考にしてください。

■Courier-IMAPの自動起動の設定

rpmからインストールすると、courier-authlibと courier-imapの自動起動スクリプトがインストールされ、ランレベル2、3、4、5で起動、停止が可能となっていますので、特に設定は必要はありません。
但し、courier-imapのスクリプト(/etc/rc.d/init.d/courier-imap)では、初回起動時に自動的にダミーのSSL証明書を作成するようになっているので、そこをコメントアウト(赤字)して利用します。IMAP用とPOP3用の2箇所あります。使用しなければいいだけなので、変更しなくても特に問題はありません。
# vi /etc/rc.d/init.d/courier-imap

      :
     (snip)
      :


    if test -x $COURIERTLS
    then

    # First time we start this, generate a dummy SSL certificate.

#      if test ! -f ${prefix}/share/imapd.pem
#      then
#      echo -n " generating-SSL-certificate..."
#      ${prefix}/share/mkimapdcert >/dev/null 2>&1
#      fi
       /usr/lib/courier-imap/libexec/imapd-ssl.rc start
       echo -n " imap-ssl"
    fi

      :
     (snip)
      :

     # First time we start this, generate a dummy SSL certificate.

#      if test ! -f ${prefix}/share/pop3d.pem
#      then
#      echo -n " generating-SSL-certificate..."
#      ${prefix}/share/mkpop3dcert >/dev/null 2>&1
#      fi
       /usr/lib/courier-imap/libexec/pop3d-ssl.rc start
       echo -n " pop3-ssl"
    fi

[Esc],[:],[w],[q]で保存



Top Pageへ