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

简介: 本教程将讨论如何在Debian(或Ubuntu)配置一个可工作的邮件服务器。我们知道在邮件服务器使用的主要协议有SMTP、POP和IMAP。在本教程中,SMTP协议使用postfix,POP/IMAP协议使用dovecot。

本教程将讨论如何在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

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

1413952986587933.jpg

由于此邮件服务器就会直接向目的地发送电子邮件,我们选择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配置参数的截图。

故障排除

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

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

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

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


原文发布时间:2017-02-17
本文来自云栖社区合作伙伴“ Debian社区”,了解相关信息可以关注“ Debian社区”。
相关文章
|
11天前
|
消息中间件 安全 Unix
SSH配置多台服务器之间的免密登陆以及登陆别名
SSH配置多台服务器之间的免密登陆以及登陆别名
21 1
|
1月前
|
弹性计算 负载均衡 容灾
slb配置后端服务器组
配置阿里云SLB后端服务器组涉及四个主要步骤:创建服务器组、添加ECS实例、关联监听规则和设定负载均衡策略。这使得流量根据业务需求和服务器特性进行转发,便于应用架构的灵活管理和扩展,支持蓝绿部署、灰度发布,并通过多可用区提升系统可用性和容灾能力。
25 3
|
26天前
|
弹性计算
2024年阿里云服务器不同实例规格与配置实时优惠价格整理与分享
2024年阿里云服务器的优惠价格新鲜出炉,有特惠云服务器也有普通优惠价格,本文为大家整理汇总了2024年阿里云服务器的优惠价格,包含特惠云服务器和其他配置云服务器的优惠价格。以便大家了解自己想购买的云服务器选择不同实例规格和带宽情况下的价格,仅供参考。
2024年阿里云服务器不同实例规格与配置实时优惠价格整理与分享
|
1月前
|
安全 Linux Apache
Apache代理服务器搭建和配置
Apache代理服务器搭建和配置
|
8天前
|
存储 弹性计算 安全
阿里云服务器2核2G、2核4G配置最新租用收费标准及活动价格参考
2核2G、2核4G配置是很多个人和企业建站以及部署中小型的web应用等场景时首选的云服务器配置,这些配置的租用价格也是用户非常关心的问题,本文为大家整理汇总了2024年阿里云服务器2核2G、2核4G配置不同实例规格及地域之间的收费标准,同时整理了这些配置最新活动价格,以供大家参考和选择。
阿里云服务器2核2G、2核4G配置最新租用收费标准及活动价格参考
|
11天前
|
域名解析 网络协议 应用服务中间件
阿里云服务器配置免费https服务
阿里云服务器配置免费https服务
|
14天前
|
安全 关系型数据库 MySQL
国产麒麟服务器等保二级 配置规范(一)
国产麒麟服务器等保二级 配置规范(一)
32 0
|
14天前
|
数据采集
robots.txt配置 减小服务器压力
robots.txt配置 减小服务器压力
13 0
|
25天前
|
网络协议 Linux 网络安全
Linux服务器DNS服务器配置实现bind的正向解释和反向解释
Linux服务器DNS服务器配置实现bind的正向解释和反向解释
17 0
|
26天前
|
弹性计算 网络安全 虚拟化
ECS数据问题之升级配置预防数据丢失如何解决
ECS(Elastic Compute Service,弹性计算服务)是云计算服务提供商提供的一种基础云服务,允许用户在云端获取和配置虚拟服务器。以下是ECS服务使用中的一些常见问题及其解答的合集: