harumaki.net

インフラ屋の覚書や、ラーメン食べある記とか。

CentOS MAIL

courier-imapのインストール(RPMパッケージの作成)

投稿日:2005年7月2日

▼courier-imapのインストール(RPMパッケージの作成) ※CentOS4

POP/IMAPサーバ用にインストールするcourier-imapだが
バージョン4からauthdeamonがcourier-authlibというパッケージに独立したので
一緒にインストールし、デーモンを同時実行する必要がある。
その分セキュアになったと思われるので、いいかな?と思いつつ。

【参照サイト】お世話になっています。

IMAP4 インストール/設定(Courier-IMAP)
http://www.dragoncity.ne.jp/construction/mailserve2.html

■courier-authlibのパッケージ作成とインストール

courier-imap4をインストールする際、まずcourier-authlib-develを
インストールする必要がある。
これはcourier-authlibに含まれるが、RPMにすると
ひとつのパッケージとして生成されるので必要なものだけインストールできて便利。
というわけでRPMパッケージを作成してからインストール。

1)ダウンロードとRPMパッケージ作成。

ソースパッケージをダウンロードしたら、RPMの作業ディレクトリへ移動し
そのままrpmbuildしてOK。

※ていうかwgetするときに/usr/src/redhat/SOURCESで落としたほうが早いw

[[email protected] src]# pwd
/usr/local/src
[[email protected] src]# wget http://jaist.dl.sourceforge.net/sourceforge/courier/courier-authlib-0.56.tar.bz2
[[email protected] src]# mv courier-authlib-0.56.tar.bz2 /usr/src/redhat/SOURCES
[[email protected] src]# cd /usr/src/redhat/SOURCES
[[email protected] SOURCES]# rpmbuild -ta courier-authlib-0.56.tar.bz2 

完了したら、パッケージを確認。

[[email protected] SOURCES]# ls -al ../SRPMS/RPMS/i386/
合計 400
drwxr-xr-x  2 root root   4096  6 30 13:58 .
drwxr-xr-x  8 root root   4096  6 11 16:19 ..
-rw-r--r--  1 root root 195639  6 30 13:58 courier-authlib-0.56-1.i386.rpm
-rw-r--r--  1 root root  31547  6 30 13:58 courier-authlib-devel-0.56-1.i386.rpm
-rw-r--r--  1 root root  28808  6 30 13:58 courier-authlib-ldap-0.56-1.i386.rpm
-rw-r--r--  1 root root  27528  6 30 13:58 courier-authlib-mysql-0.56-1.i386.rpm
-rw-r--r--  1 root root  22856  6 30 13:58 courier-authlib-pgsql-0.56-1.i386.rpm
-rw-r--r--  1 root root  13297  6 30 13:58 courier-authlib-pipe-0.56-1.i386.rpm
-rw-r--r--  1 root root  49506  6 30 13:58 courier-authlib-userdb-0.56-1.i386.rpm
[[email protected] SOURCES]# ls -al /root/ ../SRPMS/ 
合計 1960
drwxr-xr-x  2 root root    4096  6 30 13:58 .
drwxr-xr-x  7 root root    4096  6 11 16:19 ..
-rw-r--r--  1 root root 1985663  6 30 13:58 courier-authlib-0.56-1.src.rpm

2)パッケージのインストール

上記のうち、courier-imapのインストールに必要な
courier-authlib-devel-0.56-1とcourier-authlib-0.56-1をインストール。
UNIXアカウントで認証するので、他のパッケージは不要。
LDAPやMySQL認証のパッケージなどはゆくゆく必要になったら都度インストール。

[[email protected] i386]# rpm -ivh courier-authlib-0.56-1.i386.rpm
[[email protected] i386]# rpm -ivh courier-authlib-devel-0.56-1.i386.rpm

■courier-imapのパッケージ作成とインストール

courier-imapのほうはrootでのコンパイル禁止なので
一般ユーザでリビルド、コンパイルしてインストールします。

1)ダウンロードと展開

[[email protected] ~]$ cd /home/example/
[[email protected] ~]$ wget http://jaist.dl.sourceforge.net/sourceforge/ \
courier/courier-imap-4.0.3.tar.bz2

[[email protected] ~]$ tar -jxf courier-imap-4.0.2.20050403-1.tar.bz2  -> ファイルの解凍

2)specファイル修正

[[email protected] ~]$ cd courier-imap-4.0.2.20050403-1
[[email protected] courier-imap-4.0.2.20050403-1]$ vi courier-imap.spec

追記箇所は以下のとおり。

  • 文字コードにiso-2022-jpを追加
    define xflags --enable-unicode=iso-8859-1,utf-8
    
    ↓
    
    define xflags --enable-unicode=iso-2022-jp,iso-8859-1,utf-8

3)rpmパッケージを作成

[[email protected] courier-imap-4.0.2.20050403-1]$ cd ~
[[email protected] ~]$ mkdir -p $HOME/rpm/{SOURCES,SPECS,BUILD,SRPMS,RPMS/{i386}}
[[email protected] ~]$ echo "%_topdir $HOME/rpm" >> $HOME/.rpmmacros
[[email protected] ~]$ cd courier-imap-4.0.2.20050403
[[email protected] courier-imap-4.0.2.20050403-1]$ cp courier-imap.spec ../rpm/SPECS
[[email protected] courier-imap-4.0.2.20050403-1]$ cp ../courier-imap-4.0.2.20050403-1.tar.bz2 
../rpm/SOURCES
[[email protected] courier-imap-4.0.2.20050403-1]$ rpmbuild -ba courier-imap.spec

これで実行開始。しばらくかかるので放置。
で、完了後、../RPMS/i386/を確認するとパッケージが出来ている。

[[email protected] SPECS]$ ls -al ../RPMS/i386/ 
合計 424
drwxr-xr-x  2 user user   4096  7月  1 12:57 .
drwxrwxr-x  4 user user   4096  7月  1 12:57 ..
-rw-rw-r--  1 user user 419627  7月  1 12:57 courier-imap-4.0.2.20050403-1.i386.rpm

ついでにsrcもできている。

[[email protected] SPECS]$ ls -al ../SRPMS/ 
合計 2980
drwxrwxr-x  2 user user    4096  7月  1 12:57 .
drwxrwxr-x  7 user user    4096  7月  1 12:47 ..
-rw-rw-r--  1 user user 3035523  7月  1 12:57 courier-imap-4.0.2.20050403-1.src.rpm

4)インストール。

$ su

他のimapサーバがインストールされているとコンフリクトするので
先に確認しておく。
入っていた場合は削除する。

[[email protected] SPECS]# rpm -qa | grep imap
cyrus-imapd-murder-2.2.10-1.RHEL4.1
cyrus-imapd-nntp-2.2.10-1.RHEL4.1
cyrus-imapd-devel-2.2.10-1.RHEL4.1
php-imap-4.3.9-3.2
cyrus-imapd-2.2.10-1.RHEL4.1
cyrus-imapd-utils-2.2.10-1.RHEL4.1
[[email protected] SPECS]#

上記の場合はcyrus-imapdが入っているが、削除せずに
インストールしようとすると、やはりコンフリクトが発生。
(php-imapはそのまま入れたままでOK)

[[email protected] SPECS]# cd ../RPMS/i386/
[[email protected] i386]# rpm -ivh courier-imap-4.0.2.20050403-1.i386.rpm
Preparing...                ########################################### [100%]
        file /etc/pam.d/imap from install of courier-imap-4.0.2.20050403-1 conflicts with
        file from package cyrus-imapd-2.2.10-1.RHEL4.1
[[email protected] i386]# rpm -e cyrus-imapd-2.2.10-1.RHEL4.1
[[email protected] i386]# rpm -e cyrus-imapd-2.2.10-1.RHEL4.1 cyrus-imapd-murder-2.2.10-1.RHEL4.1 \
cyrus-imapd-nntp-2.2.10-1.RHEL4.1 cyrus-imapd-devel-2.2.10-1.RHEL4.1
[[email protected] i386]# rpm -ivh courier-imap-4.0.2.20050403-1.i386.rpm
Preparing...                ########################################### [100%]
   1:courier-imap           ########################################### [100%]
[[email protected] i386]#

パッケージ作成時に展開したディレクトリなどは削除してOK。
インストールされたパッケージのディレクトリ構成は、ソースからインストール
した場合とほぼ同じ。

5)起動

  • courier-authlibの起動
    上記のとおり、courier-authlibが独立したパッケージとして
    インストールされ、saslのようにプロセスも独立するようになった。
    まずこのデーモンを起動する。
    ※これが無いとPOP/IMAPを起動しても認証できない!

    [[email protected] etc]# /etc/init.d/courier-authlib start
    Starting Courier authentication services: authdaemond
    [[email protected] etc]#
  • courier-imapの起動
    courier-imapの起動方法はパッケージでインストールした場合2種類あり、
    ソースインストール同様/usr/lib/courier-imap/libexec/以下の起動スクリプトからの起動と、
    新たに/etc/init.d/に作成される起動スクリプトから実行する方法と2種類選べる。
    但し/etc/init.d/courier-imapをそのまま実行すると
    デフォルトではpop3、pop3s、imap、imaps全てが起動するため(!!)、
    スクリプトを編集して起動するデーモンを選ぶか、または
    /usr/lib/courier-imap/libexec/から選んで起動する方法を
    選んだほうがよいかも。
    ※OSブート時は当然/etc/init.d/courier-imapが実行される。

    [[email protected] etc]# /etc/init.d/courier-authlib start-imap start
    Starting Courier-IMAP server: imap generating-SSL-certificate... 
    imap-ssl pop3 generating-SSL-certificate... pop3-ssl
    [[email protected] etc]#

続けてローカル内で実行状況を確認。

  • pop3
    [[email protected] i386]# telnet localhost 110
    Trying 127.0.0.1...
    Connected to localhost.localdomain (127.0.0.1).
    Escape character is '^]'.
    +OK Hello there.
    user user				←ユーザー名入力
    +OK Password required.
    pass ********			←パスワード入力
    +OK logged in.
    quit				←確認できたらログアウト
    +OK Bye-bye.
    Connection closed by foreign host.
    [[email protected] i386]#
  • imap
    [[email protected] i386]# telnet localhost 143
    Trying 127.0.0.1...
    Connected to localhost.localdomain (127.0.0.1).
    Escape character is '^]'.
    * OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT
    THREAD=REFERENCES SORT QUOTA IDLE ACL ACL2=UNION STARTTLS] Courier-IMAP ready.
    Copyright 1998-2005 Double Precision, Inc.  See COPYING for distribution information.
    a login user **********           ←ユーザー名とパスワードを入力
    a OK LOGIN Ok.
    a logout                           ←問題なければログアウト
    * BYE Courier-IMAP server shutting down
    a OK LOGOUT completed
    Connection closed by foreign host.
    [[email protected] i386]#

tip:ユーザーのホームディレクトリにMaildirが生成されない場合

基本的にMaildirはpostfix側で指定するので、main.cfで指定すれば
自動的にホームディレクトリに作成される(はず・・・)のだが、Maildirが作成されない場合は
/usr/lib/courier-imap/bin/にあるmaildirmakeコマンドを使用するとOK。

Maildirを作成したいユーザのホームディレクトリへ移動し、コマンドを実行するだけ。

prompt$ /usr/lib/courier-imap/bin/maildirmake Maildir

これでMaildirが作成される。
さらにuseradd時、ユーザーのホームディレクトリにデフォルトで作成したい場合は
/etc/skelでmaildirmakeを実行してディレクトリを作成しておくとOK
(要するに/etc/skelに作るだけ)

-CentOS, MAIL
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


関連記事

no image

iperf

iperf ダウンロードとインストール 実行例 iperf † 帯域を測定する、ネットワーク性能測定ツール。 こまかい使い方についてはこれから要検証。 [本家サイト] NLANR htt …

no image

postfinger

postfinger ダウンロード 実行例 postfinger Simon Mudd氏作のpostfix用ユーティリティスクリプト。 #postfixのsrc.rpmを探していてたまたま見つけた… …

[PHP] RedHat/CentOSのcurlで”SSL Connection Errorが発生しちゃった件

モバイルサイトのキャリア通信にて、ユーザー認証の部分でcurlを使っているが アプリサーバーのOSをCentOS5から6へ上げて検証していたところ、開発チームから“SSL Connecti …

no image

postfixウィルス対策[ClamAV]

&lastmod; testuser postfixウィルス対策 インストール zlib automake16 GMP clamAV clamsmtp 設定 clamsmtp postfix …

no image

カーネル負荷テストツール(LTP)

カーネル負荷テストツール(LTP) IBM、SGI、OSDLなどが共同で運営しているLinux Test Project(ltp)の提供するツール を使ってサーバへの負荷テストを行う。 ↑ …