最近、大学からISPに届くメールが読みたいと思うようになって来たので、家の Linux機(Debian sid)にIMAP環境を構築することにした。これはそのインストー ルメモである。(2001/8/27)
環境としては以下のようなものを構築した。
とりあえず
$ sudo apt-get install courier-imapする。これでplain passwordの認証(LOGIN認証?)ではIMAPが使えるのだが、ここ ではCRAM-MD5認証を使いたいため、courier-baseのsourceを取ってきて、ちょっ といじって、debを作り直す。
$ apt-get source courier-base $ cd courier-0.34.1/
こんな感じのパッチを当てる。
--- courier-0.34.1/debian/rules Wed Aug 22 13:59:23 2001
+++ courier-0.34.1.new/debian/rules Wed Aug 22 13:18:19 2001
@@ -49,7 +49,7 @@
--with-mysql-libs=/usr/lib \
--without-authshadow \
--without-authvchkpw \
- --without-authcram \
+ --with-authcram \
--with-db=gdbm \
--without-fcgi \
--with-htmllibdir=/usr/share/sqwebmail \
--- courier-0.34.1/debian/courier-base.files Wed Aug 22 13:59:23 2001
+++ courier-0.34.1.new/debian/courier-base.files Wed Aug 22 13:17:40 2001
@@ -17,6 +17,7 @@
/usr/lib/courier/authlib/authcustom
/usr/lib/courier/authlib/authpam
/usr/lib/courier/authlib/authuserdb
+/usr/lib/courier/authlib/authcram
/usr/lib/courier/courier/makedatprog
/usr/lib/courier/courier/modules/dsn/courierdsn
/usr/lib/courier/courier/modules/modules.ctl
--- courier-0.34.1/debian/makeauthmodulelist Wed Aug 22 13:59:23 2001
+++ courier-0.34.1.new/debian/makeauthmodulelist Wed Aug 22 13:53:54 2001
@@ -20,7 +20,7 @@
use strict;
-my @known_modules = ('authcustom', 'authuserdb', 'authmysql', 'authpam');
+my @known_modules = ('authcustom', 'authuserdb', 'authmysql', 'authpam', 'authcram');
my %known_hash;
my @installed_modules;
my $file;
debを作る。
$ dpkg-buildpackage -rfakeroot -us -uc
できたdebをインストール。
$ sudo dpkg -i courier-base_0.34.1-2_i386.deb
/etc/courier/imapd を適当に書き換える。以下最低限書き換える場所。
authcramを付け足す。
AUTHMODULES="authcram authpam"
MD5用bannerのコメントをはずす。
IMAP_CAPABILITY="IMAP4rev1 CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT AUTH=CRAM-MD5 AUTH=CRAM-SHA1"通常のbannerをコメントにする。
# IMAP_CAPABILITY="IMAP4rev1 CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT"
次に、パスワードデータベースを作る。Courier-IMAPdでは/etc/courier/userdb 以下にテキスト形式でユーザ名、パスワード等を格納し、makeuserdbでバイナリ 形式の/etc/courier/userdb.datを作成するらしい。
ということで、まずは、UNIX passwdファイルから必要なユーザのみを切り出すことにす る。[username]のところは適当なユーザ名に置き換える。
# pw2userdb | grep [username] >> /etc/courier/userdb/usersその後、CRAM-MD5用のパスワードを設定する。 makeuserdbを実行するのを忘れずに。
# userdbpw -hmac-md5 | userdb users/[username] set imap-hmac-md5pw # makeuserdb
$HOME/Maildirがない場合は作成する。
$ cd && maildirmake Maildir
以上でCourier-IMAPの設定は完了。
とりあえず
apt-get install fetchmail procmailする。
各々の設定ファイルはこんな感じ。
.fetchmailrc
defaults
protocol pop3
no rewrite
mda "/usr/bin/procmail"
poll [mailservername] user [username] pass [password]
Procmail + Courier-IMAPの場合、IMAPフォルダ上の/ML/sylpheed/は、実 ファイルシステム上の$HOME/Maildir/.ML.sylpheed/に対応するの で注意が必要。
.procmailrc
PATH=$HOME/bin:/usr/bin:/usr/local/bin MAILDIR=$HOME/Maildir/ DEFAULT=$MAILDIR LOGFILE=$MAILDIR/from LOCKFILE=$HOME/.lockmail :0 * ^X-ML-Name: sylpheed-jp .ML.sylpheed-jp/ :0 * ^X-ML-Name: sylpheed .ML.sylpheed/ ...
PostfixでSMTP AUTHを使うためにはCyrus-SASLというライブラリが必要。あと、 sourceもちょっといじらないとだめ。 DebianでのPostfixとCyrus-SASLのインストールに関してはyooseeさんのページ に詳しい。ので省略(w。
最近のDebian sidではPostfixは/var/spool/postfix/以下にchroot()して動いて いるらしく、/etc/sasldbが読めないようだ。そこで
ln /etc/sasldb /var/spool/postfix/etc/sasldbして解決。
現在(2002/4)のsidのcourier関連のパッケージは、CRAM-MD5が 使えるようなコンパイルオプションで作成されているみたいです。