- 论坛徽章:
- 0
|
1.openssl:
./config --prefix=/usr --openssldir=/usr/local/openssl
2.BerkeleyDB-4.7.25
../dist/configure --prefix=/usr
3.cyrus-sasl:
./configure --enable-checkapop --enable-auth-sasldb
注意:
1).因为cyrus-sasl-2.1.23 现在的configure只支持到db-4.4,而rhel5.3里面内置了db-4.3,并且放在了/lib下,所以就算是装了bdb-4.7,链接时也会链接到bdb-4.3。这也许还不够得上一个bug,谁让rhel5.3内置bdb-4.3那,但最好还是能像(cyrus-imap里面一样,添加一个 --with-bdb 的配置选项,那样比较智能了)
改正方法:用 find .|xargs grep db-4.3,然后会查到很多configure或者.m4文件,在每个for后面都添加上db-4.7,大概修改7-8个文件,然后再configure就可以了。
2).--enable-auth-sasldb这个选项在根目录下configure --help中并没有说明,是在saslauthd中的configure --help中提示的,如果不加这个选项将不能用bdb(也就是/etc/sasldb2)作为用户认证数据库来用。
make;make install完就可以测试了,
1。用saslpasswd2 -c 来创建一个用户。
2.用sasldblistusers2 来dump出用户名来看是否一致
3.saslauthd 是个认证服务程序,运行:saslauthd -a sasldb
4.用testsaslauthd -u -p 来测试,如果都成功,就成功了。
如果不成功,错误日志在/var/log/message中
4.cyrus-imap:
./configure --with-bdb=db-4.7 --with-openssl=/usr/local/openssl
make; make install
然后进入perl/imap目录 ,按照README来做
perl Makefile.PL
make
make test # or see below
make install
make test 没弄明白是什么,可以不做啦
http://cyrusimap.web.cmu.edu/imapd/install-configure.html
然后添加cyrus用户,并且设置密码:useradd cyrus;passwd cyrus
然后用saslpasswd2 创建 cyrus用户,不然会出现后面的错误的。
saslpasswd2 cyrus
创建/etc/imap.conf配置文件,内容从cyrus-imap主页上抄的.
configdirectory: /var/imap
partition-default: /var/spool/imap
admins: curtj abell
sasl_pwcheck_method: saslauthd
然后拷贝master/normal.conf 为/etc/cyrus.conf
在用cyrus -u cyrus localhost
>cm user.
千万记住前面的user. 不然很麻烦
4.postfix
1). make tidy
2). make makefiles CCARGS="-DHAS_DB -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/local/include/sasl" AUXLIBS="-L/usr/local/lib/sasl2 -lsasl2 -ldb-4.7"
3). make
http://www.postfix.org/INSTALL.html
小心系统自带的saslauthd,系统自带的这个版本(我的是22)用的本地socket是/var/run/saslauthd/mux,
而自己编译的saslauthd和libsasl2用的是/var/state/saslauthd/mux,如果弄混了就会出现连不上的情况。
chmod 666 /etc/sasldb2
这个文件是smtpd的认证配置文件,有些文档里面写的应该放在/usr/lib/sasl/目录下,这样也可以,cyrus-sasl2的源码中明确说明了新版本的默认搜索目录变为/usr/lib/sasl2:/etc/sasl2。
/etc/sasl2/smtpd.conf
smtpd.conf的内容:
pwcheck_method: saslauthd
mech_list: plain login
1._sasldb_getkeyhandle has failed
我遇到的问题是因为bdb版本不兼容问题,虽然在configure配置的是dbd-4.7,但实际上链接的是bdb-4.3(rhel5.3自带bdb4.3)。解决方法是把/lib和/usr/lib下的有关libbdb-4.3的文件都删掉
2.ERR: USER command only available under a layer
在/etc/imap.conf中添加:
allowplaintext:yes
3.cyradm不能登陆,在/var/log/message中出现 “unable to tell master 1/2/3 : Broken pipe”和“perl: No worthy mechs found”错误提示
在/etc/imap.conf中添加
sasl_mech_list: PLAIN
3.IMAP Password:
先给系统的cyrus账户添加密码,passwd cyrus
再给imap中的cyrus账户添加密码,saslpasswd2 cyrus
1.Cyrus-imap:
/etc/cyrus.conf
/etc/imapd.conf
2.Cyrus-sasl:
Postfix command:
postsuper -d 删除发送队列中的邮件 当message-id为ALL时为删除全部
postconf -n
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/86948/showart_2030600.html |
|