Centos7搭建Postfix+Dovecot邮件收发实战(基于EVE-NG模拟器)

原创 阁主  2020-04-23 20:57:02  阅读 6971 次 评论 2 条
摘要:

本文旨在搭建一套邮件服务系统,基础知识点自行百度了解。(如:Postfix、Dovecot )

基本信息

01拓扑.png

  • win7 : 作为客户端,安装好foxmail;IP地址为172.16.1.1,网关为172.16.1.254;DNS为177.1.1.2和188.1.1.2;

  • Router:作为内网路由以及外网NAT(路由协议使用RIPv2)

  • ISP:依据拓扑配置路由和IP(路由协议使用RIPv2)

  • Server1:quagga路由(路由协议使用RIPv2)、DNS(s1na.com的master,i63.com的slave)、以及s1na.com的邮箱服务器

  • Server2:quagga路由(路由协议使用RIPv2)、DNS(s1na.com的slave,i63.com的master)、以及slave.com的邮箱服务器

Router和ISP路由配置

1.Router配置命令:

en
conf t 
int e 0/1
no sh
ip nat inside
ip add 172.16.1.254 255.255.255.0
int e 0/0
no sh
ip nat outside
ip add 166.1.1.1 255.255.255.252
access-list 1 permit any
ip nat inside source list 1 interface e0/0 overload
router rip
version 2
no auto-summary
network 166.1.0.0
!
end
wr
!

2.ISP配置命令:

en
conf t 
int e 0/0
no sh
ip add 166.1.1.2 255.255.255.252
int e 0/2
no sh
ip add 177.1.1.1 255.255.255.252
int e 0/3
no sh
ip add 188.1.1.1 255.255.255.252
router rip
version 2
no auto-summary
network 0.0.0.0
!
end
wr
!

Win7客户端配置

win7客户端网络配置信息如下图.

02win7客户端配置.png

Server1-quagga配置

1.安装quagga:

yum -y install quagga

2.将模板ripd.conf.sample从/usr/share/doc/quagga-0.99.22.4/复制到/etc/quagga/下,并重命令为ripd.conf.sample

cp -a /usr/share/doc/quagga-0.99.22.4/ripd.conf.sample /etc/quagga/ripd.conf

02复制ripd.png

3.启动服务并加入开机启动

#启动ripd.service 
systemctl start zebra.service ripd.service 
#加入开机启动ripd.service 
systemctl enable zebra.service ripd.service

4.使用vtysh命令登入路由配置界面并配置rip路由.

en
conf t
router rip 
version 2 
network 177.1.0.0/16
end
wr
!

5.使用sh ip route命令查看Server1服务器目前的路由表况.

03拓扑中所有路由表均已载入.png

6.Server1服务器防火墙开放UDP520端口(此端口用于RIP路由协议)

#添加永久开放udp520端口
firewall-cmd --zone=public --add-port=520/udp --permanent 
#重启防火墙
systemctl restart firewalld
#查看开放端口
firewall-cmd --zone=public --list-ports

05开启的端口.png

Server2-quagga配置

1.安装quagga:

yum -y install quagga

2.将模板ripd.conf.sample从/usr/share/doc/quagga-0.99.22.4/复制到/etc/quagga/下,并重命令为ripd.conf.sample

cp -a /usr/share/doc/quagga-0.99.22.4/ripd.conf.sample /etc/quagga/ripd.conf

02复制ripd.png

3.启动服务并加入开机启动

#启动ripd.service 
systemctl start zebra.service ripd.service 
#加入开机启动ripd.service 
systemctl enable zebra.service ripd.service

4.使用vtysh命令登入路由配置界面并配置rip路由.

en
conf t
router rip 
version 2 
network 188.1.0.0/16
end
wr
!

5.使用sh ip route命令查看Server1服务器目前的路由表况.

04拓扑路由均已载入.png

6.Server2服务器防火墙开放UDP520端口(此端口用于RIP路由协议)

#添加永久开放udp520端口
firewall-cmd --zone=public --add-port=520/udp --permanent 
#重启防火墙
systemctl restart firewalld
#查看开放端口
firewall-cmd --zone=public --list-ports

05开启的端口.png

Server1-DNS配置

1.安装BIND服务,键入下方命令安装.

yum -y install bind-chroot.x86_64

2.DNS采用的UDP协议,监听53号端口,进一步检验named工作是否正常:

iptables -L -n |grep 53

06端口开启53.png

3.修改主配置文件。

#编辑named.conf配置文件
vim /etc/named.conf

07SERVER1主配置文件.png

4.修改区域配置文件

vim /etc/named.rfc1912.zones
//s1na.com的主
zone "s1na.com" IN {
	type master;
	file "s1na-zone";
	allow-update { 188.1.1.2; };
};
//i63.com的备
zone "i63.com"  IN {
         type slave;   
         file "slaves/i63-zone";   
         masterfile-format text;
        masters { 188.1.1.2; };
};

08区域配置文件.png

5.复制正向解析模板

#进入配置文件目录
cd /var/named/  
#复制一份正向解析的模板文件,-a为保持源文件属性
cp -a named.localhost s1na-zone

09复制模板.png

6.配置s1na.com正向解析.

vim /var/named/s1na-zone
$TTL 1D
@	IN SOA	s1na.com. root.s1na.com. (
					0	; serial
					1D	; refresh
					1H	; retry
					1W	; expire
					3H )	; minimum
	NS	       ns.s1na.com.
ns	IN   A   	  177.1.1.2
@	IN 	MX	10 	mail
mail IN   A      177.1.1.2

10配置s1na配置文件.png

7.防火墙永久开放dns服务。

firewall-cmd --add-service=dns --permanent
systemctl restart firewalld
firewall-cmd --list-services

17开放DNS服务.png

8.重启named服务

systemctl restart named

9.检查配置文件是否生效

named-checkzone   mail.s1na.com  /var/named/s1na-zone

11配置文件生效.png

10.查看同步i63-zone信息。(需要Server2防火墙开放dns服务)

cat /var/named/slaves/i63-zone

18此条对收发邮件极为重要.png

Server2-DNS配置

1.安装BIND服务,键入下方命令安装.

yum -y install bind-chroot.x86_64

2.DNS采用的UDP协议,监听53号端口,进一步检验named工作是否正常:

iptables -L -n |grep 53

06端口开启53.png

3.修改主配置文件。

#编辑named.conf配置文件
vim /etc/named.conf

12server2主配置文件.png

4.修改区域配置文件

vim /etc/named.rfc1912.zones
//s1na.com的备
zone "s1na.com"  IN {
         type slave;   
         file "slaves/s1na-zone";   
        masterfile-format text;
        masters { 177.1.1.2; };
};
//i63.com的主
zone "i63.com" IN {
	type master;
	file "i63-zone";
	allow-update { 177.1.1.2; };
};

13区域配置文件.png

5.复制正向解析模板

#进入配置文件目录
cd /var/named/  
#复制一份正向解析的模板文件,-a为保持源文件属性
cp -a named.localhost i63-zone

14复制模板.png

6.配置i63.com正向解析.

vim /var/named/i63-zone
$TTL 1D
@	IN SOA	i63.com. root.i63.com. (
					0	; serial
					1D	; refresh
					1H	; retry
					1W	; expire
					3H )	; minimum
	NS	       ns.i63.com.
ns	IN   A   	  188.1.1.2
@	IN 	MX	10 	mail
mail IN   A      188.1.1.2

15i63配置文件.png

7.防火墙永久开放dns服务。(引用Server1的注解图,请略.)

firewall-cmd --add-service=dns --permanent
systemctl restart firewalld
firewall-cmd --list-services

17开放DNS服务.png

8.重启named服务

systemctl restart named

9.检查配置文件是否生效

named-checkzone   mail.i63.com  /var/named/i63-zone

16配置文件生效.png

10.查看同步s1na-zone信息。(需要Server1防火墙开放dns服务)

cat /var/named/slaves/s1na-zone

19此条对收发邮件极为重要.png

Server1-Postfix部署配置

1.安装postfix

yum -y install postfix

2.检查postfix配置文件路径

rpm -ql postfix|more

20配置文件路径.png

3.配置postfix主配置文件(对应关键字可以直接使用搜索找到对应地址)

(1)备份并打开编辑主配置文件

#进入配置目录
cd /etc/postfix/
#备份配置文件
cp main.cf main.cf.bak
#打开编辑main.cf
vim /etc/postfix/main.cf

(2)修改myhostname参数,即是邮件服务器的主机名称.

myhostname = mail.s1na.com

(3)修改mydomain参数,即是域名称.

mydomain =  s1na.com

(4)修改myorigin参数,即是邮件地址,是我们的邮件地址@后面的内容

myorigin = $mydomain

(5)修改smtp监听端口

inet_interfaces = all
#inet_interfaces = localhost

注解:inet-interfaces参数指定postfix系统监听的网络接口。Postfix预设只会监听来自于本机端的所传出的封包,必须使用上列设定,才可以传收所有来自于网路端的所有封包.

(6)修改inet_protocols

inet_protocols = ipv4

注解:修改Postix的通讯协定,目前网路的协定主流有IPv4与IPV6,在大部份的情况下,我们都是利用IPv4在通讯的,如果你的Mail Server没有需要使用到IP6,可以做以上的设定修改

(7)修改mydestination

mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain

注解:mydestination参数设定能够接收信件的主机名称,Postfix预设只能收ation到设定的Hostname与Domain Name以及本机端的信件,此步骤是再增加能收信件的网络名称。.

(8)设定信任用户端

mynetworks = 0.0.0.0/0

注解:mynetworks参数设定信任的用户端,当要寄信时,会参考此值,若非信任的用户,则不会帮你的信件转到其它的MTA主机上。"

(9)设定relay_domain转发邮件域名

relay_domains = $mydestination

注解:规范可以relay的MTA主机位址(收发Mail的程序一般统称为邮件用户代理MUA(Mail User Agent)),通常这个都直接设为mydestination.

(10)设定邮件别名的路径(默认已配置)

检查"alias_maps"设定是否为以下字串设定:

alias_maps = hash:/etc/aliases

(11)设定置顶邮件别名表资料库路径(默认已配置)

检查"alias_database"设定是否为以下字串设定:

alias_database = hash:/etc/aliases

(12)执行以下命令(保持默认则忽略此步)

注解:用于设定邮件主机使用权限与过滤机制及邮件别名.

postmap hash:/etc/postfix/access
postalias hash:/etc/aliases

4.下方贴出主配置文件的主要配置(可直接copy)

#筛选出主要的配置信息命令
grep -vE "^#|^$" main.cf
#已筛选的主要配置信息
queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
mail_owner = postfix
myhostname = mail.s1na.com
mydomain = s1na.com
myorigin = $mydomain
inet_interfaces = all
inet_protocols = ipv4
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
relay_domains = $mydestination
unknown_local_recipient_reject_code = 550
mynetworks = 0.0.0.0/0
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
debug_peer_level = 2
debugger_command =
    PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin 
    ddd $daemon_directory/$process_name $process_id & sleep 5
sendmail_path = /usr/sbin/sendmail.postfix
newaliases_path = /usr/bin/newaliases.postfix
mailq_path = /usr/bin/mailq.postfix
setgid_group = postdrop
html_directory = no
manpage_directory = /usr/share/man
sample_directory = /usr/share/doc/postfix-2.10.1/samples
readme_directory = /usr/share/doc/postfix-2.10.1/README_FILES

Server2-Postfix部署配置

1.安装postfix

yum -y install postfix

2.检查postfix配置文件路径

rpm -ql postfix|more

3.配置postfix主配置文件(对应关键字可以直接使用搜索找到对应地址)

(1)备份并打开编辑主配置文件

#进入配置目录
cd /etc/postfix/
#备份配置文件
cp main.cf main.cf.bak
#打开编辑main.cf
vim /etc/postfix/main.cf

(2)修改myhostname参数,即是邮件服务器的主机名称.

myhostname = mail.i63.com

(3)修改mydomain参数,即是域名称.

mydomain =  i63.com

(4)修改myorigin参数,即是邮件地址,是我们的邮件地址@后面的内容

myorigin = $mydomain

(5)修改smtp监听端口

inet_interfaces = all
#inet_interfaces = localhost

注解:inet-interfaces参数指定postix系统监听的网络接口。Postfix预设只会监听来自于本机端的所传出的封包,必须使用上列设定,才可以传收所有来自于网路端的所有封包.

(6)修改inet_protocols

inet_protocols = ipv4

注解:修改Postix的通讯协定,目前网路的协定主流有IPv4与IPV6,在大部份的情况下,我们都是利用IPv4在通讯的,如果你的Mail Server没有需要使用到IP6,可以做以上的设定修改

(7)修改mydestination

mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain

注解:mydestination参数设定能够接收信件的主机名称,Postfix预设只能收ation到设定的Hostname与Domain Name以及本机端的信件,此步骤是再增加能收信件的网络名称。.

(8)设定信任用户端

mynetworks = 0.0.0.0/0

注解:mynetworks参数设定信任的用户端,当要寄信时,会参考此值,若非信任的用户,则不会帮你的信件转到其它的MTA主机上。"

(9)设定relay_domain转发邮件域名

relay_domains = $mydestination

注解:规范可以relay的MTA主机位址(收发Mail的程序一般统称为邮件用户代理MUA(Mail User Agent)),通常这个都直接设为mydestination.

(10)设定邮件别名的路径(默认已配置)

检查"alias_maps"设定是否为以下字串设定:

alias_maps = hash:/etc/aliases

(11)设定置顶邮件别名表资料库路径(默认已配置)

检查"alias_database"设定是否为以下字串设定:

alias_database = hash:/etc/aliases

(12)执行以下命令(保持默认则忽略此步)

注解:用于设定邮件主机使用权限与过滤机制及邮件别名.

postmap hash:/etc/postfix/access
postalias hash:/etc/aliases

4.下方贴出主配置文件的主要配置(可直接copy)

#筛选出主要的配置信息命令
grep -vE "^#|^$" main.cf
#已筛选的主要配置信息
queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
mail_owner = postfix
myhostname = mail.i63.com
mydomain = i63.com
myorigin = $mydomain
inet_interfaces = all
inet_protocols = ipv4
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
relay_domains = $mydestination
unknown_local_recipient_reject_code = 550
mynetworks = 0.0.0.0/0
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
debug_peer_level = 2
debugger_command =
    PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin 
    ddd $daemon_directory/$process_name $process_id & sleep 5
sendmail_path = /usr/sbin/sendmail.postfix
newaliases_path = /usr/bin/newaliases.postfix
mailq_path = /usr/bin/mailq.postfix
setgid_group = postdrop
html_directory = no
manpage_directory = /usr/share/man
sample_directory = /usr/share/doc/postfix-2.10.1/samples
readme_directory = /usr/share/doc/postfix-2.10.1/README_FILES

Server1-Dovecot 部署配置

1.安装dovecot服务

yum install -y dovecot

2.修改dovecot主配置文件 /etc/dovecot/dovecot.conf

vim /etc/dovecot/dovecot.conf
#配置信息
protocols = imap pop3 lmtp
disable_plaintext_auth  = no

注解:修改Dovecot服务程序支持的电子邮件协议并添加允许用户使用明文密码验证.

21dovecot开启服务.png

3.配置邮件格式与存储路径(/etc/dovecot/conf.d/10-mail.conf)

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

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

22配置目录删除#号.png

4.将登入需要ssl认证关闭(/etc/dovecot/conf.d/10-ssl.conf)

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

23修改成ssl = no.png

5.配置邮件存放目录(同时添加测试用户test1)

useradd test1 ;echo 123456|passwd --stdin test1
su - test1
mkdir -p /home/test1/mail/.imap/INBOX
exit

6.防火墙开放pop3、imap、smtp服务

#添加永久开放pop3/imap/smtp服务
firewall-cmd --add-service=pop3 --permanent
firewall-cmd --add-service=imap --permanent
firewall-cmd --add-service=smtp --permanent
#重启防火墙
systemctl restart firewalld
#查看开放服务
firewall-cmd --list-services

24以开放imap pop3 smtp 服务.png

Server2-Dovecot 部署配置

1.安装dovecot服务

yum install -y dovecot

2.修改dovecot主配置文件 /etc/dovecot/dovecot.conf

vim /etc/dovecot/dovecot.conf
#配置信息
protocols = imap pop3 lmtp
disable_plaintext_auth  = no

注解:修改Dovecot服务程序支持的电子邮件协议并添加允许用户使用明文密码验证.

21dovecot开启服务.png

3.配置邮件格式与存储路径(/etc/dovecot/conf.d/10-mail.conf)

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

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

22配置目录删除#号.png

4.将登入需要ssl认证关闭(/etc/dovecot/conf.d/10-ssl.conf)

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

23修改成ssl = no.png

5.配置邮件存放目录(同时添加测试用户test2)

useradd test2 ;echo 123456|passwd --stdin test2
su - test2
mkdir -p /home/test2/mail/.imap/INBOX
exit

6.防火墙开放pop3、imap、smtp服务

#添加永久开放pop3/imap/smtp服务
firewall-cmd --add-service=pop3 --permanent
firewall-cmd --add-service=imap --permanent
firewall-cmd --add-service=smtp --permanent
#重启防火墙
systemctl restart firewalld
#查看开放服务
firewall-cmd --list-services

25三个服务已开启.png

两台Server最后配置

两台Server服务器如上Postfix和Dovecot配置完毕,同样需要配置Dovccot及启动saslauthd服务,方可进行邮件的收发!

systemctl restart postfix
systemctl restart dovecot 
systemctl restart saslauthd

26不报错即为ok.png

Foxmail客户端配置

1.远程工具连接win7客户端打开foxmail客户端,首次运行如下图选择“其他邮箱”。

27其他邮箱.png

2.先添加Server1服务器中test1用户,填写完点击创建

28填写完点击创建.png

3.一般他会自动补齐我们的pop3等地址信息.无误点击创建.

29无误点击创建.png

4.基本上配置不出错已经是可以创建登录成功的!点击完成即可打开主界面.

30设置成功.png

5.接下来添加Server2服务器中test2用户,在主界面中选择"账号管理"

31账号管理.png

6.选择新建菜单.

32新建菜单.png

7.选择"其他邮箱"

33其他邮箱.png

8.其他步骤通test1创建时一样.

34test2.png

9.直至完成后如下图.

35完成创建test2.png

10.foxmail主控台已经可以看到有两个邮箱账号.

36两个邮箱均已加入.png

客户端检验收发信件

1.test1发送测试邮件至test2@i63.com

37test1发件.png

2.在test2用户收取邮件

38test2收取邮件.png

3.查看是否收到test1用户发送的邮件.

39已收到test1发送的测试邮件.png

4.test2用户中,将刚才收到的test2用户发来的邮件回复给test1用户.

40回复test1.png

5.查看是否收到test2用户回复的邮件.

41test1收到回复.png

总结

至此,所有配置和检验过程均已完成,自己做实验整理笔记也花了不少时间,希望对大家有帮助.有不清楚的地方欢迎在评论区留言,也可以添加我QQ咨询.

本文地址:https://www.mainblog.cn/214.html
版权声明:本文为原创文章,版权归 阁主 所有,欢迎分享本文,转载请保留出处!
免责申明:有些内容源于网络,没能联系到作者。如侵犯到你的权益请告知,我们会尽快删除相关内容。

评论已关闭!