在本系列文章中,我们将向大家介绍如何在ubuntu系统上使用三个工具搭建一个可靠且易于配置的邮件服务器:Postfix、Dovecot和openssl邮件服务器。在这个容器和微服务技术日新月异的时代,幸运的是,有些东西没有改变。例如,在Linux下构建邮件服务器仍然需要许多步骤将各种服务器耦合在一起。当你配置这些的时候,放在一起,但是非常可靠和稳定,不会像微服务一样,睁开眼睛,闭上眼睛就消失了。在本系列教程中,我们将使用Postfix、Dovecot和openssl在ubuntu系统上搭建一个可靠且易于配置的邮件服务器。Postfix是一款古老而可靠的软件,比最初的UnixMTA软件sendmail更易于配置和使用(还有人使用sendmail吗?)。Exim是Debain系统默认的MTA软件,比Postfix更轻巧,而且超级容易配置,所以我们会在以后的教程中介绍Exim教程。Dovecot(LCTT译注:详见维基百科)和Courier是两款非常流行和优秀的IMAP/POP3协议服务器软件。Dovecot更轻巧且易于配置。您必须确保您的邮件通信是安全的,因此我们需要使用OpenSSL软件,而OpenSSL也提供了一些有用的工具来测试您的邮件服务器。为了简单起见,在本系列教程中,我们将指导您在局域网中安装邮件服务器。您应该在局域网上有域名服务,并确保它已启用并正常工作。看到这篇《使用dnsmasq轻松为局域网提供DNS服务》会有帮助,然后通过注册域名并相应配置防火墙,就可以把这个局域网服务器变成一个可以上网的邮件服务器了。这个过程网上已经有很多很详细的教程,这里不再赘述,请继续看教程。一些术语让我们快速回顾一下一些术语,因为当我们理解术语时,我们就会知道这些东西到底是什么。:DMTA:邮件传输代理(MailTransferAgent),一种基于SMTP协议(SimpleMailTransferProtocol)的服务器,如Postfix、Exim、Sendmail等。SMTP服务器之间相互通信(LCTT译注:请阅读维基百科详情)。MUA:MailUserAgent(邮件用户代理),你本地的邮件客户端,如:Evolution、KMail、ClawsMail或Thunderbird(LCTT译注:如国内的Foxmail)。POP3:邮局协议(Post-OfficeProtocol)第3版,用于将邮件从SMTP服务器传输到您的邮件客户端的最简单的协议。POP服务器非常简单和小巧,单机可以为成千上万的用户提供服务。IMAP:交互式消息访问协议(InteractiveMessageAccessProtocol),很多公司都使用这个协议,因为邮件可以存储在服务器上,用户不用担心丢失消息。IMAP服务器需要大量内存和存储空间。TLS:传输套接字层(Transportsocketlayer)是SSL(SecureSocketsLayer)的改进版本,为SASL认证提供加密的传输服务层。SASL:SimpleAuthenticationandSecurityLayer(简单认证和安全层),用于对用户进行认证。SASL进行身份认证,上面提到的TLS提供认证数据的加密传输。StartTLS:也称为机会性TLS。如果两个服务器都支持SSL/TLS,StartTLS会将纯文本连接升级为加密连接(TLS或SSL)。如果一方不支持加密,则使用明文传输。StartTLS使用标准的未加密端口25(SMTP)、110(POP3)和143(IMAP),而不是它们的加密端口465(SMTP)、995(POP3)和993(IMAP)。啊,我们还有sendmail大多数Linux发行版仍然有/usr/sbin/sendmail。这是过去MTA只有一个sendmail的遗留问题。在大多数Linux发行版中,/usr/sbin/sendmail是指向已安装的MTA软件的符号链接。如果您的Linux发行版中有它,请不要担心,您的发行版会处理好它。在使用apt-getinstallpostfix进行基本安装时安装Postfix时要注意(图1)。安装程序将打开一个向导并询问您要构建的服务器类型。您必须选择“Internet服务器”,尽管这是一个LAN服务器。它会要求您输入服务器的完全限定域名(例如:myserver.mydomain.net)。对于LAN服务器,您也可以只使用主机名,前提是您的DNS配置正确(我多次提到这一点,因为人们经常在这里弄错)。图1:后缀配置。Ubuntu系统会为Postfix创建一个配置文件,并启动三个守护进程:master、qmgr和pickup。这里没有名为Postfix的命令或守护进程。(LCTT译注:名为postfix的命令为管理命令。)$psax6494?Ss0:00/usr/lib/postfix/master6497?S0:00pickup-l-tunix-u-c6498?S0:00qmgr-l-tunix-u您可以使用Postfix内置的配置语法检查来测试您的配置文件,如果没有发现语法错误,则不会输出任何内容。$sudopostfixcheck[sudo]passwordforcarla:使用netstat验证postfix是否正在侦听端口25。$netstat-anttcp000.0.0.0:250.0.0.0:*LISTENtcp600:::25:::*LISTEN现在让我们使用旧的telnet再次测试:$telnetmyserver25Trying127.0.1.1...Connectedtomyserver.Escapecharacteris'^]'.220myserverESMTPPostfix(Ubuntu)EHLOmyserver250-myserver250-PIPELINING250-SIZE10240000250-VRFY250-ETRN250-STARTTLS250-ENHANCEDSTATUSCODES250-8BITMIME250DSN^]telnet>嘿,我们已经验证了我们的命令服务器名正在响应并且PSMostfix的2端口上的2按^]终止连接并返回到telnet。键入quit以退出telnet。输出ESMTP(ExtendedSMTP)250状态码如下。(LCTT译注:ESMTP(ExtendedSMTP),即扩展SMTP,是标准SMTP协议的扩展,详情请阅读维基百科)PIPELINING允许在一个流中发出多个命令,而不必响应每个命令。SIZE表示服务器可以接收的最大消息大小。VRFY可以告诉客户是否存在特定的电子邮件地址,通常应该将其删除,因为它是一个安全漏洞。ETRN适用于没有持续互联网连接的服务器。此类站点可以使用ETRN请求从上游服务器发送邮件,并且可以配置Postfix以延迟向ETRN客户端发送邮件。STARTTLS(详见上文)。ENHANCEDSTATUSCODES,服务器支持增强状态码和错误码。8BITMIME,支持8位MIME,即全ASCII字符集。最初,原始ASCII是7位。DSN,传递状态通知,用于通知您传递中的错误。Postfix的主要配置文件是:/etc/postfix/main.cf,这个文件是安装程序创建的,可以参考这个资料查看完整的main.cf参数列表,/etc/postfix/postfix-files这个文件描述了Postfix完整的安装文件。在下一个教程中我们将讲解Dovecot的安装和测试,然后给自己发一些邮件。
