POP3/IMAPサーバ over SSL(Courier-IMAP)の構築

Mail System Postfix SMTP-Auth SMTP-Auth+TLS SMTP+Virtual Qpopper Qpopper/SSL Courier-IMAP FetchMail Procmail WebMail AntiVirus Relay Mail

おやじは、POPサーバとして、Qpopper(over SSL)を使用していましたが、

という条件で探してみたところ、Maildir形式に対応したIMAP/POP3サーバでSSL対応となるとCourier-IMAPぐらいしかありませんので、これでいくことにしました。Postfixは設定でMaildir形式に対応できます。なお、Courier-IMAPはいろいろな認証(CRAM-MD5やCRAM-sha1等)をサポートしていますが、おやじの環境では、MUAはOutlook Expressが対象のため、plain-textとlogin認証をSSLで対応しています。他の方法は試験するすべもないので、他を参考にしてください。

■Courier-IMAPのダウンロードとインストール

 Courier-IMAPをこちらからダウンロードします。おやじがダウンロードしたのは、courier-imap-1.5.1.tar.gz です。インストールは下記のように行いますが、makeまでは一般ユーザで行わないとエラーがでるので注意が必要です。作業ディレクトリのパーミッションにも注意が必要です。おやじは、作業ユーザのhomeディレクトリにダウンロードして作業しました。

 $ cd ~
 $ tar zxfv courier-imap-1.5.1.tar.gz
 $ cd courier-imap-1.5.1
 $ ./configure --without-authmysql --without-authldap --without-authcram --without-authuserdb --without-authpgsql --without-ipv6
 $ make
 $ make check
 $ su
 password:xxxxxx
 # make install
 # make install-configure

 ここでは、先にも述べたようにMUAはOutlook Expressを対象にしているため、Courier-IMAPがサポートしているさまざまな認証モジュールは切って、UNIXパスワードでの認証のみ使う方法でインストールしています。

■Courier-IMAPの設定

Corier-IMAPの設定ファイルは /usr/lib/courier-imap/etc に作成されますが、POP3/IMAP(over SSL)で、UNIXパスワードでの認証だけ使うため、たいした設定は不要です。以下に、修正内容を示します。(青字は削除、赤字は追加、緑字は変更したものです。)
SSL証明書がApacheとメールでバラバラになっていて管理しにくいので、こちらのように統一しました。

◆imapd-sslファイルの編集

◆pop3d-sslファイルの編集

■メールディレクトリの作成とPostfixの設定変更

 メールディレクトリをMaildir形式に変更になりますので、各ユーザのホームディレクトリにMaildirを作成する必要があります。作成は、各ユーザのホームディレクトリで下記ようにコマンドを入力します。

 $ cd ~
 $ /usr/lib/courier-imap/bin/maildirmake Maildir 

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

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

  次に、今まで、Postfixではmailbox形式を採用していましたので、Maildir形式対応に変更する必要が有ります。おやじは、メールBoxをQpopper用に変更していたため、home_mailboxでのMaildirの指定と、mail_spool_directoryでのスプールディレクトリの指定を /etc/postfix/main.cf を編集して戻しました。(青字は削除、赤字は追加、緑字は変更したものです。)
 下記以外は、PostfixSMTP Authenticationのページを参考にしてください。

■Courier-IMAPの試験と自動起動の設定

サーバを再起動、起動します。おやじは、とりあえずQpopperが動いているのでIMAPのみ起動して試験し、それを踏まえてPOP3側を切り替えました。
 # /usr/sbin/postfix reload
 # /usr/lib/courier-imap/libexec/imapd-ssl.rc start
 # /usr/lib/courier-imap/libexec/pop3d-ssl.rc start

 正常に起動しているか、以下のコマンド(netstat -ln)で各サービスのポートが表示されるか確認します。

 # netstat -ln

 tcp    0    0 0.0.0.0:993    0.0.0.0:*    LISTEN ←imapd-ssl
 tcp    0    0 0.0.0.0:995    0.0.0.0:*    LISTEN ←pop3d-ssl
 tcp    0    0 0.0.0.0:25     0.0.0.0:*    LISTEN ←smtp
    0


 起動が確認できたら、ログイン認証、メールの送受信試験をします。
 試験が終了したら、システム再起動時にimapd-ssl、pop3d-sslが自動起動するよう、Postfixと同様に上記コマンドを /etc/rc.d/rc.local に下記のように追加しておきます。 

 # vi /etc/rc.d/rc.local
 /usr/lib/courier-imap/libexec/imapd-ssl.rc start
 /usr/lib/courier-imap/libexec/pop3d-ssl.rc start
install.htmlを見ていたら、自動起動に関してinit.dで起動できるスクリプトがあることがわかり設定を変更し、上記、rc.localのコマンドをコメントアウトしました。(2002.07.12)
 スクリプトは、作業ユーザのhomeディレクトリで解凍したcourier-imap-1.5.1フォルダ内にあるサンプルスクリプト(courier-imap.sysvinit)を使用します。但し、このサンプルスクリプトでは、初回起動時に自動的にダミーのSSL証明書を作成するようになっているので、そこをコメントアウト(赤字)して利用します。IMAP用とPOP3用の2箇所あります。
 $ cd ~
 $ su
 password:xxxxxxxx
 # cp /home/oyaji/courier-imap-1.5.1/courier-imap.sysvinit /etc/rc.d/init.d/courier-imap
 # chmod 755 /etc/rc.d/init.d/courier-imap
 # vi /etc/rc.d/init.d/courier-imap

      :
      :

    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

      :
      :

     # 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]で保存

 # chkconfig --add courier-imap
 # chkconfig --list courier-imap
  courier-imap 0:オフ 1:オフ 2:オン 3:オン 4:オン 5:オン 6:オフ
これで、ランレベル2、3、4、5で起動、停止が可能となります。

 クライアントの設定(サーバ証明書(cert.der)のインストール、Outlook Expressの設定)については、Qpopper-SSLを参照してください。
 


Mail System Postfix SMTP-Auth SMTP-Auth+TLS SMTP+Virtual Qpopper Qpopper/SSL Courier-IMAP FetchMail Procmail WebMail AntiVirus Relay Mail