免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1037 | 回复: 0
打印 上一主题 下一主题

Problem of Cyrus-IMAP & Cyrus-SASL [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-08-18 11:41 |只看该作者 |倒序浏览

  • COMPILE CONFIG:

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

  • ISSUE:

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

  • CONFIG FILE

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
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP