Linux Study Lab !

当前位置:   网站首页 >> Linux 邮局应用

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指向,请查看一文

如何排查邮局系统的收发故障,请查看一文


发表我的评论

Hi,您需要填写昵称和邮箱!

  • 必填项
  • 必填项