天天看点

linux搭建Postfix和Dovecot邮件服务器及测试

1,电子邮件系统

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

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

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

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

电子邮件系统中,为用户收发邮件的服务器名为邮件用户代理(Mail User Agent,MUA)。另外,既然电子邮件系统能够让用户在离线的情况下依然可以完成数据的接收,

肯定得有一个用于保存用户邮件的“信箱”服务器,这个服务器的名字为邮件投递代理(Mail Delivery Agent,MDA),其工作职责是把来自于邮件传输代理(Mail Transfer Agent,MTA)的邮件保存到本地的收件箱中。

其中,这个 MTA 的工作职责是转发处理不同电子邮件服务供应商之间的邮件,把来自于 MUA 的邮件转发到合适的 MTA 服务器。

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

添加反垃圾与反病毒模块:它能够很有效地阻止垃圾邮件或病毒邮件对企业信箱的干扰。

对邮件加密:可有效保护邮件内容不被黑客盗取和篡改。

添加邮件监控审核模块:可有效地监控企业全体员工的邮件中是否有敏感词、是否有透露企业资料等违规行为。

保障稳定性:电子邮件系统的稳定性至关重要,运维人员应做到保证电子邮件系统的稳定运行,并及时做好防范分布式拒绝服务(Distributed Denial of Service,DDoS)攻击的准备.

2,部署基础的电子邮件系统

一个最基础的电子邮件系统肯定要能提供发件服务和收件服务,为此需要使用基于SMTP 协议的 Postfix 服务程序提供发件服务功能,并使用基于 POP3 协议的 Dovecot 服务程序提供收件服务功能.

2-1,配置服务器主机名称,需要保持服务器主机名称与发信域名保持一致

vim /etc/hostname 修改主机名配置文件

mail.rehl.com

hostname 查看主机名

2-2,清空 iptables 防火墙默认策略,并保存策略状态,避免因防火墙中默认存在的策略阻止了客户端 DNS 解析域名及收发邮件:

iptables -F 清空防火墙默认策略

service iptables save 保存默认策略状态

2-3,为电子邮件系统提供域名解析.修改主配置文件、区域配置文件和域名数据文件的配置内容.

vim /etc/named.conf 主配置文件设置允许所有网段和主机

11 listen-on port 53 { any; }; 第11行修改

17 allow-query { any; }; 第17行修改

vim /etc/named.rfc1912.zones 区域配置文件添加本机域名并生成域名数据文件

zone "rehl.com" IN {

type master;

file "rehl.com.zone";

allow-update {none;};

}

cp named.localhost rehl.com.zone 拷贝文件并命名为linux.com.zone

vim /etc/named/rehl.com.zone 修改域名数据文件,注意:配置文件中com后面的"."

$TTL 1D

@ IN SOA rehl.com. root.rehl.com. (

0 ; serial

1D ; refresh

1H ; retry

1W ; expire

3H ); minimum

NS ns.rehl.com.

ns IN A 192.168.13.128

@ IN MX 10 mail.rehl.com.

mail IN A 192.168.13.128

重新启动bind服务程序,是配置文件生效.

3,配置Postfix 服务程序

Postfix 是一款由 IBM 资助研发的免费开源电子邮件服务程序,能够很好地兼容 Sendmail服务程序,可以方便 Sendmail 用户迁移到 Postfix 服务上。

Postfix 服务程序的邮件收发能力强于 Sendmail 服务,而且能自动增加、减少进程的数量来保证电子邮件系统的高性能与稳定性。

另外,Postfix 服务程序由许多小模块组成,每个小模块都可以完成特定的功能,因此可在生产工作环境中根据需求灵活搭配它们。

3-1,安装Postfix 服务程序,系统已经默认安装Postfix程序,需要禁止防火墙.

yum -y install postfix

systemctl disable iptables

3-2,配置Postfix服务程序,修改主配置文件(/etc/postfix/main.cf),下面试7个主要掌握的参数.

myhostname 邮局系统的主机名

mydomain 邮局系统的域名

myorigin 从本机发出邮件的域名名称

inet_interfaces 监听的网卡接口

mydestination 可接收邮件的主机名或域名

mynetworks 设置可转发哪些主机的邮件

relay_domains 设置可转发哪些网域的邮件

vim /etc/postfix/main.cf

76 myhostname = mail.rehl.com 第76行修改邮件服务器的主机名

83 mydomain = rehl.com 第83行定义邮域变量

99 myorigin = $mydomain 第99行调用前面的mydomain变量,定义发出邮件的域

116 inet_interfaces = all 第116行定义网卡监听地址,all代表监听所有地址

164 mydestination = $myhostname , $mydomain 第164行定义可接受邮件的主机名或者域名列表,可以直接调用前面定义好的变量

3-3,创建电子邮件系统的登录账户,Postfix和vsftpd服务程序一样,可以调用本地的账户和密码,因此在本地创建常规账户即可,重启Postfix服务程序,并添加到开机启动项中.

useradd boss 创建一个名为boss的用户

echo "redhat" | passwd --stdin boss 添加密码,此命令可以同时设置多账户的密码

systemctl restart postfix

systemctl enable postfix

4,配置Dovecot服务程序

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

4-1,安装Dovecot服务程序包

yum -y install dovecot

4-2,配置Dovecot服务程序, 把 Dovecot 服务程序支持的电子邮件协议修改为 imap、pop3 和 lmtp。然后在这一行下面添加一行参数,允许用户使用明文进行密码验证。

之所以这样操作,是因为 Dovecot 服务程序为了保证电子邮件系统的安全而默认强制用户使用加密方式进行登录,而由于当前还没有加密系统,因此需要添加该参数来允许用户的明文登录。

vim /etc/dovecot/dovecot.conf

24 protocols = imap pop3 lmtp 添加常用邮件协议

25 disable_plaintext_auth = no 关闭不使用明文验证

48 login_trusted_networks = 192.168.13.0/24 添加允许登录网段

4-3,配置邮件格式与存储路径,默认邮件保存路径,删除前面的"#"即可.

vim /etc/dovecot/conf.d/10-mail.conf

24 mail_location = mbox:~/mail:INBOX=/var/mail/%u

切换boss账户,并在家目录中创建保存邮件的路径,然后重启服务,添加到开机启动项中.

su - boss

mkdir -p mail/.imap/INBOX

exit 退出此账户

systemctl restart dovecot

systemctl enable dovecot

5,测试电子邮件系统.

5-1,修改IP,与邮件服务器同网段,并且DNS配置为邮件服务器的IP.

linux搭建Postfix和Dovecot邮件服务器及测试

5-2,在windows(7或10都可)上运行outlook软件程序,点击下一步-->配置电子邮件账户-->下一步-->选择电子邮件服务的协议类型-->下一步(前3步,默认下一步即可).

5-3,填写电子邮件账户信息,由于当前没有可用的 SSL 加密服务,因此在 Dovecot服务程序的主配置文件中写入了一条参数,让客户可以使用明文登录到电子邮件服务。

Outlook软件默认会通过 SSL 加密协议尝试登录电子邮件服务,大约 30~60 秒后,系统会出现登录失败的报错信息。

此时只需再次单击“下一步”按钮,即可让 Outlook 软件通过非加密的方式验证登录,创建成功如下图.如果创建邮箱用户不成功,建议重新安装邮件服务器.

linux搭建Postfix和Dovecot邮件服务器及测试

5-4,向邮件服务器发送测试邮件,可以在已发送邮件中查看到已发送成功.

linux搭建Postfix和Dovecot邮件服务器及测试

邮件服务器查看是否收到邮件

mail 查看已收到邮件,如下图,收到一份邮件主题为"测试邮件",测试成功.

linux搭建Postfix和Dovecot邮件服务器及测试

6,设置用户别名邮箱,用户别名功能是一项简单实用的邮件账户伪装技术,可以用来设置多个虚拟信箱的账户以接受发送的邮件,从而保证自身的邮件地址不被泄露,

还可以用来接收自己的多个信箱中的邮件。向bin账户发送一封邮件,如下图.

linux搭建Postfix和Dovecot邮件服务器及测试

6-1,切换bin用户,提示用户不可用,但是没关系,使用mail命令收到呢?其实,这就是用户别名技术来实现的.

linux搭建Postfix和Dovecot邮件服务器及测试

cat /etc/aliases 可以查看到"bin: root",里面定义了大量的用户别名,这些用户别名大多数是 Linux 系统本地的系统账户,

而在冒号(:)间隔符后面的root 账户则是用来接收这些账户邮件的人。用户别名可以是 Linux 系统内的本地用户,也可以是完全虚构的用户名字。

6-2,我们可以自己定义别名,然后发邮件测试一下.

vim /etc/aliases

15 wyw: root 在第15行,添加自定义别名

保存退出,执行newaliases,更新配置文件使其生效.

6-3,下面我们给[email protected] 发送邮件.

linux搭建Postfix和Dovecot邮件服务器及测试

mail 查看邮件多了一封主题为"自定义别名"的邮件.选择邮件前面的数字,查看邮件内容.

linux搭建Postfix和Dovecot邮件服务器及测试

测试成功.