发博文
石头的博客

stonny.blog.chinaunix.net

人不可能忘忧,但至少能让自己平静一点...做该做的事...   
个人资料
  • 博客访问:174395
  • 博文数量:137
  • 博客积分:3090
  • 博客等级:中校
  • 关注人气: 1
  • 注册时间:2006-03-27 17:59:10
订阅我的博客
  • 订阅
  • 订阅到鲜果
  • 订阅到抓虾
  • 订阅到Google
字体大小: 博文
分类: Solaris


八、配置SASL

1、建立smtpd.conf文件

# vi /usr/local/lib/sasl2/smtpd.conf

内容如下:

pwcheck_method:authdaemond

log_level: 3

mech_list: PLAIN LOGIN

authdaemond_path:/usr/local/var/spool/authdaemon/socket

 

2、建立相关用户和组:

# groupadd -g 1000 vgroup

# useradd -u 1000 -g vgroup -s /bin/false vuser

# mkdir /var/spool/authdaemon/

# chown -R vuser:vgroup /var/spool/authdaemon

# chmod -R 755 /var/spool/authdaemon

 

3、修改main.cf文件

/etc/postfix/main.cf中添加以下内容:

# smtpd related config

smtpd_recipient_restrictions =

    permit_mynetworks,

    permit_sasl_authenticated,

    reject_non_fqdn_hostname,

    reject_non_fqdn_sender,

    reject_non_fqdn_recipient,

    reject_unauth_destination,

    reject_unauth_pipelining,

    reject_invalid_hostname,

 

# SMTP AUTH config here

broken_sasl_auth_clients = yes

smtpd_sasl_auth_enable = yes

smtpd_sasl_local_domain = $myhostname

smtpd_sasl_security_options = noanonymous

 

# postfix stop/start(postfix reload)    //重启postfix

 

4、常见错误解决:

日志报错1fatal: unsupported dictionary type: mysql

表示不支持mysql,在编译postfix时要加参数-DHAS_MYSQL

 

日志报错2

mail postfix/smtpd[7291]: [ID 947731 mail.warning] warning: xsasl_cyrus_server_get_mechanism_list: no applicable SASL mechanisms

Feb 21 23:14:29 mail postfix/smtpd[7291]: [ID 947731 mail.crit] fatal: no SASL authentication mechanisms

Feb 21 23:14:30 mail postfix/postfix-script: [ID 197553 mail.info] stopping the Postfix mail system

Feb 21 23:14:30 mail postfix/master[7280]: [ID 197553 mail.info] terminating on signal 15

解决方法:

# ln -s /usr/local/lib/sasl2 /usr/lib/sasl2

 

测试SASL验证:

# telnet localhost 25

Trying 127.0.0.1...

Connected to localhost.

Escape character is '^]'.

220 mail.extmail.org ESMTP Postfix - by extmail.org

ehlo localhost

250-mail.extmail.org

250-PIPELINING

250-SIZE 10240000

250-VRFY

250-ETRN

250-AUTH LOGIN PLAIN

250-AUTH=LOGIN PLAIN

250-ENHANCEDSTATUSCODES

250-8BITMIME

250 DSN

quit

221 2.0.0 Bye

Connection closed by foreign host.

出现上面的AUTH LOGIN PLAIN表示验证成功。

九、安装配置courier-authlibCourier-IMAP

1、下载courier-authlib和courier-imap

http://www.courier-mta.org/?download.php

下载文件:courier-authlib-0.59.1.tar.bz2courier-imap-4.1.2.tar.bz2

2、解压文件

# bunzip2 courier-authlib-0.59.1.tar.bz2

# tar xvf courier-authlib-0.59.1.tar

安装相关包:gdbm

#gunzip gdbm-1.8.3-sol8-sparc-local.gz

#pkgadd -d gdbm-1.8.3-sol8-sparc-local

//出现Installation of <SMCgdbm> was successful.表安装完成。

 

3、安装及配置:

# cd courier-authlib-0.59.1

# ./configure --with-mysql-libs=/usr/local/mysql/lib/mysql --with-mysql-includes=/usr/local/mysql/include/mysql --with-mailuser=vuser --with-mailgroup=vgroup --with-authmysql --with-authmysql=yes --with-authchangepwdir

# make && make install

# make install-configure

查看是否有以下配置文件(文件名相同,一个扩展名为dist,一个为无扩展名)

# ls /usr/local/etc/authlib/

authProg           authdaemonrc.dist  authmysqlrc        authdaemonrc       authldaprc           authldaprc.dist    authmysqlrc.dist

修改文件/usr/local/etc/authlib/authdaemonrc

    找到其中两行,改成以下:

authmodulelist="authmysql"

authmodulelistorig="authmysql"

编辑/usr/local/etc/authlib/authmysqlrc文件,内容为:

MYSQL_SERVER            localhost

MYSQL_USERNAME         extmail

MYSQL_PASSWORD         extmail

MYSQL_SOCKET            /tmp/mysql.sock

MYSQL_PORT               3306

MYSQL_OPT                 0

MYSQL_DATABASE          extmail

MYSQL_USER_TABLE        mailbox

MYSQL_CRYPT_PWFIELD     password

MYSQL_UID_FIELD         uidnumber

MYSQL_GID_FIELD         gidnumber

MYSQL_LOGIN_FIELD       username

MYSQL_HOME_FIELD        homedir

MYSQL_NAME_FIELD        name

MYSQL_MAILDIR_FIELD     maildir

MYSQL_QUOTA_FIELD       quota

MYSQL_SELECT_CLAUSE     SELECT username,password,"",uidnumber,gidnumber,\

                        CONCAT('/home/domains/',homedir),               \

                        CONCAT('/home/domains/',maildir),               \

                        quota,                                          \

                        name                                            \

                        FROM mailbox                                    \

                        WHERE username = '$(local_part)@$(domain)'

 设置该文档的相关权限:

# chmod 660 /usr/local/etc/authlib/authmysqlrc

# chown vuser:vgroup /usr/local/etc/authlib/authmysqlrc

# chown vuser:vgroup /usr/local/etc/authlib/authldaprc

4、设置启动

拷贝启动文件

# cp /var/tmp/courier-authlib-0.59.1/courier-authlib.sysvinit /etc/init.d/courier-authlib

# chmod 755 /etc/init.d/courier-authlib

启动courier-authlib:

# /etc/init.d/courier-authlib start

Starting Courier authentication services: authdaemond   //启动完毕;

 

5、常见错误解决:

错误1touch: /var/lock/subsys/courier-authlib cannot create.

解决:建立目录

# mkdir /var/lock

# mkdir /var/lock/subsys

错误2:

#authtest -s login test@test.com  //建议这一步测试要等imap/maildrop配置完后再做,否则出错

Authentication FAILED: I/O error  

解决:检查文件/usr/local/etc/authlib/authdaemonrc

 

出错3mail authdaemond: [ID 702911 mail.debug] authpipe: disabled: failed to stat pipe program /usr/local/etc/authlib/authProg: No such file or directory

解决:

# touch /usr/local/etc/authlib/authProg

 

6、安装courier-imap

解压:

# bunzip2 courier-imap-4.1.2.tar.bz2

# tar xvf courier-imap-4.1.2.tar

安装:

# cd courier-imap-4.1.2

# ./configure --prefix=/usr/local/courier --enable-unicode=utf-8,iso-8859-1,gb2312 --with-mysql-libs=/usr/local/mysql/lib/mysql -with-mysql-includes=/usr/local/mysql/include/mysql --with-authmysql=yes --with-authchangepwdir --disable-root-check --with-trashquota --with-dirsync --with-db=gdbm --with-waitfunc=wait3

# make && make install

# make install-configure

安装路径:/usr/local/courier

 

7、配置Courier-IMAP

主要通过Courier-IMAP,为用户提供pop3服务:

# vi /usr/local/courier/etc/pop3d

将其中一行改为如下:

POP3DSTART=yes

 

8、设置启动

# cp /export/home/ftp/courier-imap-4.1.2/courier-imap.sysvinit /etc/init.d/courier-imap

# chmod 744 /etc/init.d/courier-imap

# /etc/init.d/courier-imap start

Starting Courier-IMAP server: pop3

测试是否启动:

# lsof -i:110                //出现以下相关信息,表示启动成功

COMMAND     PID USER   FD   TYPE        DEVICE SIZE/OFF NODE NAME

couriertc 23048 root    3u  IPv6 0x300023ed9d8      0t0  TCP *:pop3 (LISTEN)

couriertc 23048 root    5u  IPv4 0x300015056d0      0t0  TCP *:pop3 (LISTEN)

常见出错1

Feb 23 07:37:49 mail pop3d: [ID 702911 mail.info] ld.so.1: couriertcpd: fatal: libgdbm.so.3: open failed: No such file or directory

ld.so.1: couriertcpd: fatal: libgdbm.so.3: open failed: No such file or directory

解决:

# ln -s /usr/local/lib/libgdbm.so.3 /usr/lib/libgdbm.so.3

 

9、设置Courier-authlib和Courier-imap的开机自动启动

 

# ln -s /etc/init.d/courier-authlib /etc/rc3.d/S51authlib

# ln -s /etc/init.d/courier-authlib /etc/rc0.d/K15authlib

# ln -s /etc/init.d/courier-authlib /etc/rc1.d/K15authlib

# ln -s /etc/init.d/courier-authlib /etc/rc2.d/K15authlib

# ln -s /etc/init.d/courier-imap /etc/rc3.d/S51imap

# ln -s /etc/init.d/courier-imap /etc/rc0.d/K51imap

# ln -s /etc/init.d/courier-imap /etc/rc1.d/K51imap

# ln -s /etc/init.d/courier-imap /etc/rc2.d/K51imap

[发评论] 评论 重要提示:警惕虚假中奖信息!
  • chinaunix网友 2008-12-15 15:07
    请教一下遇见过这样的问题吗? 发送邮件的时候报告SMTP rcpt error: 5.7.1 : Relay access denied 我不知道怎么查找这个原因,在本地发送正常
亲,您还没有登录,请[登录][注册]后再进行评论