Courier-IMAP

更新日2009-09-20 (日) 23:39:50

Vine5xでトラブル

IMAPで認証エラーが出る

IMAPで接続

$ telnet localhost 143
Trying 127.0.0.1...
Connected to localhost.
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.
1 login okada (パスワード)   <= 1から入力
1 NO Login failed.

デバッグモードにして syslogでlogを取る

/etc/authlib/authdaemonrc

##DEBUG_LOGIN=0
DEBUG_LOGIN=1

/etc/syslog.conf 以下を追加

# Edit By JE2ISM
*.=debug                       /var/log/debug.log

syslog,authdaemondを再起動

/var/log/debug.log

Sep 20 22:53:30 atom authdaemond: authpam: trying this module
Sep 20 22:53:30 atom authdaemond: authpam: sysusername=okada, sysuserid=<null>, sysgroupid
=500, homedir=/home/okada, address=okada, fullname=Okada, maildir=<null>,  quota=<null>, op
tions=<null>
Sep 20 22:53:30 atom authdaemond: pam_service=imap, pam_username=okada
Sep 20 22:53:30 atom authdaemond: pam_authenticate failed, result 28
                                                   ^^^^^^^^^^^^^^^^^
Sep 20 22:53:30 atom authdaemond: authpam: REJECT - try next module

28のエラーは,モジュール定義が間違っているようだ

/etc/pam.d/imap を見るとpam_stack.soを使用しているが、Vine5にはVine4xでは/lib/security/pam_stack.soがpam-0.99.3.0-5vl4のrpmでインストールされていたものがみあたらないので

/etc/pam.d/imap を以下のように変更

auth       required     pam_nologin.so
## original definitions comment out
# auth       required     pam_stack.so service=system-auth
# account    required     pam_stack.so service=system-auth
# session    required     pam_stack.so service=system-auth
上をコメントアウト
下を追加
#--- new definitions
auth include system-auth
account include system-auth
session include system-auth

/etc/pam.d/pop3も同様にする

rpmでインストール

# apt-get install courier-imap

設定ファイル

/etc/courier-imapにあるので下のようにimapd、pop3d等を設定する

起動

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

IMAPサーバのCourier(キューリェ)-IMAPをインストール。

ここ からDownload.

postfixの準備

Maildirに対応するため

/etc/postfix/main.cf

home_mailbox = Maildir/
のコメントをはずし
mail_spool_directory = /var/spool/mail
をコメントアウトする

その後

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

ホームディレクトリにMaildirを作成

$ mkdir ~/Maildir
$ chmod -R 700 ~/Maildir

procmailの設定

procmailを使用してファイルタやSpamassassinを利用する場合は~/.procmailrcに

MAILDIR=$HOME/Maildir  <--追加(これがないと /var/spool/mailにメールが届く)
DEFAULT=$MAILDIR/      <--追加

:0fw: spamassassin.lock
| /usr/bin/spamc
:0:
* ^X-Spam-Status: Yes
Spammail/.  <--変更
([[Spamassassin:https://wwwism.dyndns.org/hp/linux/spamass.htm]]を動作させているときはこの箇所も変更する必要がある)

インストール

Vine3.0では事前に gdbm-devel-1.8.0-20vl1.i386.rpm

openssl-devel-0.9.7d-0vl3.i386.rpm

db4-devel-4.0.14-15vl3.i386.rpm

(特にdb4-develはなくてもインストールできるが/usr/lib/courier-imap/bin/couriertlsがインストールされず、imap-sslが起動しない)

をインストール。

courier-imap-4.0.3をインストールするときはさらに

VinePlusから

courier-authlib-0.55-0vl3.i386.rpm
courier-authlib-devel-0.55-0vl3.i386.rpm 
Courier-IMAP-4.05以降にはCourier authentication libraryの0.57以上が必要。Vine3.xには0.56しかrpmがないのでソースからインストールする。

authentication libraryのインストール(0.58)

ここからCourier authentication libraryの最新版をDownload

$ tar jxvf courier-authlib-0.58.tar.bz2
$ cd courier-authlib-0.53
$ ./configure

(略)

checking for uid_t in sys/types.h... yes
checking for strchr... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating config.h
config.status: executing depfiles commands

このとき
configure: WARNING: -----------------------------------------------------
configure: WARNING: expect not found - will not be able to change passwds
configure: WARNING: in webmail
configure: WARNING: -----------------------------------------------------
のようなエラーが出たら# apt-get install expectで expectをインストール
$ make

(略)

config.status: creating authlib.3
config.status: executing depfiles commands
make[2]: ディレクトリ `/usr/local/src/courier-authlib-0.58' から出ます
make[1]: ディレクトリ `/usr/local/src/courier-authlib-0.58' から出ます

# make install
# make install-migrate
/bin/sh authmigrate

# make install-configure

(略)

  MYSQL_AUXOPTIONS: new
  MYSQL_WHERE_CLAUSE: new
  MYSQL_SELECT_CLAUSE: new
  MYSQL_ENUMERATE_CLAUSE: new
  MYSQL_CHPASS_CLAUSE: new
test -f /usr/local/etc/authlib/authpgsqlrc.dist && /usr/bin/perl ././  sysconftool /usr/local/etc/authlib/authpgsqlrc.dist || true
test -f .dist && /usr/bin/perl ././sysconftool .dist || true
/usr/local/lib/courier-authlib/
/usr/local/bin

にインストールされる

=======ここまで===========

以下はどのバージョンも同じ thread-2.5.2-0vl2.i386.rpm

VineSeedから

expect-5.39.0-95vl2.i386.rpm

をDownloadし、

thread-2.5.2-0vl2.i386.rpm expect-5.39.0-95vl2.i386.rpm

login認証では以下2つでいいようだ。ldap認証等を行うにはcourier-authlib-ldap なんかが必要になる。

courier-authlib-0.55-0vl3.i386.rpm
courier-authlib-devel-0.55-0vl3.i386.rpm 
の順でインストール

注)configureのときrootだと以下のようなエラーでとまる

configure: WARNING: === Do not compile Courier-IMAP as root.  Compile
configure: WARNING: === Courier-IMAP as a non-root user then su to
configure: WARNING: === root before running make install.  You must now
configure: WARNING: === remove this entire directory and then extract the
configure: WARNING: === source code from the tarball as a non-root user
configure: WARNING: === and rerun the configure script.  If you have read
configure: WARNING: === the INSTALL file you should have known this.  So
configure: WARNING: === you better read INSTALL again.
configure: error: aborted.

''Courier authentication libraryをソースからインストールしたときは 実行形式、ライブラリィにパスを通しておく''

.bash_profile

export PATH="$PATH":/usr/local/bin <--追加
$ cd ~
$ source .bash_profile

/etc/ld.so.confに

/usr/local/lib  <--追加
/usr/X11R6/lib
/usr/lib

を追加し、

# /sbin/ldconfig

を実行

$ tar jxvf courier-imap-3.0.5.tar.bz2
$ cd courier-imap-3.0.5
$ ./configure --without-ipv6 --without-authldap \
--enable-unicode=iso-2022-jp,iso-8859-1,utf-8 \
--with-redhat
$ make
$ make check

/usr/lib/courier-imapにデフォルトではインストールされるまた

/etc/pam.dにimapとpop3が作成される(存在時は上書き?)

$ su
# make install-strip (or make install)
# make install-configure
# cp courier-imap.sysvinit /etc/rc.d/init.d/imapd

インストール先ディレクトリは

/usr/lib/courier-imap

設定

Courier-IMAPはimap,imap-ssl,pop3,pop3-ssl等が動く

今回はimap,imap-ssl,pop3を動作させる

imapを動作させるには、(Port 143)

/usr/lib/courier-imap/etc/imapd

IMAPDSTART=NO
を
IMAPDSTART=YES
に変更。

imap-sslを動作させるには(Port 993)

/usr/lib/courier-imap/etc/imapd-ssl

IMAPDSSLSTART=NO
を
IMAPDSSLSTART=YES
に変更。

pop3を動作させるには(Port 110)

/usr/lib/courier-imap/etc/pop3d

POP3DSTART=NO
を
POP3DSTART=YES
に変更。
# chmod a+x /etc/rc.d/init.d/imapd

起動

# /etc/rc.d/init.d/imapd start

なぜか、Ver 4.03では認証デーモン(authdaemond)が起動しないので手動で 起動(rc.localなどに記載すればいいかな)

# /usr/libexec/courier-authlib/authdaemond &

ソースからコンパイルしたときは

# /usr/local/sbin/authdaemond start

オプションにstartを忘れると「Unknown option '-'」ようなエラーで起動できない

確認

# ps -axw

(ここがimapのデーモン)
26515 ?        S      0:00 /usr/lib/courier-imap/libexec/couriertcpd -address=0
-stderrlogger=/usr/sbin/courierlogger -stderrloggern
26520 ?        S      0:00 /usr/sbin/courierlogger imapd
26521 ?        S      0:00 /usr/lib/courier-imap/libexec/couriertcpd -address=0
-stderrlogger=/usr/sbin/courierlogger -stderrloggern
26523 ?        S      0:00 /usr/sbin/courierlogger pop3d
26538 ?        S      0:00 sshd: student [priv]
26541 ?        S      0:00 sshd: student@pts/2
26542 pts/2    S      0:00 -bash
26687 ?        S      0:00 pickup -l -t fifo -u
(ここから認証デーモン)
26725 pts/0    S      0:00 /usr/libexec/courier-authlib/authdaemond
26726 pts/0    S      0:00 /usr/libexec/courier-authlib/authdaemond
26727 pts/0    S      0:00 /usr/libexec/courier-authlib/authdaemond
26728 pts/0    S      0:00 /usr/libexec/courier-authlib/authdaemond
26729 pts/0    S      0:00 /usr/libexec/courier-authlib/authdaemond
26730 pts/0    S      0:00 /usr/libexec/courier-authlib/authdaemond

確認後

# chkconfig --add imapd

初めてのメールが到着すると

~/Maildir/cur(imapクライアントからアクセス後に入る)
~/Maildir/new(新しいメールが入る)
~/Maildir/tmp
~/Maildir/Spammail(スパムと判断されたメールが入る)
というディレクトリが出来る。

その後クライアントからアクセスされると

~/Maildir/courierimapkeywords/
~/Maildir/courierimapsubscribed
~/Maildir/courierimapuiddb
が出来、

POP3(Webmailer)でアクセスすると

~/Maildir/courierpop3dsizelist
が出来る。

なぜかwebmailer0954で、imapからはメールリストまでは見えるが 内容が表示されない。pop3だとOK。



トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-09-20 (日) 23:39:50 (3376d)