0%

sendmail的深入瞭解III

本文記錄關於郵件服務器的相關。

0x00 基本原理

  • 四個功能
    • 接收從UA來的郵件提交,並發送到相應郵件系統。
    • 接收外部傳入的郵件。
    • 郵件遞送到最終用戶的郵箱。
    • 用戶可通過IMAP或POP訪問。
  • 上述功能可以是同一台機器或不同機器。

0x01 使用郵件服務器

  • 直接接入Internet的站點。

    https://img.madebug.net/m4d3bug/images-of-website/master/blog/DesignEmailSystem.jpg

    • 傳入傳出需要防火牆隔離。
    • 多台傳入可搭配負載均衡。
    • 單獨的機器可充當客戶機來備份MX記錄。
    • 不建議使用NFS來共享/var/spool/mail
  • 不直接接入Internet的站點。

    https://img.madebug.net/m4d3bug/images-of-website/master/blog/DeployEmailSystemII.jpg

0x02 使用IMAP或POP

  • IMAP和POP是用户的桌面机器连接到网络中时用来下载电子邮件的协议。
  • 使用它们的时候要求有口令,确保使用一个采用SSL加密的协议版本(IMAPS和POPS)。
  • IMAP可以在多个站点之间管理邮件文件夹。
  • POP(Post Office Protocol,邮局协议)与IMAP相似,但它假定了一个模型,在这个模型中所有邮件都是从服务器下载到PC的。这些邮件可以从服务器上删除(在此情况下就不能备份了)或者保存在服务器上(在此情况下您的邮件缓冲区文件就会变得越来越大)

如果用户从来都不删除任何邮件消息的话,这两种协议都可以变成消耗资源的大户。在采用IMAP的情况下,它永远要载入所有邮件消息的信头,POP则会传送整个邮箱。要确保您的用户理解了删除消息或者在本地文件夹中过滤它们的重要性。

从位于www.eudora.com/qpopper的Qualcomm可以下载POP3协议当前版本的一个不错实现。qpopper是个POP服务器,它包含了在服务器和客户机之间的TLS/SSL验证功能,并且加密邮件消息。
您可以在Internet上找到许多别的用于Linux的POP3服务器程序,务必选择其中得到积极维护的一种。
IMAP服务器软件可从www.washington.edu/imap获得。除了把适当的IMAP项加入到/etc/services和/etc/inetd.conf文件,并确保防火墙(如果有的话)不会妨碍它工作之外,不需要进行任何配置。IMAP在过去有过安全问题的记录,请参考CERT的报告并务必得到最新的版本,如果针对您的发行版本有安全报告的话特别要注意。
卡内基梅隆大学(Carnegie Mellon University)开发了一种叫做Cyrus IMAP的IMAP服务器,它也支持POP协议。比起UW(译者注:华盛顿大学,University of Washington)的IMAP实现来,我们更喜欢前者。
Dovecot是更新的一种软件包,它实现了IMAP和POP服务。它按照严格和明确的编码规范来编写代码,所以至少从理论上说,提高了它的安全性。Dovecot还有一些有意思的功能,例如能够把电子邮件保存在SQL数据库而不是文件系统中。Dovecot尚未取得Cyrus那样的业绩和使用基础,但它肯定是一个值得关注和评估的项目。
我们举例的所有Linux发行版本都带有叫做imapd的IMAP服务器,还有一个客户端fetchmail,它既支持IMAP协议也支持POP协议。Red Hat的imapd是CMU的Cyrus IMAP服务器,SUSE、Debian和Ubuntu使用UW的版本。Red Hat也带有pop 3d,它是POP服务器。SUSE包含3种POP服务器(这可不是多余):qpopper(SUSE把它叫做popper),pop2d和pop3d。Debian有几种用IMAP管理邮箱的工具,命令man -kimap会告诉您它们的名字。

0x03 鳴謝

18.3 邮件基本原理