vine-users ML アーカイブ



[vine-users:077548] Cyrus-IMAP の設定

  • From: Shinichiro HIDA <shinichiro@xxxxxxxxxxxxx>
  • Subject: [vine-users:077548] Cyrus-IMAP の設定
  • Date: Fri, 31 Aug 2007 17:48:27 +0900
飛田です。

>>>>> In [vine-users : No.077543] 
>>>>>	"miyao" <miyao@xxxxxxxxxxx> wrote:
> 宮尾です
> 現在、インターネットを見ながら Cyrus-IMAP をVine4.1
> にインストールしているのですが、IMAP のユーザーを
> 登録しても、メールボックスが作成できないので、おかしい
> と思い、/var/log/messege の中を見たところ、
> 【ログ】
> Aug 30 17:42:51 wing-server pop3[2778]: unknown password verifier
> Aug 30 17:49:01 wing-server saslpasswd2:
>       setpass succeeded for miyao
> Aug 30 17:49:01 wing-server saslpasswd2:
>       error deleting entry from sasldb: DB_NOTFOUND: No matching
> key/data pair found
> Aug 30 17:49:01 wing-server last message repeated 2 times
> SASLの設定がおかしいと怒られていました。


> 作業は下記の様に設定したのですが、どこが悪いのでしょうか?
> また、cyradm コマンドが使えないのはなぜなのでしょうか?
> この、ML に投稿して良いか迷いました。場違いかも知れませんが
> ご指導下さい。
> よろしくお願いします。


> [root@wing-server root]# apt-get install cyrus-sasl cyrus-sasl-devel
> cyrus-sasl-md5
>                                                 cyrus-sasl-plain
> db4-devel cyrus-imapd cyrus-imapd-devel

*-devel はライブラリとかヘッダなので、なにか、それらに依存する物をコン
パイルしたり検証したいような場合に必要となる物です。おそらく今回の場合
は必要ありません。というか、他のパッケージから必要とされている(依存関係
がある)なら apt-get がよきにはからって自動的にインストールされるはずで
す。

> [root@wing-server root]# cat /etc/imapd.conf
> configdirectory: /var/lib/imap
> partition-default: /var/spool/imap
> admins: miyao

admins に指定する管理者は実際にメールを受信するユーザを指定してはいけま
せん。管理専用ユーザ(おそらくデフォルトでは cyrus あるいは
cyrus-admin)で行ないます。パッケージの作りにもよりますが、
/etc/passwd | grep cyrus して見て下さい。

自動的に cyrus とか cyrus-admin とか追加されてませんか?

> sievedir: /var/lib/imap/sieve
> sendmail: /usr/sbin/sendmail
> hashimapspool: true
> sasl_pwcheck_method: sasldb

cyrus-sasl ライブラリは非常に柔軟でいくつもの認証方法バックエンドが利用
可能です。で、sasldb はその一つで、マシンにユーザアカウントを必要とせず、
そのマシンにログイン出来ないユーザにメールアカウントを発行したい場合に
有効です。しかし、これ、sasldb と指定するのは古いように思います。vine
のパッケージでは有効なのでしょうか? ちなみに cyrus-imapd のヴァージョン
はいくつですか?

他にも ldap バックエンド、mysql や、マシンのアカウント(pam)を利用する
saslauthd などによる認証も可能です。柔軟過ぎてどれを使えば良いのか決め
にくい、というのはあるかも知れませんが、ニーズとよく相談するしかないと
思います。

で、最近の cyrus-imapd では sasl_pwcheck_method: auxprop というのがデフォ
ルトではないかと思います。(これで sasldb を使います)

> sasl_mech_list: PLAIN
> tls_cert_file: /usr/share/ssl/certs/cyrus-imapd.pem
> tls_key_file: /usr/share/ssl/certs/cyrus-imapd.pem
> tls_ca_file: /usr/share/ssl/certs/ca-bundle.crt

クライアントの要件にもよりますが、sasl_mech_list は複数指定出来ますので、
cram-md5, digest-md5 あたりは追加しておくと良いのではないかと思います。

tls_* なファイル群は確実に存在していますよね?

> [root@wing-server root]# vi /usr/lib/sasl2/smtpd.conf ← 新規作成
> pwcheck_method: auxprop
> auxprop_plugin: sasldb
> mech_list: cram-md5 digest-md5 plain login

これは cyrus-imapd とは無関係です。postfix などで smtp-auth を利用する
場合のコントロールに使います。

> [root@wing-server root]# /etc/rc.d/init.d/cyrus-imapd start
> Starting cyrus-imapd: preparing databases... done.         [  OK  ]
> [root@wing-server root]# saslpasswd2 miyao
> Password:
> Again (for verification):
> [root@wing-server root]# sasldblistusers2
> miyao@xxxxxxxxxxxxxxx: userPassword
> [root@wing-server root]# cyradm --user miyao localhost
> -bash: cyradm: command not found

cyradm コマンドは別パッケージになってたりしませんか? Debian だと
cyrus-admin とかなのですが.. apt-cache search コマンドを活用して下さい。

なぜ別パッケージになっているのか、というのは、リモートマシンにも
cyradm だけ導入しておくとそっちから遠隔管理出来るので大抵は小さな別パッ
ケージとして提供されます。便利ですね。

> [root@wing-server root]# postconf -n

え〜っと.. postfix の smtp-auth も一緒にやってるのですか? 別々に考えて、
一つずつクリアしていかないいと、どんどん混乱してふかみにはまりますよ。

余裕がない場合ほどじっくりドキュメントを読んで、動作を理解し、検証して
から本番マシンに導入しないと痛い目にあいます。

-- 
  Shinichiro HIDA  shinichiro@xxxxxxxxxxxxx
  GPG fingerprint = 5F2D 1656 FFF6 F691 A51C  5E61 E416 D398 470C 1CE9