Ubuntu 16.04 布置postfix、dovecot邮件服务器

一、引言

        postfixWietse VenemaIBMGPL协议之下开发的MTA(邮件传输代理)软件,也就是我们常说的SMTP服务端。postfix是Wietse Venema想要为使用最广泛的sendmail提供替代品的一个尝试。它更快、更容易管理、更安全,同时还与sendmail保持足够的兼容性。Dovecot是一个开源的 IMAP POP3 邮件服务器,它支持多种认证方式,配置起来比较简单。使用postfix+dovecot的组合是一种很经典的邮件收发服务端解决方案。

         现代的邮件收发系统在收发邮件时一般都要求先进行验证,所谓验证就是核对用户名和密码是否正确,如下图所示的红色方框部分,就是要求我们在收发邮件时先要进行验证:


        postfix支持两种验证方式,一种是采用Dovecot的验证方式dovecot-sasl,另一种是利用cryus-sasl验证的方式,接下来我将分两篇文章分别介绍postfix设置这两种方式的方法。

二、安装和配置postfix

2.1 安装

        在终端中输入下面的命令,以安装postfix,

sudo apt-get install postfix

        在安装过程中会有界面弹出来,当显示如下所示的界面时,我们要选择Internet Site方式,然后一路确定即可。


2.2 配置

        打开/etc/postfix/main.cf文件,按照如下进行配置,其中大部分配置只是采用了postfix安装时的默认配置,对于一些特殊配置请参照下面的注释,其中需要配置服务器域名,假设当前的域名为example.cn:

myhostname = localhost
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
 
#下面这段配置中要将自己的域名加入到里面,如下加入了example.cn
mydestination = $myhostname, example.cn,localhost, localhost.localdomain, localhost
relayhost =
#加入公网的网络地址,如我的服务器公网地址是119.xxx.xxx.xxx,就在下面加入了
119.0.0.0/8这个网络地址
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104[::1]/128,119.0.0.0/8
#邮箱最大的容量,单位是字节
mailbox_size_limit = 2000000000
recipient_delimiter = +
#监听的端口设置,如果要连互联网这里一定设置成all
inet_interfaces = all
#支持的协议类型,设置成all
inet_protocols = all
#设置的邮箱目录名称,postfix采用dovecot-auth认证的话,默认系统中的用户就是邮箱的用户,当设置成如下的邮箱目录时,会在每个用户的主目录下创建一个Maildir目录用来存放邮件。
home_mailbox = Maildir/
#设置每封邮件最大的体积
message_size_limit = 20000000
#设置是否进行认证,选yes
smtpd_sasl_auth_enable = yes
#设置认证失败断开客户端
broken_sasl_auth_clients = yes
#设置认证所在的域名
smtpd_sasl_local_domain = $myhostname
#设置认证方式,这里很重要,因为要使用dovecot-auth,所以这里要填dovecot
smtpd_sasl_type = dovecot
#设置认证文件的查询路径,默认情况下Postfix的认证文件会放到/var/spool/postfix/private/auth,按照如下设置即可
queue_directory = /var/spool/postfix
smtpd_sasl_path =private/auth
#设置未认证用户不可发邮件
smtpd_sasl_security_options = noanonymous
#设置拒绝认证的黑名单,在postfix2.02之前的版本,该配置名称叫做smtpd_recipient_restrictions
smtpd_relay_restrictions=permit_mynetworks,
 permit_sasl_authenticated,
 reject_invalid_hostname,
 reject_unauth_destination
 
#下面是设置对tls的支持,在安装完之后ssl-cert-snakeoil.pem和ssl-cert-snakeoil.key这两个文件是不存在的,需要我们手动生成,稍后介绍生成方法
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database =btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database =btree:${data_directory}/smtp_scache
 

三、安装和配置dovecot

3.1 安装

        在终端输入以下命令进行安装:

sudo apt-get install dovecot-common dovecot-imapd dovecot-pop3d

3.2 配置

         找到/etc/dovecot/dovecot.conf配置文件,我们对dovecot的所有修改基本上都在这个文件之中进行:

#这里配置邮件的存放目录,这里和Postfix设置的要一致,都是在用户主目录下的Maildir目录下。
mail_location = maildir:~/Maildir
#监听所有的端口
listen= *
#允许明文密码验证
disable_plaintext_auth = no
#使用ssl加密
ssl = required
#ssl秘钥存放路径,目前这两个文件也是不存在的,也需要按照后面的步骤我们手动生成
ssl_cert =< /etc/ssl/certs/dovecot.pem
ssl_key =< /etc/ssl/private/dovecot.key
#设置认证的默认选项,auth是一个socket文件,通过该文件dovecot和postfix进行通信,来传递postfix的认证信息,这里面的path要和postfix设置的一致。
auth default { 
       socket listen {
         client {
           path =/var/spool/postfix/private/auth
           mode = 0660
           user = postfix
           group = postfix
         }
     }
}


        完成了上述设置,邮件服务端基本上就布置成功了,但是现在还是不能利用foxmail等客户端发送邮件,因为我们还有几个问题要修改

3.3 生成postfix的tsl秘钥和dovecot的ssl秘钥

        接下来我们需要利用dovecot安装包中的脚本上次上述两种秘钥。目前存放秘钥的目录/etc/ssl/certs/和/etc/ssl/ private/也是不存在的,所以需要我们先创建上述两个目录:

mkdir –p /etc/ssl/certs/
mkdir –p /etc/ssl/private /

         创建好上述的目录之后我们将利用dovecot中的脚本文件,生成ssl-cert-snakeoil.pem、ssl-cert-snakeoil.key、dovecot.pem和dovecot.key这四个文件。因为我们用apt-getinstall安装的dovecot,所以我们先要进入/ var/cache/apt/archives/这个目录下。我们用apt-getinstall        安装的所有程序的安装包都在这个目录下,找到dovecot-core***.deb安装包(后面版本号什么的省略),把它拷贝到主目录下,然后用下面的命令进行解压:

dpkg  –X  dovecot-core***.deb  dovecot/

        解压之后,在当前目录找到dovecot/usr/share/dovecot/ mkcert.sh,然后执行下面的命令(一定要cd到该文件所在目录去执行,否则出错):

sh mkcert.sh

        此时会在/etc/ssl/certs/目录和/etc/ssl/private/目录下生成ssl-cert-snakeoil.pem和ssl-cert-snakeoil.key两个文件,这就是我们需要的postfix的tls秘钥,我们需要的dovecot秘钥只需将上述两个文件各拷贝一份副本即可:

cp ssl-cert-snakeoil.pem  dovecot.pem
cp ssl-cert-snakeoil.key  dovecot.key

        这就完成相关秘钥的生成。

3.4 解决doveconf -n >dovecot-new.conf  等警告信息

        在完成上述布置之后,如果重启dovecot:

service dovecotrestart

        在/var/log/mail.log文件中我们会发现很多类似“Warning:doveconf-n > dovecot-new.conf”的警告信息,是因为doveconf要求我们生成新格式的配置文件,此时执行下面的命令:

doveconf -n > dovecot-new.conf

        会在当前目录下生成dovecot-new.conf文件,然后用该文件替换/var/dovecot/dovecot.conf文件。接下来重启postfix和dovecot:

service postfixrestart
service dovecotrestart

        经过了上述的步骤,已经完成了postfix和dovecot的配置,但是想要使用邮件客户端,我们还有在域名提供商那里进行域名相关的设置。

3.5 设置邮件服务器的域名解析

         在域名服务提供商那里设置域名解析,我的 example.cn设置了5个域名解析:

         第一个是:记录类型A 主机记录mail,   指向服务器的IP地址

         第二个是:记录类型MX主机记录@指向example.cn

         第三个是:记录类型A,主机记录 www指向服务器的IP地址

         第四个是:记录类型CNAME主机记录pop.example.cn.指向 mai.example.cn

         第四个是:记录类型CNAME主机记录smtp.example.cn.指向 mai.example.cn

 

 参考文章:

http://blog.csdn.net/basicthinker/article/details/6167606#comments

  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值