/ 中存储网

Postfix Dovecot SASL 安装配置过程

2014-12-28 20:22:39 来源:中存储网

一.系统配置

1. 使用Centos 6.4 最小安装包进行安装,下载链接:

http://mirrors.163.com/centos/6.4/isos/i386/CentOS-6.4-i386-minimal.iso

2. 修改/etc/hosts及/etc/sysconfig/network文件

3. 修改ifcfg-eth0,DNS必须指向能解析邮箱域名的IP,也可以自身集成DNS服务,然后DNS指向自己,用host -t mx kingmed.com确认MX记录生效。

4. 查看时区:cat /etc/sysconfig/clock,内容为:ZONE="Asia/Shanghai",如不是,手动修改即可,并用/usr/share/zoneinfo/Asia/Shanghai 替换 /etc/localtime

5. 查看时间:date,如果时间不对,也要修改:

date -s 21/07/2013 #修改日期; date -s 12:11:00 #修改时间  clock -w #同步BIOS时间

6. 更新系统:yum update -y, 完成后reboot

 

二.创建邮箱用户

建立用户模板下的邮箱目录,以便于建立新用户时,相应用户的邮箱目录自动被建立。

[root@mail ~]# mkdir /etc/skel/Maildir  在用户模板下建立用户邮箱目录
[root@mail ~]# chmod 700 /etc/skel/Maildir  设置用户邮箱目录属性为700

[root@mail ~]# useradd liuyuhui

[root@mail ~]# useradd jiangtao

[root@mail ~]# echo "123456" passwd liuyuhui --stdin

[root@mail ~]# echo "123456" passwd jiangtao --stdin

 

三.Postfix安装及配置

1. yum -y install postfix,提示已经安装并且是最新版

2. 检查默认的MTA

[root@mail ~]# /usr/sbin/alternatives --display mta

......
Current `best' version is /usr/sbin/sendmail.postfix.

最后一行说明默认的MTA已经是postfix,在老版本中可能为sendmail.sendmail,这时就要手工更改下,方法为:

[root@mail ~]# /usr/sbin/alternatives --set mta /usr/sbin/sendmail.postfix

 

3. Postfix配置文件主要是两个master.cf和main.cf,这里我们只需要配置main.cf

vi /etc/postfix/main.cf,在文件main.cf找到以下的几行并按照下面的更改好。

myhostname mail.kingmed.com

mydomain kingmed.com

myorigin $mydomain

inet_interfaces all

mydestiNation $myhostname, localhost.$mydomain, localhost, $mydomain

mynetworks 10.6.0.0/16,192.168.0.0/16, 127.0.0.0/8

relay_domains $mydestination

home_mailbox Maildir/

在最后面添加SMTP认证:

smtpd_sasl_type dovecot

smtpd_sasl_path private/auth

smtpd_sasl_auth_enable yes

smtpd_sasl_local_domain $myhostname

smtpd_sasl_security_options noanonymous

smtpd_recipient_restrictions  permit_mynetworks,permit_sasl_authenticated, reject_unauth_destination

smtpd_client_restrictions permit_sasl_authenticated

message_size_limit 15728640   规定邮件最大尺寸为15MB

完成后,使用/usr/sbin/postconf -n来检查配置是否正确。

 

4. 配置SELinux

wget linuxmail.info/files/rhel6/postfixdovecotsasl.te 

checkmodule -M -m -o postfixdovecotsasl.mod postfixdovecotsasl.te 

semodule_package -o postfixdovecotsasl.pp -m postfixdovecotsasl.mod 

semodule -i postfixdovecotsasl.pp

 

5. 安装 cyrus-sasl 软件包

[root@mail ~]# yum install cyrus-sasl*

 

(A)使用/etc/shadow文件验证

[root@mail ~]# vi /etc/sysconfig/saslauthd

MECH=shadow

FLAGS=

 

[root@mail ~]# vi /etc/sasl2/smtpd.conf 

pwcheck_method: saslauthd

mech_list: plain login

 

(B)使用/etc/sasldb文件验证

[root@mail ~]# vi /etc/sysconfig/saslauthd

#MECH=pam      #注释掉原文此行

FLAGS=sasldb

 

[root@mail ~]# vi /etc/sasl2/smtpd.conf

pwcheck_method: auxprop

auxprop_plugin: sasldb

mech_list: plain login

 

[root@mail ~]# saslpasswd2 -c liuyuhui -u kingmed.com

[root@mail ~]# saslpasswd2 -c jiangtao -u kingmed.com

按提示输入两次密码(不要与系统密码相同),首次操作会生成/etc/sasldb2文件。

[root@mail ~]# chgrp postfix /etc/sasldb2

[root@mail ~]# chmod 640 /etc/sasldb2

 

启动saslauthd

[root@mail ~]#chkconfig saslauthd on

[root@mail ~]#service saslauthd start

 

[root@mail ~]# /usr/sbin/testsaslauthd -u liuyuhui -p '123456' #用系统密码测试

0: NO "authentication failed"

解决办法:

[root@mail ~]# setsebool -P allow_saslauthd_read_shadow 1

但不知为什么用sasldb密码测试通不过。

 

6. 开放相关端口

[root@mail ~]# vi /etc/sysconfig/iptables

-A INPUT -p tcp -m multiport --dports 25,80,110,143 -j ACCEPT

[root@mail ~]# service iptables restart

 

7. 重启postfix

[root@mail ~]# chkconfig postfix on

[root@mail ~]# service postfix restart

 

8. 检查配置是否正确

postfix 提供了check命令,可以检查当前postfix 的配置是否有问题、文件和目录权限是否正确。 
[root@mail ~]# postfix check

没有消息就是好消息。

9. Telnet登录验证

这里是用虚拟用户即/etc/sasldb帐号,先取得用户名和密码的BASE64编码:

[root@mail ~]# printf  "liuyuhui@kingmed.com"   openssl base64

bGl1eXVodWlAa2luZ21lZC5jb20=

[root@mail ~]# printf  "liuyuhui"   openssl base64

bGl1eXVodWk=

[root@mail ~]# telnet localhost 25

Trying 127.0.0.1...

Connected to localhost.

Escape character is '^]'.

220 mail.kingmed.com ESMTP Postfix

ehlo localhost

250-mail.kingmed.com

250-PIPELINING

250-SIZE 10240000

250-VRFY

250-ETRN

250-AUTH DIGEST-MD5 GSSAPI PLAIN CRAM-MD5 LOGIN

250-ENHANCEDSTATUSCODES

250-8BITMIME

250 DSN

auth login

334 VXNlcm5hbWU6

bGl1eXVodWlAa2luZ21lZC5jb20= #liuyuhui@kingmed.com的BASE64编码

334 UGFzc3dvcmQ6

bGl1eXVodWk= #密码liuyuhui的BASE64编码

235 2.7.0 Authentication successful

mail from:liuyuhui@kingmed.com

250 2.1.0 Ok

rcpt to:jiangtao@kingmed.com

250 2.1.5 Ok

data

354 End data with . #回车后以点号(.)结束

hello,how are you?

.

250 2.0.0 Ok: queued as 934C83622

quit

221 2.0.0 Bye

Connection closed by foreign host.

来看下jiangtao用户家目录下是否有此邮件(注意queued as 934C83622):

[root@mail ~]# cat /home/jiangtao/Maildir/new/1375283408.Vfd00I3696M538506.mail.kingmed.com 

Return-Path: 

X-Original-To: jiangtao@kingmed.com

Delivered-To: jiangtao@kingmed.com

Received: from localhost (localhost [127.0.0.1])

        (Authenticated sender: liuyuhui@kingmed.com)

        by mail.kingmed.com (Postfix) with ESMTPA id 934C83622

        for Wed, 31 Jul 2013 23:09:20 +0800 (CST)

Message-Id: <20130731150940.934C83622@mail.kingmed.com>

Date: Wed, 31 Jul 2013 23:09:20 +0800 (CST)

From: liuyuhui@kingmed.com

To: undisclosed-recipients:;

 

hello,how are you?

 

 

POP/ IMAP设置

 

为了让用户能在本地机器下载邮件,必须在服务器安装设置POP或IMAP。Dovecot是适用CentOS Linux邮件系统有名的imap/pop服务器之一,它支持maildir和mbox格式。

 

1. 安装

[root@mail ~]# yum -y install dovecot 

[root@mail ~]# vi /etc/dovecot/dovecot.conf

protocols imap pop3

listen *

 

[root@mail ~]# vi /etc/dovecot/conf.d/10-auth.conf

disable_plaintext_auth no

auth_mechanisms plain login

 

[root@mail ~]# vi /etc/dovecot/conf.d/10-mail.conf

mail_location maildir:~/Maildir

 

[root@mail ~]# vi /etc/dovecot/conf.d/10-master.conf

service auth {

  unix_listener auth-userdb {

  }

  unix_listener /var/spool/postfix/private/auth {

    mode 0666

    user postfix

    group postfix

  }

 

[root@mail ~]# vi /etc/dovecot/conf.d/10-ssl.conf

ssl no

 

[root@mail ~]# vi /etc/dovecot/conf.d/20-pop3.conf

pop3_uidl_format XuXv

pop3_client_workarounds outlook-no-nuls oe-ns-eoh

 

配置完后使用dovecot -n查看所有配置。

 

启动dovecot:

[root@mail ~]# chkconfig dovecot on

[root@mail ~]# service dovecot start

 

现在你可以使用邮件客户端代理软件和系统用户及密码来连接我们的Dovecot服务器了。

 

四.邮件别名设置

 

设置邮件别名可以使多个用户收到来自一个用户(如root)发送的邮件。

1. 配置邮件别名

邮件别名的配置文件在/etc/aliases里,格式如下:

[Format]

 Receiving Account or other aliases recipient A, recipient B, recipient ..

例1:重新发送邮件到另一用户

root:root,james

上面的例子表示,root用户的邮件对于用户james和root都可以接收到。

例2:设置群邮件

class2011: james, ann, mark

上面的例子表示我们设置了群邮件名class2011.当tutor发送一封邮件到class2011@centos.bz时,一群用户(如james,ann,mark)都会收到邮件。

2. 使用“newaliases”命令激活邮件别名功能

 当编辑/etc/aliases文件后,必须执行“newaliases”命令来更新别名数据库。