TranslateProject/translated/tech/20161201 How to Build an Email Server on Ubuntu Linux.md
2016-12-28 10:35:27 +08:00

9.0 KiB
Raw Blame History

如何在Ubuntu环境下搭建邮件服务器

mail server
在这个系列的文章中我们将通过使用Postfix,Dovecot,和openssl这三款工具来为你展示如何在ubuntu系统上搭建一个既可靠又很容易配置的邮件服务器。Creative Commons ZeroPixabay

在这个容器和宏服务技术日新月异的时代值得庆幸的是有些事情并没有改变例如搭建一个Linux下的邮件服务器 It's still a dance of many steps and knitting together several different servers, 一旦你将这些步骤组合在一起,一切都是那么和谐稳定, instead of winking in and out of existence like microservices. 在这一系列的教程中我们将在ubuntu系统上构建一个既可靠又容易配置的邮件服务器通过使用Postfix, Dovecot, 和OpenSSL这三款工具。

Postfix是一个古老又可靠的软件它比sendmail更加容易配置和使用原始的Unix系统的MTA软件(还有人仍然在用sendmail吗?). Exim是一个在Debain系统上的默认的MTA软件它比postfix更加轻量而且超级容易配置因此我们在将来的教程中会推出Exim的教程。
(翻译者注 : MTA : 将来自MUA的信件转发给指定的用户的程序一般被称之为因特网邮件传送代理MTAMail Transfer Agent , 详情请阅读维基百科。在linux/Unix系统上最著名的MTA有sendamil、qmail等程序。)。

Dovecot(译者注 : 详情请阅读维基百科)和Courier是两个非常受欢迎的优秀的IMAP/POP3协议的服务器软件Dovecot更加的轻量并且更加容易配置。

你必须要保证你的邮件是安全的因此我们就需要使用到OpenSSL这个软件OPENSSL也支持一些很好用的工具来测试你的邮件服务器。

为了简单起见,在这一系列的教程中,我们将指导大家安装一个在公网上的邮件服务器,你应该拥有一个公网的网络而且需要确保它是开启的而且正在正常工作,[查看如何获取一个公网服务器的教程请点击这里]然后你就可以注册你的域名将你的域名解析到你的公网服务器的IP并为你的服务器配置相应的防火墙这个过程网上已经有很多很详细的教程了这里不再赘述请大家认真完成这个作业。

一些术语

让我们先来快速了解一些术语,因为当我们了解了这些术语的时候就能知道这些见鬼的东西到底是什么。 :D

  • MTA: Mail transfer agent(邮件转发代理) 基于SMTP协议(简单邮件传输协议)的服务端, 就像PostfixEximSendmail ,SMTP服务端在这些工具之间进行相互通信。
  • MUA: Mail user agent(邮件用户代理)你本地的邮件客户端,例如 : Evolution, KMail, Claws Mail, 或者 Thunderbird(译者注 : 例如国内的foxmail)。
  • POP3: Post-office protocol, the simplest(邮局协议版本3) POP3协议这个简单的协议是为了从SMTP服务器中获取邮件并提供给你本地的邮件客户端一个POP服务端是非常简单而且很小巧的你可以为数以千计的用户提供服务(From a single box?)。
  • IMAP: Interactive message access protocol IMAP协议(邮件访问协议)许多企业使用这个协议因为邮件可以被保存在服务器上所以用户不必担心会丢失消息IMAP服务器需要大量的内存和存储空间。
  • TLS: Transport socket layer(安全传输层协议),一个SSL(Secure Sockets Layer 安全套接层)的改良版,为身份认证提供了加密的传输服务。
  • SASL: Simple authentication(简单验证安全层) and security layer 简单身份认证与安全层 为需要加密身份认证的用户服务SASL进行身份认证而上面说的TLS保证数据进行加密传输。
  • StartTLS: 一个像TLS一样众所周知的协议 它提供一种方式将纯文本连接升级为加密连接TLS或SSL
    只有通信的双方都支持SSL/TLS的时候才会进行加密如果一方不支持加密则使用明文传输).StartTLS会使用标准的端口 25 (SMTP), 110 (POP3), and 143 (IMAP) 来进行明文通信以代替对应端口的加密通信465 (SMTP), 995 (POP3), and 993 (IMAP)

是的 我们仍然在使用snedmail这个工具

绝大多数的Linux版本仍然还保留着 /usr/sbin/sendmail . 在大多数的Linux发行版中/usr/sbin/sendmail 会创建一个符号链接到你已经安装的MTA软件然而很多版本的Linux依然还保留着/usr/sbin/sendmail,这也是故意这样做的。

如何安装postfix

apt-get install postfix
你可以直接使用apt-get来安装在你安装postfix你要特别小心安装程序会打开一个向导这个向导会询问你想到搭建的服务器类型你要选择"Internet Server",为你的公网服务器,假设你的域名服务已经正确配置,(我这么多次提到这个是因为经常有人在这里出现错误)你可以使用你的hostname 。

Postfix

图 1: Postfix 的配置。Creative Commons ZeroCarla Schroder

ubuntu系统会为postfix创建一个配置文件启动三个守护进程 : master, qmgr, and pickupThere is no Postfix command or daemon.

$ ps ax  
 6494 ? Ss 0:00 /usr/lib/postfix/master  
 6497 ? S  0:00 pickup -l -t unix -u -c  
 6498 ? S  0:00 qmgr -l -t unix -u   

你可以使用postfix对你的配置文件的语法进行检查如果你的配置文件是没有语法错误的那么就不会有相应的输出。

$ sudo postfix check  
[sudo] password for carla:   

可以使用 netstat 来验证 postfix 是否正在监听25端口。

$ netstat -ant  
tcp  0  0 0.0.0.0:25 0.0.0.0:* LISTEN  
tcp6 0  0 :::25      :::*      LISTEN  

现在让我们再来让古老的 telnet 躁起来进行测试 :

$ telnet myserver 25  
Trying 127.0.1.1...  
Connected to myserver.  
Escape character is '^]'.  
220 myserver ESMTP Postfix (Ubuntu)  
**EHLO myserver**  
250-myserver  
250-PIPELINING  
250-SIZE 10240000  
250-VRFY  
250-ETRN  
250-STARTTLS  
250-ENHANCEDSTATUSCODES  
250-8BITMIME  
250 DSN  
**^]**  
  
telnet>   

我们已经验证了我们的服务器名而且postfix正在监听25端口而且正常响应了我们键入的命令。

输入quit来退出telnet例如 : 你刚才键入你服务器的交互环境的那些命令是粗体显示的输出的信息是ESMTP协议的状态码。
(译者注 : ESMTP (Extended SMTP),是扩展 SMTP 就是对标准 SMTP 协议进行的扩展. 详情请阅读维基百科)

  • PIPELINING 允许多个命令同时执行,而不必对每个命令作出响应。
  • SIZE tells 表示服务器可接收的最大消息大小。
  • VRFY 可以告诉客户端某一个特定的邮箱地址是否存在,这通常被忽略 ,因为有可能会是一个安全漏洞。
  • ETRN 适用于具有不规则不规则的互联网连接连接连通性的站点。这样的站点可以使用ETRN从上游服务器请求邮件传递交付并且Postfix可以配置为将推送推送邮件传递到ETRN客户端。
  • STARTTLS (详情见上述说明)。
  • ENHANCEDSTATUSCODES, 增强型的状态码和错误码。
  • 8BITMIME, 支持8位MIME这意味着完整的ASCII字符集。一次一次原始的ASCII是7位。
  • DSN, 传输状态通知,通知你传输时的错误。

postfix的主配置文件是 : /etc/postfix/main.cf,这个文件是安装程序创建的,可以查看这个资料 : 来查看这个配置文件的列表, /etc/postfix/postfix-files这个文件描述了postfix完整的安装过程

下周的教程我们会讲解Dovecot的安装和测试然后会给我们自己发送一些邮件。


via: https://www.linux.com/learn/how-build-email-server-ubuntu-linux

作者:CARLA SCHRODER
译者:WangYihang
校对:校对者ID

本文由 LCTT 组织编译,Linux中国 荣誉推出