[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[postfix-jp:923] Re: SMTP-AUTH ではまっています。



こんにちは。すぎもとです。

jit00806 さんが Wed, 18 Jul 2001 18:34:04 +0900 ころに書いた
"[postfix-jp:920] SMTP-AUTH ではまっています。"
<3B55580C.4040107@xxxxxxxxxxxxxxxx> のメールへの返信です。


> 私も、Postfix+cyrus-sasl+cyrus-imapd でメールシステムを構築していて
> SMTP-AUTHではまっています。
> 
> postfix-20010228-pl03 を以下のように make したのですが、

Cyrus-SASL と Cyrus-IMAPD のバージョン、および
メイルサーバを構築したシステムは何でしょうか?


> 250-AUTH LOGIN PLAIN DIGEST-MD5 CRAM-MD5
> が出てきません。どこか勘違いしているのでしょうか?
  :
> 250-AUTH LOGIN PLAIN

を見る限り、BerkeleyDB のバージョン問題だと思います。
[postfix-jp:905] で書きましたが、 Linux glibc 2.1 環境では
Cyrus-IMAPD 2.x をインストールしようと思うと
BerkeleyDB 2 と 3 を共存させる必要があります。

Cyrus-SASL + Cyrus-IMAPD (2.x) は db3 でリンクするのに対して、
glibc 2.1 が悪さをして Postfix が db2 になってしまうようです。
# ldd の出力は db3 にリンクしているんだけどなぁ...

Postfix (db2) が sasldb (db3) を見に行こうとすると、
松本さんが試したように LOGIN, PLAIN しか現れず、
しかも PLAIN, LOGIN で認証を試みても失敗します。


glibc 2.2 では BerkeleyDB を別個にインストールする必要があるため、
複数のバージョンを同居させなくて済む、らしいです。(未確認)



結局 Cyrus-IMAPD Ver.2 を利用することを優先し、
SMTP-AUTH は利用していません。
# せっかく TLS パッチも当てたのに SMTP-AUTH が使えないと意味がない。:-(


-- 
  すぎもとたかし  <muneharu@xxxxxxxx>
せっかくなので、 Postfix + Cyrus-IMAPD のインストール記録。
(Linux Kernel 2.2.14, glibc 2.1)

細かい設定などはそれぞれのドキュメントを読んでください。
日本語訳などに頼らず、まずは原文を読むべきです。


--[BerkeleyDB 3.2.9]--------------------------------------------

% cd build_unix/
% ../dist/configure --enable-compat185 --enable-cxx \
  --enable-dynamic --enable-shared
% make
% su
# make install
# vi /etc/ld.so.conf
        /usr/local/BerkeleyDB.3.2/lib
# /sbin/ldconfig


--[Cyrus-SASL 1.5.24]-------------------------------------------

% CPPFLAGS='-I/usr/local/BerkeleyDB.3.2/include' \
  LDFLAGS='-L/usr/local/BerkeleyDB.3.2/lib' \
  ./configure --with-dblib=berkeley
% make
% make check
% su
# make install
# ln -s /usr/local/lib/sasl /usr/lib/sasl
# vi /etc/ld.so.conf
        /usr/local/lib
# /sbin/ldconfig



--[Cyrus-IMAPD 2.0.14]------------------------------------------

% CPPFLAGS='-I/usr/local/BerkeleyDB.3.2/include' \
  LDFLAGS='-L/usr/local/BerkeleyDB.3.2/lib -L/usr/local/lib -L/usr/lib' \
  ./configure --with-openssl=/usr/include/openssl
% make clean
% make depend
% make
% su
# make install

# touch /etc/imapd.conf
# vi /etc/imapd.conf
        configdirectory: /var/imap
        partition-default: /var/spool/imap
        admins: cyrus
        allowanonymouslogin: no
        autocreatequota: 0
        plaintextloginpause: 3
        allowplaintext: yes
        sasl_pwcheck_method: sasldb
        sievedir: /var/imap/sieve
# vi /etc/syslog.conf
        local6.debug   /var/log/imapd.log
        auth.debug     /var/log/auth.log
# touch /var/log/imapd.log /var/log/auth.log
# chmod go-r /var/log/imapd.log /var/log/auth.log
# /etc/rc.d/init.d/syslog restart
# mkdir /var/imap
# mkdir /var/spool/imap
# chown cyrus:mail /var/imap /var/spool/imap
# chmod 750 /var/imap /var/spool/imap
# cd /usr/local/src/cyrus-imapd-2.0.14
# su cyrus
cyrus% tools/mkimap
# chattr +S /var/imap /var/imap/user /var/imap/quota /var/imap/user/* \
  /var/imap/quota/* /var/spool/imap /var/spool/imap/*
		※Linux ext2 ファイルシステムでは信頼性を上げるために
		 同期書き込みをするように設定します。

# cd /usr/local/src/cyrus-imapd-2.0.14/master/conf
# cp normal.conf /etc/cyrus.conf
# vi /etc/services
        imap4   143/tcp imap
        imaps   993/tcp simap
        pop3    110/tcp
        pop3s   995/tcp spop3
        imsp    406/tcp
        acap    674/tcp
        sieve   2000/tcp
        lmtp    2003/tcp
        fud     4301/udp
# ln -s /usr/local/lib/perl5/site_perl/5.005/i386-linux/Cyrus/ \
  /usr/lib/perl5/site_perl/5.005/i386-linux/
# ln -s /usr/local/lib/perl5/site_perl/5.005/i386-linux/auto/Cyrus/ \
  /usr/lib/perl5/site_perl/5.005/i386-linux/auto/
# ln -s /usr/local/lib/perl5/man/man3/* /usr/lib/perl5/man/man3/
		※Cyrus-IMAPD が Perl の場所を自動で認識して
		 くれていないようなので symbolic link で解決しました。

# /usr/local/sbin/saslpasswd -c -u foo.bar.com cyrus
# chown cyrus:mail /etc/sasldb
# su cyrus
cyrus% /usr/local/sbin/saslpasswd -c -u foo.bar.com username
		※sasldb の所有権はよく考えて設定する必要があります。
		 postfix に持たせてはいけません。

# su cyrus
cyrus% cyradm localhost
cyradm> createmailbox user.username
cyradm> quit
		※imap メイルボックスを作る。

(このあと TLS の鍵を作ったりしてているけど省略)


--[Postfix 20010228-pl03 + pfixtls-0.7.3]-----------------------

% patch -p0 < pfixtls-0.7.3-20010228-pl03-0.9.6a/pfixtls.diff
% cd postfix-20010228-pl03
% make clean
% make tidy
% make makefiles \
  CCARGS="-DHAS_SSL -I/usr/include/openssl -I/usr/local/include -I/usr/include" \
  AUXLIBS="-L/usr/local/lib -L/usr/lib -lssl -lcrypto"
		※(残念ながら) SMTP-AUTH は使っていません

# vi /etc/group
        mail:x:12:mail,postfix
        maildrop:x:12346:
# make install
		※今回は Cyrus-IMAPD なのであまり関係ないのですが、
		 UNIX 共有メイルスプールを利用するならば、インストール時
			setgid: [no] 
		 に対して "maildrop" とすべきです。
		
		c.f.
		    http://www.jp.qmail.org/
		    http://www.jp.qmail.org/postfix/



# vi /etc/postfix/master.cf
        cyrus     unix  -       n       n       -       -       pipe
            flags=R user=cyrus argv=/usr/cyrus/bin/deliver -m ${extension} ${user}
        tlsmgr    fifo  -       -       n       300     1       tlsmgr
        smtps     inet  n       -       y       -       -       smtpd
            -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
        submission inet n       -       y       -       -       smtpd
            -o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
# vi /etc/postfix/main.cf
        mailbox_transport = cyrus
# vi /etc/services
        smtps           465/tcp ssmtp
        submission      587/tcp
# vi /usr/local/lib/sasl/smtpd.conf
        pwcheck_method: sasldb
# ln -s /etc/postfix/aliases /etc/aliases
# ln -s /etc/postfix/aliases.db /etc/aliases.db
# vi /etc/aliases
        cyrus:     root
        root:      username


(このあと imapd と同様に TLS の設定をしているけど省略)


----------------------------------------------------------------

Follow-Ups
[postfix-jp:924] SMTP-AUTH ではまっています。, jit00806
References
[postfix-jp:920] SMTP-AUTH ではまっています。, jit00806

[検索ページ] [Postfix-JP ML Home]