设为首页 收藏本站
查看: 1769|回复: 0

[经验分享] Ubuntu 16.04 布置postfix、dovecot邮件服务器

[复制链接]

尚未签到

发表于 2019-2-18 11:58:46 | 显示全部楼层 |阅读模式
  一、引言
  postfix是Wietse Venema在IBM的GPL协议之下开发的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
  ---------------------
  作者:HymanLiuTS
  来源:CSDN
  原文:https://blog.csdn.net/hyman_c/article/details/64474151
  版权声明:本文为博主原创文章,转载请附上博文链接!


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-673959-1-1.html 上篇帖子: Win7+Ubuntu11-ameis的博客 下篇帖子: ubuntu系统中root账户忘记密码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表