您的位置:首页 > 运维架构 > Linux

linux-运维进阶-20 Postfix与Dovecot部署邮件系统

2019-03-26 20:44 701 查看

linux-运维进阶-20 Postfix与Dovecot部署邮件系统

实验环境配置,Centos7虚拟机两台:

Test(192.168.141.12):提供DNS服务

client2(192.168.141.53):提供postfix和dovecot服务

测试用的是咱们的物理机

概念解析

电子邮件

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

• 简单邮件传输协议(Simple Mail Transfer Protocol,SMTP)

用于发送和中转 4000 发出 的电子邮件,占用服务器的25/TCP端口。

• 邮局协议版本3(Post Office Protocol 3)

用于将电子邮件存储到本地主机,占用服 务器的110/TCP端口。

• Internet消息访问协议版本4(Internet Message Access Protocol 4)

用于在本地 主机上访问邮件,占用服务器的143/TCP端口。

Postfix

Postfix是一种电子邮件服务器,它是由任职于IBM华生研究中心(T.J. Watson Research Center)的荷兰籍研究员Wietse Venema为了改良sendmail邮件服务器而产生的。最早在1990年代晚期出现,是一个开放源代码的软件。

dovecot

​ Dovecot 是一个开源的 IMAP 和 POP3 邮件服务器,支持 Linux/Unix 系统。Dovecot 是一个比较新的软件,由 Timo Sirainen 开发,最初发布于 2002年7月。作者将安全性考虑在第一,所以 Dovecot 在安全性方面比较出众。另外,Dovecot 支持多种认证方式,所以在功能方面也比较符合一般的应用。

Test(192.168.141.12):提供DNS服务

这里几乎和上篇文章中所做一模一样,但是毕竟是新的一片文章,所以我们重新做一遍,也好顺便复习上篇文章中敲过的命令。

Test安装DNS服务软件包

[root@localhost ~]# yum install bind bind-chroot bind-utils -y

修改主配置文件

[root@localhost ~]# vim /etc/named.conf
将 listen-on port 53那行改为any,将listen-on-v6那行备注掉,将 allow-query 的由localhost改为any即可

options {
listen-on port 53 { any; };
#       listen-on-v6 port 53 { ::1; };
directory       "/var/named";
dump-file       "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
recursing-file  "/var/named/data/named.recursing";
secroots-file   "/var/named/data/named.secroots";
allow-query     { any; };
保存退出

正向区域解析区域配置文件

[root@localhost ~]# vim /etc/named.rfc1912.zones
在最后面加上一段:
zone "feng.io" IN {
type master;
file "feng.io.zone";
allow-update { none; };
};
保存退出

配置正向解析数据文件

[root@localhost ~]# cd /var/named/
[root@localhost named]# cp -a named.localhost feng.io.zone
[root@localhost named]# vim feng.io.zone

$TTL 1D
@       IN SOA  feng.io. root.feng.io. (
0       ; serial
1D      ; refresh
1H      ; retry
1W      ; expire
3H )    ; minimum
NS      ns.feng.io.
ns      IN A    192.168.141.12
A       192.168.141.53
IN      MX 10   mail.feng.io.
mail    IN A    192.168.141.53

保存退出

防火墙放行服务

[root@localhost named]# firewall-cmd --add-service=dns --permanent
success
[root@localhost named]# firewall-cmd --reload
success
[root@localhost named]#

修改反向解析区域配置文件

[root@localhost named]# vim /etc/named.rfc1912.zones

在尾部加入:
zone "141.168.192.in-addr.arpa" IN {
type master;
file "192.168.141.arpa";
allow-update { none; };
};

保存退出

反向区域解析数据文件

[root@localhost named]# cp feng.io.zone 192.168.141.arpa
[root@localhost named]# vim 192.168.141.arpa

$TTL 1D
@       IN SOA  feng.io. root.feng.io. (
0       ; serial
1D      ; refresh
1H      ; retry
1W      ; expire
3H )    ; minimum
NS      ns.feng.io.
A       192.168.141.53
53     PTR     feng.io.
12     PTR     ns.feng.io.
53     PTR     mail.feng.io.

保存退出,重启named服务
[root@localhost named]# systemctl restart named

client2(192.168.141.53):提供postfix和dovecot服务

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

[root@localhost ~]# hostnamectl set-hostname mail.feng.io
[root@localhost ~]# hostname
mail.feng.io
[root@localhost ~]#

修改dns配置

[root@localhost ~]# vi /etc/resolv.conf

# Generated by NetworkManager
search localdomain feng.io
nameserver 192.168.141.12
nameserver 114.114.114.114

保存退出

检查dns服务

[root@localhost ~]# nslookup
> 192.168.141.12
Server:		192.168.141.12
Address:	192.168.141.12#53

12.141.168.192.in-addr.arpa	name = ns.feng.io.
> mail.feng.io
Server:		192.168.141.12
Address:	192.168.141.12#53

Name:	mail.feng.io
Address: 192.168.141.53
> 192.168.141.53
Server:		192.168.141.12
Address:	192.168.141.12#53

53.141.168.192.in-addr.arpa	name = feng.io.
53.141.168.192.in-addr.arpa	name = mail.feng.io.
> exit

[root@localhost ~]#

可以看出,dns服务正常,正反向解析都成功了。

安装邮件服务器需要的软件包

[root@localhost ~]# yum install postfix dovecot -y

配置postfix服务

参数 作用
myhostname 邮局系统的主机名
mydomain 邮局系统的域名
myorigin 从本机发出邮件的域名名称
inet_interfaces 监听的网卡接口
mydestination 可接收邮件的主机名或域名
mynetworks 设置可转发哪些主机的邮件
relay_domains 设置可转发哪些网域的邮件
[root@localhost ~]# vi /etc/postfix/main.cf
修改为以下内容,记得原来那行的备注符号#号不要忘了去掉!

76行:
myhostname = mail.feng.io

83行:
mydomain = feng.io

99行:
myorigin = $mydomain

116行:
inet_interfaces = all

164行:
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain

179行:
local_recipient_maps =

保存退出

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

[root@localhost ~]# useradd aaa
[root@localhost ~]# echo "123456" | passwd --stdin aaa
更改用户 aaa 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# systemctl restart postfix
[root@localhost ~]# systemctl enable postfix
[root@localhost ~]#

配置dovecot服务

修改配置文件

[root@localhost ~]# vi /etc/dovecot/dovecot.conf
将第24行改为:
protocols = imap pop3 lmtp
其实也就是去掉了备注而已

注意:如果想允许所有人都能使用,则不用修改下面的参数,反正这次实验我是没去改
如果想要仅仅允许192.168.141.0/24网段的用户使用dovecot服务,则将第48行改为:
login_trusted_networks = 192.168.141.0/24

保存退出

允许明文传输内容

[root@localhost ~]# vi /etc/dovecot/conf.d/10-auth.conf
修改为以下内容,记得原来那行的备注符号#号不要忘了去掉!

第10行:
disable_plaintext_auth = no

第100行:
auth_mechanisms = plain login

保存退出

取消SSL

[root@localhost ~]# vi /etc/dovecot/conf.d/10-ssl.conf
修改为以下内容
第8行:
ssl = no

将14、15行都备注掉
第14行:
#ssl_cert = </etc/pki/dovecot/certs/dovecot.pem

第15行:
#ssl_key = </etc/pki/dovecot/private/dovecot.pem

保存退出

设置收件箱

[root@localhost ~]# vi /etc/dovecot/conf.d/10-mail.conf
将第25行改为:
mail_location = mbox:~/mail:INBOX=/var/mail/%u
其实也就是去掉备注而已
保存退出

然后切换到配置Postfix服务程序时创建的eagle账户,并在家目录中建立用于保存邮件的目录。记得要重启Dovecot服务并将其添加到开机启动项中。至此,对Dovecot服务程序的配置部署步骤全部结束。

[root@localhost ~]# su - aaa
[aaa@mail ~]$ mkdir -p mail/.imap/INBOX
[aaa@mail ~]$ exit
登出
[root@localhost ~]# systemctl restart dovecot
[root@localhost ~]# systemctl enable dovecot
Created symlink from /etc/systemd/system/multi-user.target.wants/dovecot.service to /usr/lib/systemd/system/dovecot.service.
[root@localhost ~]#

设置邮件服务的防火墙放行

[root@localhost ~]# firewall-cmd --add-port={25,110,143}/tcp --permanent
success
[root@localhost ~]# firewall-cmd --reload
success
[root@localhost ~]#

在本篇文章开始那里,常见的邮件协议介绍的三种协议的端口号分别便是25,110,143,均放行。

在windows上用foxmail客户端测试邮件服务

修改window上的dns地址,如下图:

使用foxmail测试邮件服务器是否成功,如下图:

安装完成后打开,选择手动设置,然后如下图:

发送邮件给咱们的client2那台虚拟机的root用户,看看它能不能收到。

首先在client2上安装相关工具包

[root@localhost ~]# yum install mailx sendmail -y

装好后,先敲mail命令,然后直接回车即可
[root@localhost ~]# mail
Heirloom Mail version 12.5 7/5/10.  Type ? for help.
"/var/spool/mail/root": 1 message 1 new
>N  1 aaa@feng.io           Sun Feb  3 19:07  52/2158  "HelloMail"
&
Message  1:
From aaa@feng.io  Sun Feb  3 19:07:47 2019
Return-Path: <aaa@feng.io>
X-Original-To: root@feng.io
Delivered-To: root@feng.io
Date: Sun, 3 Feb 2019 19:07:45 +0800
From: "aaa@feng.io" <aaa@feng.io>
To: root <root@feng.io>
Subject: HelloMail
X-Priority: 3
X-Has-Attach: no
X-Mailer: Foxmail 7.2.9.156[cn]
Content-Type: multipart/alternative;
boundary="----=_001_NextPart407851228804_=----"
Status: R

Content-Type: text/plain;
charset="GB2312"

当您收到这封邮件时,证明我的邮局系统实验已经成功!

aaa@feng.io
&

可以看到,它的确收到了邮件了,说明咱们的配置成功了!

至于linux端发邮件给windows,写起来比较麻烦,也不好解释怎么操作,有兴趣的朋友可以自行网上学习,最好是视频形式的教程,那样才听得明白。

题外话

​ 上面咱们用到的那款软件Foxmail中文名是狐邮,正是在最近热播的电视剧《创业时代》里面的罗维开发的软件,这剧真的挺好看的,主演黄轩演的真的不错,喜欢的朋友们可以去追一追这部剧。

本篇到此结束。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: