本教程将讨论如何在Debian(或Ubuntu)配置一个可工作的邮件服务器。我们知道在邮件服务器使用的主要协议有SMTP、POP和IMAP。在本教程中,SMTP协议使用postfix,POP/IMAP协议使用dovecot。两者都是开源的、稳定的和高度可定制的。本教程中不会介绍邮件服务器的安全性,这超出了本文的范围。
每个域必须有一个DNS服务器。建议不要使用Live域用于测试目的。在本教程中,将在实验室环境中使用测试域example.tst。在这个假设域名的DNS服务器应该在至少以下记录。
example.tst的forward zone配置:
IN?MX?10 mail.example.tst.
mail.example.tst. IN?A 192.168.10.1
example.tst的Reverse zone配置:
192.168.10.1 IN?PTR mail.example.tst.
在配置邮件服务器的过程中,这些记录可以根据系统的要求进行修改。
(adsbygoogle = window.adsbygoogle || []).push({});
首先,必须在/etc/hostname和/etc/hosts文件中指定邮件服务器的主机名。前者应仅包含主机名。
root@mail:~#?vim?/etc/hostname
mail
root@mail:~#?vim?/etc/hosts
##?IP Fully?Qualified?Domain?Name? Hostname?##
192.168.10.1 mail.example.tst mail
每一个Linux用户,在默认情况下,系统会为其自动创建一个邮箱。这些用户和邮箱将被用作电子邮件帐户和它们各自的邮箱。创建一个用户是很容易的。
root@mail:~#?adduser?fourbyte
服务: postfix | |
---|---|
配置文件路径 | /etc/postfix/ |
执行脚本 | /etc/init.d/postfix |
日志文件 | /var/log/mail.log |
端口 | TCP/25 |
Postfix是广泛使用的SMTP服务器之一,因为它是稳定的、轻量级的、可扩展的、高度可定制的。安装postfix可以使用apt-get的完成。
root@mail:~#?apt-get?install?postfix
在安装过程中,需要指定电子邮件服务器和域名的类型。
由于此邮件服务器就会直接向目的地发送电子邮件,我们选择Internet Site。
邮件服务器的域名也需要配置,这可以从确保该邮件服务器发送的所有邮件都有@ example.tst作为发件人域。
postfix的配置文件存储在/etc/postfix目录。下面的配置文件是非常重要的。他们中的一些可能不存在,因此需要手动创建。?
差不多可以准备配置文件了。transport与aliases配置文件没有默认提供,需要手动创建。
root@mail:~#?cd?/etc/postfix
root@mail:/etc/postfix#?touch?transport?aliases
main.cf
首先需要备份main.cf然后再进行修改。根据下面的配置添加或修改配置文件。有关参数的更多详细信息,请参阅官方README和配置手册。
root@mail:/etc/postfix#?vim?main.cf
##?the?name?of?the?server?##
myhostname?=?mail.example.tst
##?alias?definitions?##
alias_maps?=?hash:/etc/postfix/aliases
alias_database?=?hash:/etc/postfix/aliases
##?transport?definition?##
transport_maps?=?hash:/etc/postfix/transport
##?myorigin?defines?the?domain?name?for?emails?originated?from?this?server.?In?this?case,?all?outgoing?mail?should?have?'@example.tst'?as?sender?domain?##
myorigin?=?example.tst
##?mydestination?parameter?specifies?what?domains?this?machine?will?deliver?locally,?instead?of?forwarding?to?another?machine.?##
mydestination?=?mail.example.tst,?localhost.example.tst,?localhost,?hash:/etc/postfix/transport
##?the?smarthost?address.?Not?used?in?this?tutorial?and?will?be?covered?in?the?future##
relayhost?=
##?the?trusted?sender?networks.?postfix?will?not?forward?mails?originated?from?other?subnets?##
mynetworks?=?127.0.0.0/8?[::ffff:127.0.0.0]/104?[::1]/128?192.168.10.0/24
##?mailbox?size?in?bytes.?0?denotes?no?limit?##
mailbox_size_limit?=?0
##?postfix?will?listen?on?all?available?interfaces?i.e.?eth0,?eth1,?eth2?and?so?on?##
inet_interfaces?=?all
transport
邮件域example.tst被定义为在本地传递不需要任何DNS查询。
root@mail:/etc/postfix#?vim?transport
example.tst local:
.example.tst local:
root@mail:/etc/postfix#?postmap?transport
aliases
假设所有发送到userA的所有电子邮件可以由userB接收,别名文件需要按如下所述进行修改。
root@mail:/etc/postfix#?vim?aliases
userA:?userA,?userB
root@mail:/etc/postfix#?postalias?aliases
注:语法“userA:userB”指定的邮件应该只向userB转发。userA将不会收到此邮件的副本。
使用以下命令启动postfix
root@mail:~#?service?postfix?restart
出现故障时/var/log/mail.log日志文件可以提供有用的信息。邮件服务器是否正在监听TCP端口25上也可以用netstat验证。
tcp?????0????????0????????0.0.0.0:25???????0.0.0.0:*????LISTEN
从输出可以看出,服务器正在监听端口25所有的请求。
服务:?dovecot | |
---|---|
配置文件路径 | /etc/dovecot |
执行脚本 | /etc/init.d/dovecot |
日志文件 | /var/log/mail.log |
端口 | TCP: 110 (POP3), 143 (IMAP), 993 (IMAPS), 995 (POP3S) |
dovecot是开源社区中处于领先地位的IMAP和POP服务器软件,而且很容易安装和配置。这次还是用apt-get安装dovecot。
root@mail:~#?apt-get?install?dovecot-common?dovecot-pop3d?dovecot-imapd
dovecot可以支持POP3和IMAP(plain text),以及加密POP3S和IMAPS(secured)。默认情况下,dovecot将创建和使用SSL加密的自签名证书。证书可以根据需求手动创建或导入。在本教程中,将使用dovecot生成的自签名证书。
根据需要修改下面的参数。
root@mail:~#?vim?/etc/dovecot/conf.d/10-mail.conf
##?the?location?of?the?mailbox?is?specified?in?'mbox'?format?##
mail_location?=?mbox:~/mail:INBOX=/var/mail/%u
##?dovecot?is?granted?necessary?permission?to?read/write?user?mailboxes?##
mail_privileged_group?=?mail
这应该足启动邮件服务器的POP/IMAP服务。
现在dovecot已经安装和配置好了,可以使用以下命令来启动:
root@mail:~#?service?dovecot?restart
同样,在出问题时日志文件(/var/log/mail.log)可以提供重要线索。dovecot是否运行也可以用netstat验证。
root@mail:/etc/dovecot/conf.d#?netstat?-nat
tcp??????0??????0??????0?0.0.0.0:110??????0.0.0.0:*??????LISTEN
tcp??????0??????0??????0?0.0.0.0:143??????0.0.0.0:*??????LISTEN
tcp??????0??????0??????0?0.0.0.0:993??????0.0.0.0:*??????LISTEN
tcp??????0??????0??????0?0.0.0.0:995??????0.0.0.0:*??????LISTEN
邮件服务器现在可以使用了。可以在台式机、笔记本电脑、平板电脑或手机上用你最喜爱的电子邮件客户端软件配置邮件账户。以下是与Mozilla Thunderbird配置参数的截图。
综上所述,本教程中的演示只是运行在实验室环境中。测试DNS服务器所有必要的记录都已配置,并且用户之间的邮件可以在相同的服务器上发送(相同的域交换)。为了让事情更有趣,多邮件服务器可以被部署到不同的域来检查电子邮件如何跨域通信,因为必要的DNS记录都已存在。?
对外的邮件服务器有效的DNS记录。 Postfix和Dovecot的的设置,可以根据需要进行调整。?
警告:如果想要部署邮件服务器任何能够访问互联网邮件服务器,请确保您的SMTP是安全的。互联网以及来自局域网内部的恶意软件都是可以攻击SMTP的。