CeneOS下Postfix+saslauth+dovecot+ssl认证部署实战
最近为服务器上了邮局系统,在研究了网上大量技术类文档后发现大家都是复制黏贴的,很多文章都存在严重的误导,可能是因为版本区别,可能是因为实现目标不一致。所以本篇文档将以从零开始搭建邮局为基准,目标为单一企业提供公众邮件服务而写。
首先我们需要了解在Linux上存在两个基本的邮件服务系统,一个是sendmail一个是Postfix,而因为本人安装的系统为CentOS6.5版本,所以系统自带了Postfix服务,早先版本似乎需要手动yum安装postfix,手动卸载sendmail或停止它以免引起冲突,在本文中,为了在选择MTA上不出现迷惑性的条目,故建议由sendmail的用户可以手动卸载它。
在确认系统上有Postfix存在后,还需要安装以下几个服务包(本文中暂时不应用ldap或配合mysql使用虚拟域,所以暂时只需要以下几个包)
yum install cyrus-sasl cyrus-sasl-devel cyrus-sasl-plain cyrus-sasl-lib cyrus-sasl-md5 dovecot
如果在安装上述服务包时要求安装运行需求的服务包,请一并安装选择y回车
配置的步骤大致为Postfix - > saslauthd -> dovecot
Postfix配置文件内容较多,请查看站内的 Postfix配置文件主要定义参数配置 一文,配置完Postfix后,便可以开始配置smtp验证机制,即cyrus-sasl提供的服务。cyrus-sasl的配置文件位于/etc/sasl2/,如果你非yum安装而是自己编译安装的,配置文件在编译时指定的配置文件目录。使用vi命令打开配置文件,作出如下修改:
pwcheck_method: saslauthd <--定义验证机制,此处选择saslauthd服务 #pwcheck_method: auxprop <--定义验证机制,若选择auxprop,则相应的验证数据库为sasldb # auxprop_plugin: sasldb mech_list: plain login <--定义验证机制 log_level:3 <--指定log记录级别
最后对dovecot服务进行配置,它的默认配置文件位于/etc/dovecot/dovecot.conf,使用vi命令打开配置文件,作出如下修改:
(未提及的请保持默认即可)
protocols = imap pop3 <--去掉注释,定义支持的服务类型,此处可以打开两个服务,也可以仅打开你需要的服务 listen = *, :: <--去掉注释,定义监听的地址,面对公网的服务请使用默认参数,如果不需要ipv6服务监听,去掉,后的::即可 #login_trusted_networks = 0.0.0.0/0 <--这个参数请按照自己的情况选择,只有在信任网段里的客户端请求才会被允许连接到服务器
接下来使用vi命令更改验证机制的配置
vi /etc/dovecot/conf.d/10-auth.conf
查看以下配置是否与下面列出的一致(未提及的请保持默认即可)
disable_plaintext_auth = yes
接下来使用vi命令更改邮箱属性的定义
vi /etc/dovecot/conf.d/10-mail.conf
查看以下配置是否与下面列出的一致(未提及的请保持默认即可)
mail_location = maildir:~/Maildir
接下来使用vi命令打开imaps认证
vi /etc/dovecot/conf.d/10-ssl.conf
查看以下配置是否与下面列出的一致(未提及的请保持默认即可)
ssl = required <--强制使用ssl认证,即imap服务的993端口 ssl_cert = </etc/pki/dovecot/certs/mail-cert.pem <--指定自制证书的位置 ssl_key = </etc/pki/dovecot/certs/mail-cert.pem <--指定自制证书的位置
关于如何自签一份证书用于邮局服务SSL认证的测试,请查看用于Dovecot服务的Linux自签证书生成一文
接下来使用vi命令关闭非SSL加密端口的监听服务
vi /etc/dovecot/conf.d/10-master.conf
查看以下配置是否与下面列出的一致(未提及的请保持默认即可)
找到
service imap-login {
inet_listener imap {
port = 143 <--将143改为0
找到
service pop3-login {
inet_listener pop3 {
port = 110 <--将110改为0配置完上述服务的配置文件后,请依次输入以下命令
service postfix restart service dovecot restart service saslauthd restart chkconfig postfix off chkconfig dovecot off chkconfig saslauthd off chkconfig postfix --level 3 on chkconfig dovecot --level 3 on chkconfig saslauthd --level 3 on
上述命令取消了这些服务的开机自启项,并只打开用户模式3也就是文本多用户界面下的自启,如需打开GUI界面,请在3之后加数字5即可
服务如启动出错,请查看报错信息,一般按照上述配置下来不会有什么报错。如果你需要面向公网服务,需要设置域名的MX的指向。
如何配置防火墙使客户端能够连接到邮局服务,请查看配置防火墙以使外网客户端能够连接到Postfix邮局服务一文
如何设置公网域名的MX指向,请查看一文
如何排查邮局系统的收发故障,请查看一文