配置电子邮件传输----邮件发送postfix

来源:互联网 发布:淘宝旗袍模特周婷资料 编辑:程序博客网 时间:2024/05/21 09:26
环境配置:重置两台虚拟机
desktop端:
vim /etc/sysconfig/network-scripts/ifcfg-eth0    ####修改主配置文件,添加ip,设置网关,设置静态ip
vim /etc/yum.repos.d/rhel_dvd.repo                    #####修改yum源指向
systemctl restart network                                       ####重启网络服务,配置文件生效
hostnamectl set-hostname westos-mail.westos.com    ####修改主机名

yum install bind -y            ####下载安装DNS服务

systemctl start named    #####服务开启

[root@westos-mail ~]# vim /etc/named.conf           ####修改主配置文件


[root@westos-mail ~]# vim /etc/named.rfc1912.zones     #####编辑区域配置文件


[root@westos-mail ~]# cd /var/named
[root@westos-mail named]# ls
data  dynamic  named.ca  named.empty  named.localhost  named.loopback  
[root@westos-mail named]# cp -p named.localhost  westos.com.zone      ####复制模板配置文件

[root@westos-mail named]# vim  westos.com.zone                ####编写解析文件


[root@westos-mail named]# cp -p   westos.com.zone qq.com.zone ######复制模板配置文件  
[root@westos-mail named]# vim qq.com.zone                    ####编写解析文件    
[root@westos-mail named]# systemctl restart named       ####重启dns服务

[root@westos-mail named]# vim /etc/resolv.conf               #####编写本地解析文件

测试:

[root@westos-mail named]# dig -t mx qq.com

[root@westos-mail named]# dig -t mx westos.com



server端:

vim /etc/sysconfig/network-scripts/ifcfg-eth0    ####修改主配置文件,添加ip,设置网关,设置静态ip
vim /etc/yum.repos.d/rhel_dvd.repo                    #####修改yum源指向
systemctl restart network                                       ####重启网络服务,配置文件生效

hostnamectl set-hostname qq-mail.qq.com     ####修改主机名  

[root@qq-mail ~]# vim /etc/resolv.conf              #####编写本地解析文件

测试:

[root@qq-mail ~]# dig -t mx qq.com

[root@qq-mail ~]# dig -t mx westos.com



                                                                    ---------postfix------

电子邮件发送
---服务器使用SMTP协议将电子邮件提交至TCP端口25,或由本地客户端通过/usr/bin/sendmail程序进行提交。如果该MTA是最终目标位置,邮件将传递至MDA。否
则,将使用MX记录在DNS中查找下一个MTA,并使用SMTP进行转发。

---MDA:“邮件发送代理”。MDA将邮件发送至收件人的本地邮件存储位置(默认情况下是/var/spool/mail/user)。Postfix提供自己的MDA,以发送至基于文件的本地默认邮件存储位置/usr/libexec/postfix/local.

---转发:电子邮件服务器(MTA)将提交的邮件转发至另一个服务器,以进行发送

---排队:失败的发送或转发尝试排队等待,并由MTA定义重试。(默认情况下,Postfix每小时执行此操作一次)

---拒绝:在首次提交期间,电子邮件被电子邮件服务器拒绝

---退回:远程服务器接受电子邮件以进行发送以后,又将该电子邮件退回给始发电子邮件服务器和/或用户

---电子邮件以进行发送以后,又将该电子邮件退回给始发电子邮件服务器和/或用户

1.Postfix:Postfix由postfix RPM包提供,并通过postfix服务脚本控制。它是一个由多个协同操作程序构成的模块化程序,它的组件由master进程控制

---提供smtp协议用来投递邮件

---默认端口25

---/var/log/maillog          #####服务日志


mail root@qq.com    ####邮件发送至qq.com的root用户
Subject:hello
hello
.                             ####用"."来结束录入内容并发送

mailq                   ####查看邮件队列

postqueue -f     ####重新处理邮件队列

postsuper -d id      ##删除邮件


---默认情况下邮件端口只在127.0.0.1 上开启

2.配置(两台主机都做)
vim /etc/postfix/main.cf             ####修改主配置文件
76 myhostname = westos-mail.westos.com        ####指定mta主机名称
83 mydomain = westos.com   ##指定mta的域名
99 myorigin = westos.com      ##指定邮件来源结尾(@后面的字符内容)
116  inet_interfaces = all            ####25端口开启的网络接口
164 mydestination = $myhostname, $mydomain, localhost       ##接收邮件结尾字符的指定

systemctl restart postfix.service        ####重启服务

systemctl stop firewalld                       #####关闭火墙

测试:发送成功,在接收端查看邮件


 
3.邮件别名

vim /etc/aliases                     ####添加别名设置


别名:  真名                             ##邮件别名
postalias   /etc/aliases       ####创建别名数据库,生成.db文件
systemctl restart postfix.service    ####重启服务

测试:mail 别名

邮件接收方查看

vim /etc/aliases                     ####添加别名设置

别名:  :include:filename     ##邮件群发


vim filename                 ####编辑群发名单

 user1
 user2

测试:

接收方查看:



4.通过远程主机测试邮件服务
真机中:
yum install telnet                  ####下载安装telnet
telnet 172.25.254.242 25     #####远程连接主机发送邮件,通过25端口
Trying 172.25.254.100...
Connected to 172.25.254.100.
Escape character is '^]'.
220 westos-mail.westos.com ESMTP Postfix
ehlo hello                              #####查看设备信息,打招呼
250-westos-mail.westos.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
mail from:root@westos.com     #####邮件从root@westos.com发出
250 2.1.0 Ok
rcpt to:root@qq.com                  #####服务端root@qq.com接收邮件
250 2.1.5 Ok
data                                                 ####邮件内容
354 End data with <CR><LF>.<CR><LF>
adsf
asdf
asdf
.
quit


qq.com中mail查看



5.邮件客户端的访问控制
**限制客户端
在mta上   
[root@qq-mail ~]# postconf  -e  "smtpd_client_restrictions = check_client_access hash:/etc/postfix/access"    ####限制主机远程发送,将命令已写入文件/etc/postfix/main.cf中

[root@qq-mail ~]# vim /etc/postfix/main.cf           ####查看命令是否正确


[root@qq-mail ~]# vim /etc/postfix/access           #####写入被禁止主机的ip,拒绝172.25.254.59主机
 
[root@qq-mail ~]# postmap /etc/postfix/access     ####hash加密生成.db文件
[root@qq-mail ~]# cd  /etc/postfix/
[root@qq-mail postfix]# ls                                            ####查看生成access.db文件
access     canonical  header_checks  master.cf  transport
access.db  generic    main.cf        relocated  virtual

[root@qq-mail postfix]# systemctl restart postfix        #####重启服务


测试:

telnet 172.25.254.159 25
mail from:root@westos.com
rcpt to:root@qqcom

显示:554 Client host rejected:Access denied   访问被拒


   
**限制用户发送
[root@qq-mail ~]# systemctl stop firewalld    ####关闭防火墙
[root@qq-mail ~]# systemctl start named       ####开启dns服务
[root@qq-mail ~]# postconf -e "smptd_sender_restrictions = check_sender_access hash:/etc/postfix/sender"   ####限制用户发送邮件,限制用户写入文件进行加密

[root@qq-mail ~]# vim /etc/postfix/sender     ###限制用户写入文件,发送被拒


[root@qq-mail ~]# postmap /etc/postfix/sender   ####文件加密

[root@qq-mail ~]# systemctl restart postfix          ####服务重启


测试:
[kiosk@foundation42 Desktop]$ telnet 172.25.254.159 25    ####远程连接mta主机
mail from: student@westos.com ####由student用户发送
250 2.1.0 Ok
rcpt to:root@westos.com            ####由root用户接收

554 5.7.1 <student@qq.com>: Sender addressrejected: Access denied  ###发送被拒

测试student@westos.com可成功接收:

发送邮件时被拒绝


**限制用户接收
[root@qq-mail ~]# useradd qq            ###添加用户
[root@qq-mail ~]# postconf -e "smptd_recipient_restrictions = check_recipient_access hash:/etc/postfix/recip"   ####限制用户接收邮件,限制用户写入文件进行加密

[root@qq-mail ~]# vim /etc/postfix/recip              ####限制用户写入文件,接收被拒


[root@qq-mail ~]# vim /etc/postfix/main.cf           ####注释掉客户端限制命令


[root@qq-mail ~]# postmap /etc/postfix/recip     ####对文件进行加密,生成.db文件
[root@qq-mail ~]# systemctl restart postfix         ####重启服务
测试:
[kiosk@foundation42 Desktop]$ telnet 172.25.254.159 25   ###远程连接测试
220 qq-mail.qq.com ESMTP Postfix
mail from: root@westos.com             ####由root用户发送
250 2.1.0 Ok
rcpt to: westos@westos.com           ####由westos用户接收

554 5.7.1 <qq@qq.com>: Recipient address rejected: Access denied  ###接收被拒



**出站地址伪装
[root@westos-mail named]# postconf -e "virtual_generic_maps = hash:/etc/postfix/generic"                   ####生成加密文件实现出战地址伪装
[root@westos-mail named]# vim /etc/postfix/generic   ####编写伪装地址

[root@westos-mail named]# postmap /etc/postfix/generic    ####文件加密

[root@westos-mail named]# systemctl restart postfix     ####重启服务


测试:
su - westos                 ###切换到westos用户
mail root@qq.com   ###向root@qq.com发邮件

在qq.com中查看邮件:Deliver to westos@westos.com


**入站地址转换

在mta上做dns mx 记录解析,添加hello.bobo.com的dns解析

[root@westos-mail ~]# vim /etc/named.rfc1912.zones     #####编辑区域配置文件

[root@westos-mail ~]# cd /var/named/
[root@westos-mail named]# ls
[root@westos-mail named]# cp -p qq.com.zone bobo.com.zone    #####复制模板
[root@westos-mail named]# vim  bobo.com.zone

[root@westos-mail named]# systemctl restart named     #####重启dns服务

[root@westos-mail named]# postconf -e "virtual_alias_maps = hash:/etc/postfix/virtual"       ####生成加密文件实现入站地址转换
[root@westos-mail named]# vim /etc/postfix/virtual              ###编写转换地址

[root@westos-mail named]# postmap /etc/postfix/virtual    ###文件加密

[root@westos-mail named]# systemctl restart postfix          ####重启服务


测试:
在qq.com

mail hello@bobo.com


在westos.com
su - westos

mail 查看接收邮件



原创粉丝点击