如何在 Debian 下配置邮件服务器

本教程将讨论如何在Debian(或Ubuntu)配置一个可工作的邮件服务器。我们知道在邮件服务器使用的主要协议有SMTP、POP和IMAP。在本教程中,SMTP协议使用postfix,POP/IMAP协议使用dovecot。两者都是开源的、稳定的和高度可定制的。本教程中不会介绍邮件服务器的安全性,这超出了本文的范围。

1.先决条件

每个域必须有一个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.

在配置邮件服务器的过程中,这些记录可以根据系统的要求进行修改。

2.设置主机名

首先,必须在/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

安装和配置SMTP

服务: postfix
配置文件路径 /etc/postfix/
执行脚本 /etc/init.d/postfix
日志文件 /var/log/mail.log
端口 TCP/25

SMTP:安装postfix

Postfix是广泛使用的SMTP服务器之一,因为它是稳定的、轻量级的、可扩展的、高度可定制的。安装postfix可以使用apt-get的完成。

root@mail:~# apt-get install postfix

在安装过程中,需要指定电子邮件服务器和域名的类型。

如何在 Debian 下配置邮件服务器

由于此邮件服务器就会直接向目的地发送电子邮件,我们选择Internet Site。

邮件服务器的域名也需要配置,这可以从确保该邮件服务器发送的所有邮件都有@ example.tst作为发件人域。

postfix的配置文件存储在/etc/postfix目录。下面的配置文件是非常重要的。他们中的一些可能不存在,因此需要手动创建。 

  • transport:主要用于定义邮件如何被路由到特定的目标域。绕过DNS查询可以是一个很好的例子。在这种情况下,人们可以发送到域XYZ.com的电子邮件直接通过IP地址XYYX不考虑任何DNS查询的结果。 
  • access:可用于安全目的,如阻止发件人/收件人和他们的域名。 
  • aliases:用于定义用户别名。例如,发送到userA的邮件可以由userB和userC接收。 
  • main.cf:是postfix的配置文件。

SMTP:准备配置文件

差不多可以准备配置文件了。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将不会收到此邮件的副本。

SMTP:启动服务

使用以下命令启动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所有的请求。

安装和配置POP/IMAP

服务: dovecot
配置文件路径 /etc/dovecot
执行脚本 /etc/init.d/dovecot
日志文件 /var/log/mail.log
端口 TCP: 110 (POP3), 143 (IMAP), 993 (IMAPS), 995 (POP3S)

POP/IMAP: 安装dovecot

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生成的自签名证书。

POP/IMAP:准备配置文件

根据需要修改下面的参数。

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服务。

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

使用邮件用户代理(MUA)连接邮件服务器

邮件服务器现在可以使用了。可以在台式机、笔记本电脑、平板电脑或手机上用你最喜爱的电子邮件客户端软件配置邮件账户。以下是与Mozilla Thunderbird配置参数的截图。

如何在 Debian 下配置邮件服务器

故障排除

  • 日志文件/var/log/mail.log是你最好的朋友。任何的问题都可以在这里找到线索。 
  • 确保防火墙正确配置。 
  • 确保DNS服务器配置了适当的条目。 

综上所述,本教程中的演示只是运行在实验室环境中。测试DNS服务器所有必要的记录都已配置,并且用户之间的邮件可以在相同的服务器上发送(相同的域交换)。为了让事情更有趣,多邮件服务器可以被部署到不同的域来检查电子邮件如何跨域通信,因为必要的DNS记录都已存在。 

对外的邮件服务器有效的DNS记录。 Postfix和Dovecot的的设置,可以根据需要进行调整。 

警告:如果想要部署邮件服务器任何能够访问互联网邮件服务器,请确保您的SMTP是安全的。互联网以及来自局域网内部的恶意软件都是可以攻击SMTP的。


原文发布时间:2017-02-17
本文来自云栖社区合作伙伴“Debian社区”,了解相关信息可以关注“Debian社区”。
上一篇:http协议与http代理


下一篇:在VMWare中配置SQLServer2005集群 Step by Step(三)——配置域服务器