最近,工作中有搭建邮件服务器的需求,所以这几日研究了一下邮件系统的各个组件以及原理。现记录如下:
预期的邮件系统架构:
MTA : Postfix
认证模块:Cyrus SASL + Dovecot SASL
POP3/IMAP: Dovecot
Postfix部分基础的配置就先不写了,主要是记录Virtual User部分和SASL部分。
1.虚拟用户:
虚拟用户不同于系统中已经存在的用户(/etc/passwd)中的用户,而是借助于一个普通的系统用户,实现多个用户共享的认证和使用。类似于普通系统用户就是一张电影票。你也可以拿这张票去看电影,我也可以那这张票去看电影。只要是获取了这张票,就可以坐在相应的位置上,享受电影服务,类比到系统中,就类似于获取了该实体用户的属性,如读写等权限,至于获取这张票的过程,牵扯到SASL认证,这个在第二部分论述。Postfix中是支持虚拟用户的,在配置上就是以virtual开头的一些配置,如下:
virtual_mailbox_domains = example.com #虚拟邮箱的域,类似于mydestination
virtual_mailbox_maps = hash:/etc/postfix/v_maps #虚拟用户的虚拟用户以及存放虚拟用户的邮件位置。此处疑问:MTA只管转发,此处超出了MTA的范围了,疑惑,后面有virtual_transport这个选项指定MDA,这个地方就不用疑惑了。此外,/etc/postfix/v_maps是一个文件,内容如下
###
###hello@example.com example.com/hello_mail/
###
virtual_mailbox_base = /mail/vhosts #虚拟用户的基目录
virtual_minimum_uid = 500 #虚拟用户最小uid
virtual_uid_maps = static:5000 #如果所有用户的邮箱都使用一个uid,那么指定一个静态的uid。
virtual_gid_maps = static:5000 #虚拟用户gid
virtual_transport = virtual #虚拟投递代理
2.SASL认证:
有一般邮件系统的知识的人知道,需要采用认证机制防止谁都可以用这个MTA发送邮件(open relay)。这个认证机制就是SASL,实现SASL的软件一般有两个我比较熟悉,Cyrus-SASL和Dovecot中自有的SASL,下面分别对这两个软件分别讨论。
Cyrus-SASL:这个软件的使用saslauthd这个daemon来进行验证,具体的配置文件可以查看/etc/sysconfig/saslauthd这个配置文件。
MECH=pam:使用什么机制来进行验证,这里写的是使用PAM来进行验证。PAM,这个以后有机会再进行论述。
Dovecot-SASL: 这个软件是dovecot对SASL的一个实现,Dovecot官网中提到,Dovecot也实现了SASL。
Dovcecot-SASL有两个部分,一个是passdb,一个是userdb, passdb用来实现认证,userdb用来实现提取用户的一些信息,比如邮件存储目录,uid等。
相关的配置可以在/etc/dovecot/dovecot.conf中找到。
认证过程也是先通过passdb认证,然后在userdb中获取用户信息,从而把该用户的邮件递送给该MUA,然后用户就可以读取邮件了。
postfix的main.cf这个文件中有个SASL的选项,此处直接设置为smtpd_sasl_type = dovecot
此处即是sasl使用dovecot的sasl进行验证。即发送邮件时,去dovecot验证,如果通过,就允许邮件发送了。因此,我们只要熟悉了dovecot的sasl怎么做的,就可以不用管postfix的验证了。
dovecot-sasl部分的配置如下:
passdb {
args = /etc/dovecot/passwd #指定密码文件位置
driver = passwd-file
}
userdb {
args = uid=vmail gid=vmail #指定uid
driver = static #类型为static,即postfix中virtualuser部分的5000
}
/etc/dovecot/passwd中内容如下
hello@example.com:{plain}hello
此处的密码支持明文,md5加密等等,具体的支持类型可以查看官方文档,此处不再熬述。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29757574/viewspace-1810253/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29757574/viewspace-1810253/