« iptables のログを分けるぞ | メイン | sudo のログも分ける »
2005年02月18日
Vine3.1 で courier-imap で imap 接続のときにCRAM-MD5 認証する!(改)
[ カテゴリ : memo - 自宅サーバ設定(Linux、たまにWindows) ]
courier-authlib-0.54-0vl1 が Vine にあがっとるー!
しかも makedatprog がついとるー!
。。。。。書き直すか。
#いずれ postfix の sasl についても書き直す日が来そうな気がするなー。
我が家では
courier-imap-4.0.1-0vl2
courier-authlib-0.54-0vl1
を使ってるのです。Vine3.1 用の VinePlus の rpm なんです。
さて、CRAM-MD5 認証のやり方を調べるとですね、
1. /etc/courier-imap/imapd を編集して、CAPABILITY にAUTH=CRAM-MD5 が入ってる状態にする。(/etc/courier-imap/imapd-ssl はいじらなくても imapd の設定が有効になる)
既にコメントとして例があるので簡単に設定できるでしょう。
2. /etc/authlib/userdb というファイルを適切に作って、/usr/sbin/makeuserdb を実行することで、各ユーザーの CRAM-MD5 パスワードを設定できる。
なお、「そのようなファイルやディレクトリはありません」とか言われちゃう人は # apt-get update; apt-get upgrade とかして上のバージョンにしてください。courier-authlib-0.53-0vl1 の場合文句言われましたので。
1についてはもうこれ以上書くことはないので2を。
まず、一番最初、 /etc/authlib/userdb が無い場合(既にあるところに別のユーザーを追加するのは後述)、root で下記のようにして、まず作る。
# pw2userdb | grep ^username > /etc/authlib/userdb
# chmod 600 /etc/authlib/userdb
しかし、これには /etc/passwd /etc/shadow から取れる情報しか入っていない。
ためしに cat /etc/authlib/userdb してみよう。
userdb ってファイルの中身がどんなか、ちょっとだけ解るよね?
で、情報を追加していく。
# userdb username set mail=/home/username/Maildir
ためしに cat /etc/authlib/userdb してみよう。
userdb ってファイルの中身がどんなか、よりいっそう解るよね?
で、以下で本命のパスワード設定だ。
# userdbpw -hmac-md5 | /usr/sbin/userdb username set hmac-md5pw
(パスワードを聞かれるので入れる)
ここでもためしに cat /etc/authlib/userdb してみよう。
userdb ってファイルの中身がどんなか、、、、、もういいって?(笑)
まぁ、中身は理解しておこうじゃないのさ。
そうでないと、ユーザーが複数いる場合は、最初の pw2userdb のとき > ではなく >> にして2行にしてやればいいんだろうなとかいう感覚がつかめないでしょ(笑)
とにかく、これで userdb が完成するわけだ。
二つの IMAP アカウントを設定するのであれば、userdb は二行必要である。三つなら三行だ。 これは最初に一人つくって、後からもう一人追加する場合でも同様である。よってユーザー追加するなら
# pw2userdb | grep ^username2 >> /etc/authlib/userdb
(> ではなく >> ね)
とかやって、userdb を二行にしてから
# userdb username2 set mail=/home/username2/Maildir
# userdbpw -hmac-md5 | /usr/sbin/userdb username2 set hmac-md5pw
とかやることになる。
勘違いして pw2userdb を二回やってしまうと、username2 のエントリが二行あるアホらしい状態になったりもする。心配なら userdb の中身は cat して確認しながらやるべきでしょう。(だからさきほど cat して中身把握しとけとうるさかったワケよ)
さて、あとは makeuserdb するだけだ。
# makeuserdb
うまくいかない場合は courier-authlib-0.54-0vl1 か、それより新しいの使おう(今日現在は存在しないが)
きちんとユーザーが登録されてるかどうかは
# strings /etc/authlib/userdb.dat
とかやってみよう。
(/usr/bin/strings は binutils package に入ってる)
投稿者 JK : 2005年02月18日 00:48