免费注册 查看新帖 |

Chinaunix

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

学习笔记(一步步做postfix和cyrus-imapd) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-04-20 14:14 |只看该作者 |倒序浏览
本帖最后由 natoz 于 2012-04-20 14:35 编辑

网上的教程很好,但是无奈,我始终无法按照网上的教程成功架设邮件服务器,所以我萌生了一个想法,今天把它付诸实施。
很简单,我使用最新版的软件,按照官网上的文档进行架设,出现问题时,和大家一起解决。希望能有大大帮忙解决问题,大家以后可以在此查找自己的问题点。
更希望有人和我一起测试,这样的问题点就可能更多了。

安装环境:CENTOS 5.5
系统安装时将所有软件剔除,就装一个干净的系统,所有软件自行安装。

Yum安装:OPENSSL OPENSSL-devel
               DB4/DB4-devel
               Make/gcc/man/perl/telnet/wget
前期工作:禁用selinux
              禁用iptables
添加用户:cyrus(隶属于mail组),postfix(虚账户)
添加组:mail(系统已自带),postdrop
安装SASL:版本号2.1.25
          获取程序:wget  ftp://ftp.cyrusimap.org/cyrus-sasl/cyrus-sasl-2.1.25.tar.gz
          解压:tar xvzf cyrus-sasl-2.1.25.tar.gz
          编译:./configure --disable-digest --disable-cram --disable-otp --disable-krb4 --disable-gssapi --disable-anon --enable-login --enable-plain --prefix=/usr(这里将SASL按照CENTOS的习惯装入/usr/lib)
          安装:make /make install
检验安装:saslauthd -v
              saslauthd 2.1.25
              authentication mechanisms: getpwent rimap shadow
           安装成功。
安装cyrus-imapd:版本号:2.4.16
         获取程序:wget  ftp://ftp.cyrusimap.org/cyrus-imapd/cyrus-imapd-2.4.16.tar.gz
         解压:tar xvzf cyrus-imapd-2.4.16.tar.gz
         编译:./configure --with-sasl=/usr --with-cyrus-user=cyrus --with-cyrus-group=mail
        安装:make depend / make all CFLAGS=-O / make install
         添加log:用VI编辑/etc/syslog.conf  在最后添加如下2行
                  local6.*(官网上用debug,但我用*)         /var/log/imapd.log
                  auth.*                                  /var/log/auth.log
         添加log文件: touch /var/log/imapd.log /var/log/auth.log
         重启syslog服务: service syslog restart
         建立/etc/imapd.conf,并输入:
         configdirectory: /var/imap
         partition-default: /var/spool/imap
         admins: cyrus
         pwcheck_method: saslauthd
  
         注意:每行参数前不要有空格。
         建立邮箱目录
           cd /var/spool
           mkdir imap
           chown cyrus imap
           chgrp mail imap
           chmod 750 imap

cd /var
           mkdir imap
           chown cyrus imap
           chgrp mail imap
           chmod 750 imap

建立cyrus.conf:直接将master文件夹中的.conf文件复制即可,由于我只需要使用imap和pop3服务,所以复制small.conf。
      cp master/conf/small.conf /etc/cyrus.conf

运行测试:
saslauthd –a shadow
saslauthd[2523] :main            : can not mkdir: /var/state/saslauthd
saslauthd[2523] :main            : Check to make sure the parent directory exists and is
saslauthd[2523] :main            : writeable by the user this process runs as.

显示有个文件夹没有办法创建,可是我是以root执行saslauthd的啊,所以这里是个问题点。

论坛徽章:
0
2 [报告]
发表于 2012-04-20 14:27 |只看该作者
本帖最后由 natoz 于 2012-04-20 15:45 编辑

建立文件夹/var/state后,再运行一次,正常,无报错,继续测试。
开启imapd,执行:/usr/cyrus/bin/master &
使用netstat –lnp 可以看到imapd服务正常开启
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp        0      0 0.0.0.0:110                 0.0.0.0:*                   LISTEN      2513/master         
tcp        0      0 0.0.0.0:143                 0.0.0.0:*                   LISTEN      2513/master         
tcp        0      0 :::110                      :::*                        LISTEN      2513/master         
tcp        0      0 :::143                      :::*                        LISTEN      2513/master   

测试cyradm,输入cyradm –user cyrus localhost
Can't load '/usr/local/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/Cyrus/IMAP/IMAP.so' for module Cyrus::IMAP: /usr/local/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/Cyrus/IMAP/IMAP.so: cannot restore segment prot after reloc: Permission denied at /usr/lib/perl5/5.8.8/i386-linux-thread-multi/DynaLoader.pm line 230.
at /usr/local/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/Cyrus/IMAP/Admin.pm line 45
Compilation failed in require at /usr/local/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/Cyrus/IMAP/Admin.pm line 45.
BEGIN failed--compilation aborted at /usr/local/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/Cyrus/IMAP/Admin.pm line 45.
Compilation failed in require at /usr/local/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/Cyrus/IMAP/Shell.pm line 61.
BEGIN failed--compilation aborted at /usr/local/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/Cyrus/IMAP/Shell.pm line 61.
Compilation failed in require.
BEGIN failed--compilation aborted.
message log:
mail kernel: type=1400 audit(1334907044.054:11): avc:  denied  { execmod } for  pid=2626 comm="perl" path="/usr/local/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/Cyrus/IMAP/IMAP.so" dev=sda2 ino=1392509 scontext=root:system_r:unconfined_t:s0-s0:c0.c1023 tcontext=rootbject_r:lib_t:s0 tclass=file
Apr 20 15:34:40 mail kernel: type=1400 audit(1334907280.075:12): avc:  denied  { execmod } for  pid=2629 comm="perl" path="/usr/local/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/Cyrus/IMAP/IMAP.so" dev=sda2 ino=1392509 scontext=root:system_r:unconfined_t:s0-s0:c0.c1023 tcontext=rootbject_r:lib_t:s0 tclass=file
出现奇怪的问题,目前正查询资料中。希望有遇到过这样的朋友,能贴出自己的解决方法。
顺便贴出其他问题的报错
Apr 20 15:11:07 mail master[2558]: about to exec /usr/cyrus/bin/ctl_cyrusdb
Apr 20 15:11:07 mail ctl_cyrusdb[2558]: DBERROR db4: /var/imap/db/__db.001: Permission denied
Apr 20 15:11:07 mail ctl_cyrusdb[2558]: DBERROR: dbenv->open '/var/imap/db' failed: Permission denied
Apr 20 15:11:07 mail ctl_cyrusdb[2558]: DBERROR: init() on berkeley
Apr 20 15:11:07 mail ctl_cyrusdb[2558]: DBERROR: reading /var/imap/db/skipstamp, assuming the worst: No such file or directory
Apr 20 15:11:07 mail ctl_cyrusdb[2558]: checkpointing cyrus databases
Apr 20 15:11:07 mail ctl_cyrusdb[2558]: archiving database file: /var/imap/mailboxes.db
Apr 20 15:11:07 mail ctl_cyrusdb[2558]: archiving database file: /var/imap/annotations.db
Apr 20 15:11:07 mail ctl_cyrusdb[2558]: done checkpointing cyrus databases
Apr 20 15:11:07 mail master[2513]: process 2558 exited, status 0
Apr 20 15:11:36 mail master[2513]: exiting on SIGTERM/SIGINT
以上报错原因已找到,因为/var/imap里的个别文件夹的权限仍然是root所致,不知道其他人有没有遇到过这样的情况呢?

论坛徽章:
0
3 [报告]
发表于 2012-04-23 10:58 |只看该作者
不能停止不前,继续往下做
安装postfix:版本号:2.9.1
获取:wget ftp://ftp.cuhk.edu.hk/pub/packag ... ostfix-2.9.1.tar.gz
编译:make tidy
     make makefiles CCARGS="-DUSE_SASL_AUTH -DUSE_CYRUS_SASL \
    -I/usr/include/sasl" AUXLIBS="-L/usr /lib -lsasl2"
    make  / make install
     一路回车,安装完毕。
Newaliaese
Postfix start
检查netstat,看看25端口是否开启。
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp        0      0 0.0.0.0:110                 0.0.0.0:*                   LISTEN      2757/master         
tcp        0      0 0.0.0.0:143                 0.0.0.0:*                   LISTEN      2757/master         
tcp        0      0 0.0.0.0:25                  0.0.0.0:*                   LISTEN      2746/master         

开启正常,开始修改main.cf
myhostname=mail.test.com
mydomain=test.com
myorigin=$mydomain
mydestination=$myhostname,localhost,localhost.$mydomain,$mydomain
smtpd_sasl_path=smtpd
smtpd_sasl_auth_enable=yes
smtpd_sasl_security_options=noanonymous
smtpd_recipient_restrictions=permit_sasl_authenticated,permit_mynetworks(这个参数我觉得有待验证),reject_unauth_destination
mailbox_transport = lmtp:unix:/var/imap/socket/lmtp
   添加stmpd.conf
   Vi /usr/lib/sasl2/smtpd.conf
pwcheck_method:saslauthd
mech_list: PLAIN LOGIN
保存,退出
Postfix reload
现在测试

论坛徽章:
0
4 [报告]
发表于 2012-04-23 12:38 |只看该作者
为何没有大大来帮忙看看问题出在哪个节点呢???
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP