Linux Install Memo

サーバー管理者によるLinux関連ソフトのインストールメモ

Home » □Courier-mta+Postfix+dracでIMAP対応に(Courier-IMAPのインストール)

□Courier-mta+Postfix+dracでIMAP対応に(Courier-IMAPのインストール)

参考URL:
http://www.courier-mta.org/
http://www.courier-mta.jp/?2009.01.06 無くなってます
http://www.atmarkit.co.jp/flinux/rensai/qmail02/qmail02c.html
http://mjm4u.net/oss/courier-imap/imap/INSTALL.html

> Courier-mtaは、オープンソースの高機能メールサーバースイートです。
> SMTP/POP/IMAP/Mailinglist/Webmail/Calendar/Fax の機能を備えており、
> SMTP/POP/IMAP over SSL/TLS に対応しています。SMTPはSMTP Auth に
> 対応しています。

だそうです。ただ、mtaとしてはPostfixを使いたいし、メール送信時の
ユーザー認証などの絡みで、Courier-mtaに統一するのはちと難しい。

というわけで、既存のソフトと絡めつつIMAP対応のためのインストール
をしてみる。

1.まずはPostfixをMaildir対応にする

/etc/postfix/main.cf の中を

> #home_mailbox = Mailbox
> home_mailbox = Maildir/
(> #mailbox_command = をコメントアウト)

というようにすると、

> drwx——??? 5 kabu???? users??????? 4096 Mar? 3 10:41 Maildir/

と言うディレクトリが出来て、この中にメールが入ります。

これだけ。

2.Courier-imapのインストール。

POP3だけでなくIMAP4も使いたい、という場合にはCourier-IMAPを置いて
他に選択肢はほぼないっぽい。ただ、これだけでは dracd には対応して
いないので、POP before SMTP を実装するには小細工が必要。

ま、なにはさておきインストール。Courier-IMAPのVer4からは、認証に
関する部分が外だしとなったので、まずはそれをインストールしないと
本体が入れられない。

tar xvjf package/courier-authlib-0.62.1.tar.bz2
cd ./courier-authlib-0.62.1/
./configure \
–prefix=/usr \
–sysconfdir=/etc \
–with-mailuser=mail \
–with-mailgroup=mail \
–without-authuserdb \
–without-authpam \
–without-authldap \
–without-authvchkpw \
–without-authpgsql \
–without-authmysql \
–without-authcustom \
–without-authpipe

とりあえず shadow で認証するので、それ以外の認証方式は全部 without
しておく。つまり本体の方でも –without-authcram で認証を暗号化しな
い。

make
make install
make install-migrate
make install-configure

そしたら /etc/authlib/authdaemonrc に設定ファイルが生成されるので
いぢらなくてもいいけど確認すること。

で、

/usr/sbin/authdaemond start

とすることで、認証要デーモンが起動する。

つづいて Courier-IMAP 本体のインストール。こちらは root 以外の
ユーザー権限でコンパイルしないといけない。(てかさ、authlib も
そうしなくていいのか?ポリシーが不完全なのかな?良く判らん)

tar xvjf package/courier-imap-4.4.1.tar.bz2
cd courier-imap-4.4.1/
chown -R mail ./*
su – mail
cd /usr/src/courier-imap-4.4.1/
./configure \
–prefix=/usr \
–sysconfdir=/etc \
–without-authcram
make
make check

exit

make install
make install-configure

さて、これで入ったので必要に応じて /etc/imapd とか /etc/pop3d とか
を修正して、

/usr/libexec/imapd.rc start
/usr/libexec/pop3d.rc start

とすると動きます。

試しに POP3 でアクセスすると

> # telnet localhost pop3
> Trying 127.0.0.1…
> Connected to localhost.
> Escape character is ‘^]’.
> +OK Hello there.
> user testuser
> +OK Password required.
> pass testpasswd
> +OK logged in.
> quit
> +OK Bye-bye.
> Connection closed by foreign host.

と言う感じになります。ログ(/var/log/maillogとか)には

> Mar? 3 16:54:30 big70 pop3d: Connection, ip=[::ffff:127.0.0.1]
> Mar? 3 16:54:34 big70 pop3d: LOGIN, user=testuser, ip=[::ffff:127.0.0.1]
> Mar? 3 16:54:38 big70 pop3d: LOGOUT, user=testuser, ip=[::ffff:127.0.0.1], top=0, retr=0, rcvd=6, sent=
> 30, time=4

と言うように出力されます。

3.Courier-imapのdrac対応

drac自体は「□postfix = drac + qpopper」を見てもらうとして、
Courier-imapをdrac対応にする仕組みとしては、認証が通ったら
dracauth()で該当IPをdracに登録する外部プログラムを呼び出す。

Courier-imap3系では

http://mail.cc.umanitoba.ca/drac/courier-exec.txt

をダウンロード&コンパイル&インストールすればよかったけど、
Courier-imap4系ではこの方法ではだめ。

http://www.smalltown.ne.jp/~usata/pub/patch/

ここからパッチを取ってきて、drac-add とおんなじことを本体に
組み込んでしまう。ただし、courier-imap-4.1.3では大丈夫だが、
4.4.1ではダメだったので、パッチが失敗しているところを手動で
修正すればいい。(Makefile.am.rejとMakefile.in.rejをみれば判る)

cd /usr/src/courier-imap-4.4.1/
patch -p0 < ./courier-imap-4.1.0-drac.patch
chown -R mail ./*

su – mail

cd /usr/src/courier-imap-4.4.1/
./configure \
–prefix=/usr \
–sysconfdir=/etc \
–without-authcram
make
make check

exit

make install
make install-configure

として、 /etc/imapd とか /etc/pop3d の最後に以下を追加。

> DRACHOST=localhost

で、あとは

/usr/libexec/imapd.rc stop
/usr/libexec/pop3d.rc stop
/usr/libexec/imapd.rc start
/usr/libexec/pop3d.rc start

して、IAMPとかPOP3でログインしてみる。すると、

> # db_dump -p /etc/postfix/dracd.db
> VERSION=3
> format=print
> type=hash
> db_pagesize=512
> HEADER=END
>? 192.168.0.21
>? 1179458014
> DATA=END

というように、アクセスしたIPアドレスが記録される。

あとは /etc/rc.d/rc.M にでも

> # Courier-IMAP(IMAP)
> if [ -x /usr/libexec/imapd.rc ]; then
>??? echo -n ” imapd”
>??? /usr/libexec/imapd.rc start
> fi
>
> # Courier-IMAP(POP3)
> if [ -x /usr/libexec/pop3d.rc ]; then
>??? echo -n ” pop3d”
>??? /usr/libexec/pop3d.rc start
> fi

と足しておけばOK。
★補足:Maildir化してもコマンドラインからメールを読む

参考URL:
http://www.emaillab.org/mutt/index.html
http://www.gnu.org/software/libiconv/

Maildir化すると、qmailをインストールするかEmacs+mewなどを使うと言う
てもあるが、ここでは色々なメールボックスタイプに対応しているmuttを
使うことにする。

まずは S-Lang と libiconv のインストール。

tar xvzf package/libiconv-1.12.tar.gz
cd slang-2.1.0/
./configure –prefix=/usr
make
make runtests
make install

tar xvzf package/slang-2.1.0.tar.gz
cd libiconv-1.12/
./configure –prefix=/usr
で、インストールできたら

> # /sbin/ldconfig -v | grep slang
>???????? libslang.so.2 -> libslang.so.2.1.0
となっているはず。

そしたらMuttのインストール。

tar xvzf package/mutt-1.5.15.tar.gz
./configure \
–prefix=/usr \
–sysconfdir=/etc \
–enable-pop \
–enable-imap \
–with-sasl \
–with-slang
make
make install

インストールできたら /etc/Muttrc の中を

> # set folder=”~/Mail”
> set folder=”~/Maildir”
>
> # set mbox_type=mbox
> set mbox_type=Maildir
>
> # set spoolfile=””
> set spoolfile=”~/Maildir”

というように書き直す。

で、あとは mutt を起動すれば日本語をちゃんと表示します。

Name of author

Name: admin

コメントを残す

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