Linux新手随手笔记2.5-使用Postfix和Dovecot部署邮件系统

电子邮件系统

在以前,没有邮箱的时候,我们可以用HTTP FTP等也可以实现远程传输,但是这个面临一个问题,那就是必须双方都在线的情况下。如果有一方宕机什么的,就不行了,然后我们的邮件系统就出来了,就算是你不在线他也可以给你传过来,等你上线了再查看。

电子邮件系统基于邮件协议来完成电子邮件的传输,常见的邮件协议有下面这些。

简单邮件传输协议(Simple Mail Transfer Protocol,SMTP):用于发送和中转发出的电子邮件,占用服务器的25/TCP端口。

邮局协议版本3(Post Office Protocol 3):用于将电子邮件存储到本地主机,占用服务器的110/TCP端口。

Internet消息访问协议版本4(Internet Message Access Protocol 4):用于在本地主机上访问邮件,占用服务器的143/TCP端口。

在电子邮件系统中,为用户收发邮件的服务器名为邮件用户代理(Mail User Agent,MUA)。另外,既然电子邮件系统能够让用户在离线的情况下依然可以完成数据的接收,肯定得有一个用于保存用户邮件的“信箱”服务器,这个服务器的名字为邮件投递代理(Mail Delivery Agent,MDA),其工作职责是把来自于邮件传输代理(Mail Transfer Agent,MTA)的邮件保存到本地的收件箱中。其中,这个MTA的工作职责是转发处理不同电子邮件服务供应商之间的邮件,把来自于MUA的邮件转发到合适的MTA服务器。例如,我们从新浪信箱向谷歌信箱发送一封电子邮件,这封电子邮件的传输过程如图

MUA:收发邮件   

MTA:转发邮箱     

MDA:保存邮件

总的来说,一般的网络服务程序在传输信息时就像拨打电话,需要双方同时保持在线,而在电子邮件系统中,当用户发送邮件后不必等待投递工作完成即可下线。如果对方邮件服务器(MTA)宕机或对方临时离线,则发件服务器(MTA)就会把要发送的内容自动的暂时保存到本地,等检测到对方邮件服务器恢复后会立即再次投递,期间一般无需运维人员维护处理,随后收信人(MUA)就能在自己的信箱中找到这封邮件了。

大家在生产环境中部署企业级的电子邮件系统时,有4个注意事项请留意。

  1. 添加反垃圾与反病毒模块:它能够很有效地阻止垃圾邮件或病毒邮件对企业信箱的干扰。
  2. 对邮件加密:可有效保护邮件内容不被黑客盗取和篡改。
  3. 添加邮件监控审核模块:可有效地监控企业全体员工的邮件中是否有敏感词、是否有透露企业资料等违规行为。
  4. 保障稳定性:电子邮件系统的稳定性至关重要,运维人员应做到保证电子邮件系统的稳定运行,并及时做好防范分布式拒绝服务(Distributed Denial of Service,DDoS)攻击的准备。

部署基础的电子邮件系统

一个最基础的电子邮件系统肯定要能提供发件服务和收件服务,为此需要使用基于SMTP协议的Postfix服务程序提供发件服务功能,并使用基于POP3协议的Dovecot服务程序提供收件服务功能。这样一来,用户就可以使用Outlook Express或Foxmail等客户端服务程序正常收发邮件了。电子邮件系统的工作流程如图

一般而言,我们的信箱地址类似于“[email protected]”这样,也就是按照“用户名@主机地址(域名)”格式来规范的。如果您给我一串“[email protected]”的信息,我可能猜不到这是一个信箱地址,没准会将它当作SSH协议的连接信息。因此,要想更好地检验电子邮件系统的配置效果,需要先部署bind服务程序,为电子邮件服务器和客户端提供DNS域名解析服务。

那么我们先来配置DNS,前面已经说过,那么我们这里再配置一次。

然后我们在这时候先修改一下我们主机名称。(配置服务器主机名称,需要保证服务器主机名称与发信域名保持一致)

这待会就是我们发送邮件的那个发件端。

然后我们清空一下我们的防火墙规则不并且保存下来。为了待会我们能够正常通信

然后我们编辑一下我们DNS配置文件。

修改我们的第11行和第17行。允许所有人提供DNS信息,允许所有人能够进行查询

然后再修改我们DNS子配置文件

先定义一个域名信息数据文件,我们先写上一个域叫做laoji.com

定义服务器类型为主服务器

我们定义一下数据文件所寻找的路径。

是否允许从服务器进行查询。

然后我们进入/var/named里面。

然后我们复制一下正向解析模板,别忘了加-a。

 

然后我们编辑一下正向解析文件。

倒数第二行我们是配置邮箱,邮箱前面是个@符号。IN MX10就是代表配置邮箱的域名,后面的10代表就是一个优先级这个数字越大优先级就是越高的。然后我们将mail邮箱解析成192.168.10.10。

别忘了重启和加入开机启动项。

然后我们找一台Windows服务器。

然后给他配置一下网卡,

然后我们ping一下,这个网络必须是要通的。

然后我们nslookup一下看看DNS能不能解析这个域名,测试一下我们DNS配置好没,我们看到可以了。

一提到邮件我们就能想到,他肯定要有发邮件的,然后要有收邮件的。

发送   Postfix服务    RHEL  7里面使用的。

           Sendmail      RHEL   5/6

收到   Dovecot服务

配置Postfix服务程序

Postfix是一款由IBM资助研发的免费开源电子邮件服务程序,能够很好地兼容Sendmail服务程序,可以方便Sendmail用户迁移到Postfix服务上。Postfix服务程序的邮件收发能力强于Sendmail服务,而且能自动增加、减少进程的数量来保证电子邮件系统的高性能与稳定性。另外,Postfix服务程序由许多小模块组成,每个小模块都可以完成特定的功能,因此可在生产工作环境中根据需求灵活搭配它们。

在RHEL里面默认就有了Postfix这个程序了。所以不用我们去自己再安装了,但是如果你用6或者更早的版本那就yum install postfix一下吧。记住,在安装完Postfix程序之后需要systemctl disable iptables禁用掉一下防火墙,不然外部是访问不到的。

接下来我们配置Postfix的配置文件吧

                                             Postfix服务程序主配置文件中的重要参数

参数 作用
myhostname 邮局系统的主机名
mydomain 邮局系统的域名
myorigin 从本机发出邮件的域名名称
inet_interfaces 监听的网卡接口
mydestination 可接收邮件的主机名或域名
mynetworks 设置可转发哪些主机的邮件
relay_domains 设置可转发哪些网域的邮件

打开之后大家会很难受,什么啊这么多,但是其实都是注释,我们找到大概在76行,把#去掉修改或者你再自己写一条。定义一下主机名称,就是我们刚才修改的主机名称,不知道的自己hostname一下看看。

然后我们找到83行,我们发送出去的那个邮件的域名的后缀是多少,因为我们要想发送出去的那个邮件的后缀是叫root@laoji.com,因为我们希望我们的后缀是laoji.com所以我们给他定义在里面。这就是我们发送出去的那个域是什么。定义一个名为mydomain的变量,用来保存邮件域的名称

然后我们找到99行看一下我们直接去掉#好开启一下就好了,他是调用前面83行的mydomain变量,用来定义发出邮件的域。调用变量的好处是避免重复写入信息,以及便于日后统一修改

然后我们到116行,定义网卡监听地址。可以指定要使用服务器的哪些IP地址对外提供电子邮件服务;也可以干脆写成all,代表所有IP地址都能提供电子邮件服务

然后我们再到164行定义可接收邮件的主机名或域名列表。这里可以直接调用前面定义好的myhostname和mydomain变量(如果不想调用变量,也可以直接调用变量中的值),也就是我们定义了两个后缀,第一个是[email protected]  ,  第二个是[email protected]

保存并退出。(其实我们不配置这些东西也可以用)

创建电子邮件系统的登录账户。Postfix与vsftpd服务程序一样,都可以调用本地系统的账户和密码,因此在本地系统创建常规账户即可。最后重启配置妥当的postfix服务程序,并将其添加到开机启动项中。大功告成!

然后我们创建一个新的用户boss。(其实这里应用了一个pam模块来调取我们本地用户来登录邮件)

然后我们看一下切换一下这个用户,没问题,然后我们重启一下postfix服务并添加开机启动项。

这一步其实多余,因为我们系统已经默认开启和添加启动项了。

配置Dovecot服务程序

Dovecot是一款能够为Linux系统提供IMAP和POP3电子邮件服务的开源服务程序,安全性极高,配置简单,执行速度快,而且占用的服务器硬件资源也较少,因此是一款值得推荐的收件服务程序。

我们先安装dovecot服务程序。

然后我们编辑dovecot配置文件,他在/etc/dovecot/dovecot.conf

 

打开之后发现也全是注释,那么我们先编辑一下第24行

第24.25行是说我们开启一下以下协议能够支持我们的邮件服务。然后再添加一行语句是这样的,这个dovecot默认只支持加密的一个认证但是我们现在没有了解过openssl,我们添加这行参数为了禁用掉强制加密的这么一个认证。这就是说允许我们用户待会可以通过明文来进行一个验证。

在主配置文件中的第48行,设置允许登录的网段地址,也就是说我们可以在这里限制只有来自于某个网段的用户才能使用电子邮件系统。如果想允许所有人都能使用,则不用修改本参数

然后我们保存退出。

接下来配置另一个文件,/etc/dovecot/conf.d/10-mail.conf

配置邮件格式与存储路径。在Dovecot服务程序单独的子配置文件中,定义一个路径,用于指定要将收到的邮件存放到服务器本地的哪个位置。这个路径默认已经定义好了,我们只需要将该配置文件中第25行前面的井号(#)删除即可。

其实它属于一个bug.他说他会保存到~/mail:INBOX路径下,其实大家看波浪线,他其实还有两个目录被隐藏起来了。比如说他其实是这样的。/home/boss/mail/.imap/INBOX。他本来是这样的,这个.imap子目录真的是坑,你们不说别人怎么知道。这个要注意一下。

然后我们切换到boss用户,创建出来这个~/mail/.imap/INBOX目录。

然后我们切换回root用户重启dovecot服务并添加开机启动项,这样就好了。

然后我们打开我们配置好IP的Windows客户端。安装一个outlook进行测试(不一定是我这个版本,foxmail也挺好,还有outlook其他版本)。

我们开始安装,安装时间可能比较长,在这之前再说一下,确定是能和主机PING通的。

直接下一步下一步就好了。

这个记住了,是@不是.了啊。第一次因为要加密,就是我们上面说的那个没有openssl。所以会报错,没关系,我们继续下一步

他就会给我们变成明文的。

我们会看到安装登录完成

接下来我们进行一下测试。然后我们邮件空白处添加新邮件。

然后我们编辑内容发给root用户。

然后我们返回服务器查看一下发过来了没有,用mail命令

他会告诉我们有1封新的邮件,N代表新的,来自于boss,标题是root

然后我们输入1查看一下邮件内容,(因为他的编号是1,如果他的编号是3,那么我们就输入3)OK没问题。

那么我们再玩一下发回去。

命令是mail 加上发给的人的邮箱地址,然后Subject后面是标题,然后回车就是输入内容。

当我们觉得写完的时候,记得另起一行,是另起一行一个点回车,表示你要发送。

然后我们进入客户端点这个按钮,在收件箱就会看到一封新的邮件。

设置用户别名邮箱

用户别名功能是一项简单实用的邮件账户伪装技术,可以用来设置多个虚拟信箱的账户以接受发送的邮件,从而保证自身的邮件地址不被泄露,还可以用来接收自己的多个信箱中的邮件。刚才我们已经顺利地向root账户送了邮件,下面再向bin账户发送一封邮件,如图

好奇怪,为什么root收到了,这里说一下,这是因为我们配置文件中设置了用户别名邮箱。对了给你们看一下,真的没有bin这个用户。

 

不多说了,我们步入正题,这个文件就是/etc/aliases

下面我们再配置一下这个文件,然后测试一下。

太多了,我们看一下刚打开,第一个就是我们刚才测试的的bin,系统原来来就有的,现在我们自己添加一个长的。

没错,你没看错,就是danshenhaojiu(单身好久)。

保存退出,然后执行一个命令newaliases,立刻执行的意思。

然后我们发一下看看。

马上去服务器邮箱查看。

OK,没问题,应该都明白了吧,是不是很简单。

用户可以定义多个别名发给同一个人,有时候我们看到某一个网站上好多邮箱,以为多牛逼,但是你现在明白了么,其实都是发给一个人的。有点可笑,但是这个方法确实能把你唬住,因为之前你什么也不知道,以后的话估计够呛,这个别名真的很好用,你也可以唬别人,当然这个作用不是为了忽悠人的,主要还是为了安全,让别人不知道你真正的名称。

猜你喜欢

转载自www.cnblogs.com/hshyx/p/10850617.html
今日推荐