CentOS4.x Courier-IMAP4.0.4

Postfix+Courier-IMAPでPOP3サーバを構築します

Postfixの導入でPostfixが動作する状態での設定記録です

導入するバージョン

導入するバージョンは

Courier authentication library Version:0.57 (22-Jul-2005)
Courier-IMAP Version:4.0.4 (24-Jul-2005)
です

ソースの入手

Courier-IMAPはyumのリポジトリにない為、以下の様にしてソースを入手します。

このソースよりRPMを作成し、インストールします。

Courier authentication library

http://www.courier-mta.org/download.php#authlibよりダウンロードする。

ファイル名は、courier-authlib-0.57.tar.bz2

$ wget http://puzzle.dl.sourceforge.net/sourceforge/courier/courier-authlib-0.57.tar.bz2

Courier-IMAP

http://www.courier-mta.org/download.php#imapよりダウンロードする。

ファイル名は、courier-imap-4.0.4.tar.bz2

$ wget http://heanet.dl.sourceforge.net/sourceforge/courier/courier-imap-4.0.4.tar.bz2

Courier authentication libraryの導入

先程入手したソースからRPMを作成し導入します。

RPMパッケージの作成

RPMパッケージの作成は一般ユーザで行います。

一般ユーザでBUILDできる様にする為の設定はこちらを参照。

$ rpmbuild -ta courier-authlib-0.57.tar.bz2

依存関係でエラーとなる場合、rootにて必要なパッケージをインストールすること

Buildに成功すると、${HOME}/rpm/RPMS/i386下に以下のRPMが作成される。
courier-authlib-0.57-1.i386.rpm
courier-authlib-devel-0.57-1.i386.rpm
courier-authlib-userdb-0.57-1.i386.rpm
courier-authlib-ldap-0.57-1.i386.rpm
courier-authlib-mysql-0.57-1.i386.rpm
courier-authlib-pgsql-0.57-1.i386.rpm
courier-authlib-pipe-0.57-1.i386.rpm

インストール

とりあえず、生成したRPMを全部いれることにする。

rootになり、先程生成したRPMをインストールします。

# rpm -ivh courier-*.rpm
Preparing...                ########################################### [100%]
   1:courier-authlib        ########################################### [ 14%]
   2:courier-authlib-devel  ########################################### [ 29%]
   3:courier-authlib-ldap   ########################################### [ 43%]
   4:courier-authlib-mysql  ########################################### [ 57%]
   5:courier-authlib-pgsql  ########################################### [ 71%]
   6:courier-authlib-pipe   ########################################### [ 86%]
   7:courier-authlib-userdb ########################################### [100%]

Courier-IMAPの導入

先程入手したソースからRPMを作成し導入します。

RPMパッケージの作成

RPMパッケージの作成は一般ユーザで行います。

一般ユーザでBUILDできる様にする為の設定はこちらを参照。

CentOS4の場合、日本語検索機能がfamからgaminに変更された為、SPECファイルの修正が必要である。

その為、ソースアーカイブ中にあるSPECファイルを編集する。

ソースアーカイブの配置

ソースアーカイブ(courier-imap-4.0.4.tar.bz2)をRPMBUILDディレクトリのSOURCESディレクトリに配置する

$ cp courier-imap-4.0.4.tar.bz2 ~/rpm/SOURCES

SPECファイルの配置

ソースアーカイブ(courier-imap-4.0.4.tar.bz2)の中よりSPECファイルを取りだし、

RPMBUILDディレクトリのSPECSディレクトリに配置する

$ tar jxvf courier-imap-4.0.4.tar.bz2
$ cp courier-imap-4.0.4/courier-imap.spec ~/rpm/SPECS/

SPECファイルの変更

~/rpm/SPECS/courier-imap.specの以下を変更する。

1. gamin-develへの変更
   ファイル内の「fam-devel」と記載されている所をすべて「gamin-devel」と変更する。(二箇所)
2. iso-2022-jpへの変更
   %define xflags --enable-unicode=iso-8859-1,utf-8
   と記載されている部分を
   %define xflags --enable-unicode=iso-2022-jp,utf-8
   とする。

RPMの生成

一般ユーザにて以下を実行します。

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

依存関係でエラーとなる場合、rootにて必要なパッケージをインストールすること

これで、${HOME}/rpm/RPMS/i386下に以下のRPMが作成される。

courier-imap-4.0.4-1.i386.rpm

インストール

rootになり、先程生成したRPMをインストールします。

# rpm -ivh courier-imap-4.0.4-1.i386.rpm
Preparing...                ########################################### [100%]
   1:courier-imap-4.0.4-1   ########################################### [100%]

Courier-IMAPの設定

デフォルトではimap,imap-ssl,pop3,pop3-sslがすべて有効な状態です。

今回はPOP3のみ使用しようと思っているので、POP3以外は動作しない様にします。

/usr/lib/courier-imap/etc/以下にそれぞれの設定ファイルがあるので編集します。

POP3-SSL

/usr/lib/courier-imap/etc/pop3dのPOP3DSSLSTARTをNOにする

POP3DSSLSTART=NO

IMAP

/usr/lib/courier-imap/etc/imapdのIMAPDSTARTをNOにする

IMAPDSTART=NO

IMAP-SSL

/usr/lib/courier-imap/etc/imapd-sslのIMAPDSSLSTARTをNOにする

IMAPDSSLSTART=NO

Postfixの設定

Courier-IMAPはMaildir形式のみサポートしているので、PostfixをMaildir形式にする。

Postfixの設定ファイルである/etc/postfix/main.cfに以下を定義する。

home_mailbox = Maildir/

変更後は、Postfixを再起動する。

# /etc/rc.d/init.d/postfix restart

ファイアウォール(iptables)の変更

iptablesが起動している場合、デフォルトでPOP3ポート(110)はブロックされているので自ホストからは接続できるが、他端末からは接続できない。

iptablesの設定ファイルである/etc/sysconfig/iptablesに以下を追加し、POP3ポートを通過させる様にする。

      :                :             :
      :                :             :
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 110 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT

変更後は、iptablesを再起動する。

# /etc/rc.d/init.d/iptables restart

自動起動設定

多分、すでに自動起動設定になっていると思うのですが、念のため。

# chkconfig courier-authlib on
# chkconfig courier-imap on

起動

courier-authlib及びcourier-imapを起動する。

# /etc/rc.d/init.d/courier-authlib start
# /etc/rc.d/init.d/courier-imap start

動作確認

適当なメーラ(Thunderbirdなど)で設定後メール受信してみる。

また、telnetで110番ポートにつないでみてもよろしいかと。

#telnet localhost 110
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
+OK Hello there.
USER foo
+OK Password required.
PASS ******
+OK logged in.
LIST
+OK POP3 clients that break here, they violate STD53.
1 675
RETR 1
+OK 675 octets follow.
Return-Path: <foo@saturday.example.com>
X-Original-To: foo@saturday.example.com
Delivered-To: foo@saturday.example.com
Received: from foo@saturday.example.com (jaguar.example.com [192.168.0.209])
        by saturday.example.com (Postfix) with SMTP id 99A8C1BCD91
        for <foo@saturday.example.com>; Tue,  2 Aug 2005 14:43:42 +0900 (JST)
From: ima <foo@saturday.example.com>
To: foo@saturday.example.com
Subject: aaaaa
Date: Tue, 02 Aug 2005 14:43:44 +0900
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Mailer: TuruKame 4.07 (WinNT,501)
Message-Id: <6AC5972525723Afoo@saturday.example.com>

bbbb
cccc
.
QUIT
+OK Bye-bye.
Connection closed by foreign host.
#

関連ページ