最終更新日: 2002.6.28
この文書は、Linuxサーバー上へ、LDAPをユーザー認証として利用するCyrus IMAPDのインストールとその後の設定について書かれたものです。ご意見、ご感想、ご質問はメールにて筆者までどうぞ。
この文書は、Linuxサーバー上へ、OpenLDAPをPAMを経由しCyus IMAPDのユーザー認証機構として利用するIMAPメールサーバーのインストールとその後の設定・管理について書かれたものです。筆者の備忘録として執筆したもので多少の間違いを含んでいる可能性があります。インストール並びに設定等は自己責任の元にお願い致します。また、この文書を参照して生じた障害については一切の責任を負いかねますので、事前ご了承下さい。この文書に関するご意見、ご感想、ご質問等はメールにて筆者までお願い致します。また、間違いを発見された方はよろしければ筆者までお知らせ下さい。
1.1. この文書の所在
この文書は、以下のURLに掲載しております。
http://www.robios.org/project/knowledgebase/imap/cyrus-imapd-with-openldap.html - 閉鎖
http://hp.vector.co.jp/authors/VA029885/software/article/cyrus-imapd-with-openldap.html1.2. Feedback
筆者へのご意見、ご感想、ご質問、また間違い訂正は以下のアドレスまでお願い致します。
この章では、必要なソフトウェアについて簡単に説明します。
2.1. 筆者のマシン環境
筆者のマシン環境を説明しておきます。
2.2. Cyrus IMAP Server
Cyrus IMAPサーバーはCarnegie Mellon Universityが開発したIMAPサーバーです。クライアント側へメールを蓄積するPOP3サーバーと違い、IMAPではユーザーのメールやフォルダをサーバー側へ蓄積します。クライアント側のメールリーダーは、指定されたメールやフォルダをサーバーへ読みに行きます。リーダーによってはクライアント側にキャッシュする場合もあります。IMAPサーバーの利点は、1つのメールボックスを複数のマシンやクライアントから利用できることです。例えば、ユーザーは、会社のマシンから、会社のメールリーダーを利用しこのアドレス宛へ配信されたメールを読むことができます。また、自宅のマシンからも同じようにこのアカウントへ配信されたメールを読むことができます。ここでPOP3サーバーと大きく違う点は、これら2つのメールリーダー内のメールやフォルダは完璧に同期されていることです。POP3サーバーの場合、サーバー側のメールを削除しないように設定はできますが、そもそもPOP3サーバーはそのような使われ方を想定して実装されていないので、処理が遅くなるなどの弊害が生じる恐れがあります。
Cyrus IMAPサーバーは2種のパッケージ、cyrus-imapサーバーとSASLライブラリ、から構成されます。LinuxへのインストールはRPMを利用します。http://www.rpmfind.net/ にて、プラットフォームに合うRPMを探します。筆者が利用したパッケージは、
cyrus-imapd-1.6.19-2.i386.rpm
とcyrus-sasl-1.5.11-2.i386.rpm
です。Cyrus IMAP Server: http://asg.web.cmu.edu/cyrus/imapd/
2.3. Postfix
PostfixはSendmailの置き換えとして開発されたMTA (Message Transfer Agent) です。PostfixはSendmailに比べ、設定が非常に易しく導入も比較的簡単です。
筆者が利用しているPostfixは、
postfix-19991231_pl02-4.i386.rpm
です。インストールについては、この文書では触れません。Postfix: http://www.postfix.org/
2.4. OpenLDAP
OpenLDAPは、GNUの元フリーで配布されているLDAPサーバーです。今回は、IMAPサーバーのユーザー認証にこのOpenLDAPを利用します。通常の
/etc/passwd
によるUNIXアカウントと違い、メールアカウントの追加や管理などがWEBインターフェース等から簡単にでき、またUNIXマシンに存在しないユーザーのメールアカウントを作ることもできます。すなわち、UNIXアカウントとは独立してメールアカウントを管理できるわけです。筆者が利用したOpenLDAPは、
openldap-1.2.9-6.i386.rpm
とopenldap-devel-1.2.9-6.i386.rpm
の2つのパッケージです。OpenLDAP: http://www.openldap.org/
2.5. PAM LDAP Module
PAM LDAP ModuleはLDAPをPAMから利用するためのライブラリです。
筆者が利用したPAM LDAP Moduleは
pam_ldap-42-3.i386.rpm
です。2.6. LDAP Explorer
LDAP ExplorerはLDAPサーバーへのエントリー追加・修正・削除をウェブ上にて行うためのインターフェースです。PHPスクリプトで記述されているので、PHPがインストールされていなければなりません。
2.7. Web Sieve
Sieveとは、IMAP上のメールフィルタリングソフトです。Web Sieveは、Sieveの設定をウェブ上で行うためのインターフェースです。Perlで記述されています。
2.8. Horde IMP
Horde IMP (IMAP Client) は、Hotmailに代表されるウェブメールインターフェースです。ウェブ上でIMAP上のメールを読むことができます。
この章では、各ソフトウェアのインストールについて簡単に説明します。
3.1. Cyrus IMAP Server
まずは、Cyrus SASLライブラリをインストールします。
TARアーカイブからのインストール % tar zxvf cyrus-sasl-X.X.X.tar.gz % cd cyrus-sasl-X.X.X % ./configure --with-pwcheck_method=PAM % make # make install % make clean RPMパッケージからのインストール # rpm -ivh cyrus-sasl-X.X.X.X-i386.rpm次に、Cyrus IMAPサーバーをインストールします。
TARアーカイブからのインストール % tar zxvf cyrus-imapd-X.X.X.X.tar.gz % cd cyrus-imapd-X.X.X.X % ./configure --with-auth unix // 'unix' or 'krb' % make # make install % make clean RPMパッケージからのインストール # rpm -ivh cyrus-imapd-XXX-i386.rpm3.1.1. imapd.conf
/etc
ディレクトリの中にimapd.conf
がインストールされているはずです。エディタで開き、以下のように変更します。
configdirectory: /var/imap partition-default: /var/spool/imap admins: cyrus root allowanonymouslogin: no sasl_pwcheck_method: PAM
通常のインストールでは、IMAPサーバーへ蓄積されるメールは、 /var/spool/imap
以下へ保存されます。IMAPの場合、メールをサーバーへ蓄積するので、ディスクスペースを大量に消費する恐れがあります。OSのインストール時に、/var
以下はなるべく多めに割り当てることをお勧めします。レンタルサーバーのように既に/var
以下の容量が決まっておりその容量が少ない場合は、上記のpartition-default:
で指定するディレクトリを、大きなパーティション内へと変更してください。例)/home/cyrus
但し、変更した場合は、ディレクトリのオーナー変更をお忘れなく。これについては後述。3.1.2. IMAPディレクトリの作成
RPMを利用してインストールした場合、既にこれらのディレクトリは作成されているでしょう。その場合はこの章の作業は必要ありません。 IMAPの設定ディレクトリを作成します。
imapd.conf
内の、configdirectory
で指定したディレクトリです。
# cd /var # mkdir imap # chown cyrus imap # chgrp mail imap # chmod 750 imapIMAPのスプールディレクトリを作成します。
imapd.conf
内の、partition-default
で指定したディレクトリです。/var/spool
以下に作るのなら、
# cd /var/spool # mkdir imap # chown cyrus imap # chgrp mail imap # chmod 750 imap次に、ソースコードを展開したディレクトリに戻ります。
mkimap
を実行して、ディレクトリ構成を完成させます。
# cd /usr/src/cyrus-imapd-X.X.X/ // 任意のディレクトリ # su cyrus % tool/mkimapLinuxは非同期にファイルシステムを更新しているため、万が一システムがクラッシュした場合にメールを失う可能性があります。回避するために、上で作成したディレクトリの属性を変更します。
# cd /var/imap # chattr -R +S . user quota # chattr -R +S /var/spool/imap3.1.3. syslog.conf
/etc/syslog.conf
へ以下のラインを追加します。
local6.debug /var/log/imapd.log auth.debug /var/log/auth.log追加後、
/var/log/imapd.log
を作成、Syslogdを再起動
# touch /var/log/imapd.log # kill -HUP `cat /var/run/syslogd.pid`3.1.4. 管理ユーザーの追加
管理用のユーザー、
cyrus
を追加します。グループは、
# useradd -g mail cyrus # passwd cyrus3.1.5. services
/etc/services
に以下のラインがなければ追加します。
pop3 110/tcp imap 143/tcp imsp 406/tcp kpop 1109/tcp sieve 2000/tcp3.1.6. inetd.conf
/etc/inetd.conf
に以下のいずれかの3行を追加します。
# TCP Wrapperを利用する場合 imap stream tcp nowait cyrus /usr/sbin/tcpd /usr/cyrus/bin/imapd pop3 stream tcp nowait cyrus /usr/sbin/tcpd /usr/cyrus/bin/pop3d sieve stream tcp nowait cyrus /usr/sbin/tcpd /usr/cyrus/bin/timsieved # TCP Wrapperを利用しない場合 imap stream tcp nowait cyrus /usr/cyrus/bin/imapd imapd pop3 stream tcp nowait cyrus /usr/cyrus/bin/pop3d pop3d sieve stream tcp nowait cyrus /usr/cyrus/bin/timsieved timsieved追加後、
inetd
を再起動します。
# kill -HUP `cat /var/run/inetd.pid`3.1.7. 確認
さて、ここまで終了すればIMAPはユーザーを追加していないものの、起動はするはずです。localhostにtelnetしてテストしてみましょう。
% telnet localhost imap Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. * OK foo.bar.org Cyrus IMAP4 v1.6.19 server ready . logout // タイプする * BYE LOGOUT received . OK Completed Connection closed by foreign host. %以上のようにレスポンスがあるのなら、インストールは成功しています。
. logout
とタイプし、終了しましょう。次は、ユーザーを追加する前にOpenLDAPをインストールします。
3.2. OpenLDAP
OpenLDAPをインストールします。
TARアーカイブからのインストール % tar zxvf openldap-X.X.X.tgz % cd openldap-X.X.X % ./configure % make depend % make # make install RPMパッケージからのインストール # rpm -ivh openldap-1.2.9-6.i386.rpm # rpm -ivh openldap-devel-1.2.9-6.i386.rpmTARアーカイブでのインストールの場合は、
/etc/rc.d/init.d/
に起動スクリプトを作成し、起動させたいランレベルに合わせてシンボリックリンクを張る必要があります。これについては設定の際に行います。3.3. PAM LDAP Module
PAM LDAP Moduleをインストールします。
# rpm -ivh pam_ldap-42-3.i386.rpm3.4. LDAP Explorer
LDAP Explorerをインストールします。まずはLDAP Explorerのパッケージを下記FTPよりダウンロードします。
LDAP Explorer FTP: ftp://igloo.its.unimelb.edu.au/pub/LDAPExplorer/
現在のパッケージ名は
LDAPExplorer-1.17.tar.gz
です。ウェブサーバーのコンテンツフォルダに解凍します。下記の例はウェブサーバーのドキュメントルートが
/var/www/html
である例です。
# cd /var/www/html # tar zxvf LDAPExplorer-x.xx.tar.gz3.5. Web Sieve
Web Sieveをインストールします。Web Sieveは現在SourceForgeにて開発・メンテナンスが行われています。
Web Sieve: http://sourceforge.net/projects/websieve/