书犹药也,善读可以医愚;久尝其味,便可心如止水

    

搭建过滤防毒邮件服务器(一) 【置顶】

大纲


一、mail 协议

二、mail 组件

三、mail 工作原理(两种对比)

四、安装前的准备工作

五、安装并配置LAMP环境

六、安装并配置postfixadmin

七、安装并配置phpmyadmin

八、配置postfix邮件发送代理

九、安装并配置dovecot邮件检索代理

十、测试SMTP与POP3服务

十一、安装并配置WebMail(Roundcubemail)

十二、安装并配置病毒扫描与垃圾邮件过滤

十三、安装并配置managesieve插件

十四、常见问题分析

注:系统,CentOS 6.4 X86_64 。软件,全部都是RPM包,有兴趣的博友可以尝试一下全部源码包安装!(所安装的主要软件如下,LAMP+Postfix+Dovecot+PostfixAdmin+Roundcubemail+Amavisd-new+ClamAV+SpamAssassin+Managesieve)


一、mail 协议

mail使用的协议有

image.png


二、mail 组件

1.MTA:mail transfer agent 邮件传输代理

常见软件:


Exchange(微软)

Sendmail 开源的软件 目前有50%的邮件服务器使用这个软件

Postfix  现在用的挺多

Qmail    昙花一现

Exim(英国剑桥大学开发的)

   

2.MRA:mail retravial agent 邮件检索代理

常见软件,

courier-imap:pop3,imap4,imaps,pop3s (俄罗斯开发)

dovecot (主流)

   

3.MDA:mail delivery agent 邮件投递代理

常见软件

procmail (postfix默认)

maildrop (功能强大,效率高)

   

4.MUA:mail user agent 邮件用户代理

常见软件,

outlook express

Foxmail

pine(linux)

mutt(linux,经常用到的)


5.Mailbox 信箱

mailbox

maildir (主流)

两者的主要区别,mailbox是把所有邮件放在同一个文件中,maildir把每个用户的邮件都单独存放

  

三、mail 工作原理

1.常规架构

如下图

image.png

各组件具体说明

(1).常用的客户端

    Mail Client:outlook,foxmail等

    Web Browser:IE,Firefox,Chrome等

(2).Postfix,最常用的MTA,我们通过postfix来发送邮件

(3).Dovecot,最常用的MRA,我们通过dovecot来收发邮件

(4).amavisd-new,可以理解成一个代理,Postfix把邮件交给他,他负责联系杀毒和反垃圾

(5).SpamAssassin,防垃圾邮件,是邮件系统的基本功能,SpamAssassin,是最有名的,尤其是和Amavisd ClamAV 结合起来,这是一个经得起考虑的组合

(6).ClamAV,对邮件进行病毒扫描

(7).Cyrus-SASL,认证函数库

(8).Courier-Authlib,调用mysql数据库进行认证

(9).WebMail,通过浏览器来管理收发邮件

(10).OpenLDAP或MySQL,虚拟用户或虚拟域的存放数据库

(11).Maildir或Mailbox,用来存放用户邮件,两者的区别在于maildir为每个用户单独存放邮件,mailbox是所有邮件都存放在同一文件

(12).phpLDAPadmin,管理LDAP工具,用来管理虚拟用户与虚拟域

2.具体工作流程

(1). 当邮件通过outlook或foxmail发送到服务器的25端口,postfix接受连接,它会做一些基本检查

发送者是否在黑名单或者实时黑名单,如果在黑名单,马上拒绝

是否是授权用户,是授权可以进行转发

接收者是否是服务器的用户,在这里postfix调用Cyrus-SASL认证函数库,并通过Courier-Authlib去mysql数据中验证用户,如果不是,马上拒绝

如果我们启用了灰名单,会进行判断是否会拒绝邮件或者接收


image.png

(2).postfix 把邮件通过10024端口交给amavis来处理,注意amavis,只会检查邮件而不会丢弃或者拒绝邮件(如上图)

(3).amavis调用SpamAssassin检查邮件是否是spam,如果SpamAssassin认为邮件是垃圾邮件,会给邮件打上标记spam(如下图)

image.png

(注:大家会看到,只会给邮件打上

(注:大家会看到,只会给邮件打上spam标记,我们还是可以收到这个邮件的)

(4).amavis调用ClamAV,看邮件是否含有病毒

(5).amavis把检查完的邮件,通过10025端口重新把邮件交回给postfix

(6).postfix把邮件交给LDA(local delivery agent),LDA是负责本地邮件投放到用户的邮箱,postfix默认使用 procmail 投递邮件(我们也可以使用其它投递代理如,maildrop)到 用户的邮箱并以maildir的方式存放在硬盘上

(7).用户使用邮件客户端,通过pop3或imap协议进行连接并管理邮件,webmail 是通过imap的方式来读取或管理邮件

总结,从上面的工作流程我们可以看到用Cyrus-SASL,Courier-authlib,Maildrop太麻烦了。一大堆组件,邮件系统本来就很杂。我以能简单则简单的原则进行了精简而且效率更高,Dovecot目前已经实现了SASL,而且Dovecot的SASL能够自动CACHE查询结果,这个是比较好的。并且Dovecot还可以当LDA使用。而Postfix也支持Dovecot的SASL验证。Postfix可以直接使用Dovecot的后台认证,不需要分开配置。(如果使用Courier,我们必须安装配置额外的认证软件,比如Saslauthd,配置这个,会是一个恶梦,如果出现问题,很难排错),并且Dovecot,可以很方便实现磁盘配额的功能。Dovecot作为Courier的可替换组件,Dovecot在磁盘读写量上比Courier减少25%左右,内存占用也比Courier节省10%到70%不等。好了,说了这么多下面我们来看一下,我们的精简架构!

3.精简架构

image.png

经过与上面的对比我们明显看到简单了许多,嘿嘿

经过与上面的对比我们明显看到简单了许多,嘿嘿!下面我们说一下具体的工作流程,

(1).当邮件发送到服务器的25端口,postfix接受连接,它会做一些基本检查

发送者是否在黑名单或者实时黑名单,如果在黑名单,马上拒绝

是否是授权用户,是授权用户可以进行转发

接收者是否是服务器的用户,Postfix通Dovecot提供的SASL进行认证,如果不是,马上拒绝

如果我们启用了灰名单,会进行判断是否会拒绝邮件或者接收

(2).postfix 把邮件通过10024端口交给amavis来处理,注意amavis,只会检查邮件而不会丢弃或者拒绝邮件

(3).amavis调用SpamAssassin检查邮件是否是spam,如果SpamAssassin认为邮件是垃圾邮件,会给邮件打上标记spam(同上)

(4).amavis调用ClamAV,看邮件是否含有病毒

(5).amavis把检查完的邮件,通过10025端口重新把邮件交回给postfix

(6).postfix把邮件交给LDA(local delivery agent),LDA是负责本地邮件投放到用户的邮箱,(我们这里使用dovecot提供的LDA功能,而不是postfix提供的LDA)邮件会进入用户的邮箱,Dovecot会执行用户设置的filter,也就是Dovecot通过调用Sieve,放到相关的文件夹

(7).Dovecot 把邮件以maildir的方式存放在硬盘上。

(8).用户使用邮件客户端,通过pop3或imap协议进行连接。Webmail(RoundCubeMail),是通过imap的方式来读取邮件。

总结,经过上面的简单说明你应该知道整个邮件系统的工作流程了,下面我们将完整的搭建这套企业级的邮件系统!^_^……



当前为第一部分,点击查看第二部分

所有原创文章采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。
您可以自由的转载和修改,但请务必注明文章来源并且不可用于商业目的。
本站部分内容收集于互联网,如果有侵权内容、不妥之处,请联系我们删除。敬请谅解!

添加新评论

icon_mrgreen.gificon_neutral.gificon_twisted.gificon_arrow.gificon_eek.gificon_smile.gificon_confused.gificon_cool.gificon_evil.gificon_biggrin.gificon_idea.gificon_redface.gificon_razz.gificon_rolleyes.gificon_wink.gificon_cry.gificon_surprised.gificon_lol.gificon_mad.gificon_sad.gificon_exclaim.gificon_question.gif

青春就是用来追忆的,当你怀揣着它时,它一文不值,只有将它耗尽后,再回过头看,一切才有了意义,爱过我们的人和伤害过我们的人,都是我们青春存在的意义。

既然活着来到这个世界,就没有打算活着回去。所以,在这有限的时间里,我们应该珍惜生命,珍惜机会,更要珍惜那得之不易的时间。因那滴答做响的时间脚步,一旦走过,再不回头。

青春是一个充满魁力,充满诱惑的时代。好动是青春,好奇是青春,好玩是青春。玩世不恭更是青春,我们的一切切都是青春。

要先打败任何事情得先学会打败自己。

我会把每一次改变当做成长,哪怕是痛也值得。