Linux|系统管理|WEB开发

关注Linux,系统管理,WEB开发以及开源世界

使Postfix具有SASL功能的简明配置步骤

| Comments

SASL(Simple Authentication Security Layer)是流行的认证库,Sendmail和Postfix都可以利用SASL来做到SMTP认证。简明步骤如下:

1) 确认cyrus-sasl已经安装

2) 修改/etc/postfix/main.cf,在文件里修改/增加两行

 smtpd_sasl_path = smtpd 
 smtpd_sasl_auth_enable = yes

3) 修改/usr/lib/sasl2/smtpd.conf文件,增加/修改下面两行:

pwcheck_method: saslauthd 
mech_list: PLAIN LOGIN

4) 启动相关服务

service saslauthd start service postfix start

5) 测试

连接25号端口,看看有没有类似下面的这样的输出

$ telnet localhost 25
. . .
220 localhost ESMTP Postfix (Ubuntu) 

ehlo localhost

250-localhost 
250-PIPELINING 
250-SIZE 10240000 
250-VRFY 
250-ETRN 
250-STARTTLS
250-AUTH PLAIN LOGIN CRAM-MD5 NTLM DIGEST-MD5
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN

AUTH PLAIN AHdnemhhb0B3Z3poYW8AYWJjMTIz
235 2.7.0 Authentication successful

注意:这里的 AHdnemhhb0B3Z3poYW8AYWJjMTIz 表示base64编码,是以”0username@domain0password"的方式组成的,注意这里的domain,也许你的认证不需要domain,如何确定呢,执行下面的命令

# sasldblistusers2 wgzhao@wgzhao: userPassword 

如果输出的用户含有domain的话,那就需要。

如果得到这个base64编码呢?可以使用mmencode,可以使用perl的MIME::base64模块,我偏向使用php

 $php -a 
 php > echo base64_encode("0wgzhao@wgzhao0abc123");
    AHdnemhhb0B3Z3poYW8AYWJjMTIz 

Comments