SMTP邮件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每小时执行此操作一次)
  • 拒绝:在首次提交期间,电子邮件被电子邮件服务器拒绝
  • 退回:远程服务器接受电子邮件以进行发送以后,又将该电子邮件退回给始发电子邮件服务器和用户

环境配置

重置两台虚拟机
对desktop
vim /etc/sysconfig/network-scripts/ifcfg-eth0 ##网络配置
BOOTPROTO=none
IPADDR=172.25.254.133
PREFIX=24
systemctl restart network ##重启网络
SMTP邮件postfix_第1张图片
vim /etc/yum.repos.d/… ##编辑yum源
yum clean all ##清除yum缓存
hostnamectl set-hostname westos-mail.westos.com

dns解析
yum install bind -y
systemctl start named
vim /etc/named.conf
11 // listen-on port 53 { 127.0.0.1; };
12 // listen-on-v6 port 53 { ::1; };
17 // allow-query { localhost; };
32 dnssec-validation no;
SMTP邮件postfix_第2张图片

SMTP邮件postfix_第3张图片

vim /etc/named.rfc1912.zones
SMTP邮件postfix_第4张图片
vim /var/named/westos.com.zone
SMTP邮件postfix_第5张图片
vim /var/named/qq.com.zone
SMTP邮件postfix_第6张图片
systemctl restart named
vim /etc/resolv.conf
nameserver 172.25.254.141

对server
vim /etc/sysconfig/network-scripts/ifcfg-eth0 ##网络配置
vim /etc/yum.repos.d/…
yum clean all
hostnamectl set-hostname qq-mail.qq.com
vim /etc/resolv.conf
nameserver 172.25.254.133

dig -t mx qq.com
SMTP邮件postfix_第7张图片

dig -t mx westos.com
SMTP邮件postfix_第8张图片

postfix

什么是postfix

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

  • Postfix的主配置文件是/etc/postfix/main.cf,可以使用文本编辑器或postconf命令进行编辑。postconf命令还可用于确定Postfix的所有当前和默认配置设置或逐项确定这些设置。

  • 默认情况下,Postfix仅侦听来自本地主机的传入电子邮件。若要重新配置postfix以接收从远程主机发送的本地邮件,必须在/etc/postfix/main.cf中设置inet_interfaces = all

  • 对电子邮件进行故障排除时,将在/var/log/maillog中保留所有与邮件相关的操作日志,其中包括关于被事件和成功事件的信息。mailq命令(或postqueue -p)显示已排队的所有传出邮件的列表。若要尝试再次立即发送所有已排队的邮件,可以运行postfix flush命令(或postqueue -f);否则,postfix将大
    约每小时尝试重新发送一次,直至邮件被接受或过期。

1.

postfix提供smtp协议用来投递邮件
默认端口25
/var/log/maillog ##mail日志存放点
发送邮件
mail [email protected]
Subject: www
sadad
afdad
. ##.表示邮件结束
EOT

mailq ##查看邮件队列
postqueue -f ##重发邮件队列
postsuper -d ##清除邮件队列
postconf -d ##显示默认值
postconf -n ##显示不同于默认值的更改
默认情况下邮件端口只在127.0.0.1上开启

2.主要配置(收发端都配置)

(1)
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, westos.com ##接受邮件结尾字符(即@westos-mail.westos.com @westos.com root)
SMTP邮件postfix_第9张图片

这里写图片描述

这里写图片描述

SMTP邮件postfix_第10张图片
systemctl stop firewalld ##关闭火墙
systemctl restart postfix.service ##重启服务
这里写图片描述
(2)测试:
——发端——
mail 发送邮件
SMTP邮件postfix_第11张图片
——收端——
mail 查看邮件
SMTP邮件postfix_第12张图片

3.邮件别名

(1)
在收端编辑:
[root@qq-mail ~]# vim /etc/aliases ##编辑文件
别名: 真名
别名: :include:filename ##群发邮件(filename可以为/etc/postfix/moreuser)
这里写图片描述
[root@qq-mail ~]# vim filename ##编辑更多user文件
user1
user2
这里写图片描述
[root@westos-mail ~]# postalias /etc/aliases
SMTP邮件postfix_第13张图片
(2)测试:
————发端————
mail 别名@qq.com
SMTP邮件postfix_第14张图片
————收端————
mail查看邮件
X-Original-To: [email protected]
Delivered-To: [email protected] ##由此看出邮件别名
SMTP邮件postfix_第15张图片
X-Original-To: [email protected]
Delivered-To: [email protected] ##由此看出这是群发邮件
SMTP邮件postfix_第16张图片

mail -u username ##查看指定用户的邮件
X-Original-To: [email protected]
Delivered-To: [email protected] ##群发邮件
SMTP邮件postfix_第17张图片

4.通过远程主机发送邮件

(1)
远程主机(这里使用真机)
yum install telnet -y ##下载telnet
[root@foundation60 ~]# telnet 172.25.254.141 25 ##远程通过172.25.254.133的25端口
Trying 172.25.254.133…
Connected to 172.25.254.133.
Escape character is ‘^]’.
220 westos-mail.westos.com ESMTP Postfix
ehlo hello ##**
mail from:[email protected] ##邮件发送端
rcpt to:[email protected] ##邮件接受端
data ##邮件内容
354 End data with .
123 ##由此键入
. ##结束点
250 2.0.0 Ok: queued as 13873246204
quit ##退出
SMTP邮件postfix_第18张图片
(2)测试:
接受端:
mail 查看邮件
SMTP邮件postfix_第19张图片

5.邮件访问控制

(1)
在mta上
发送端:
[root@westos-mail ~]# postconf -e “smtpd_client_restrictions = check_client_access hash:/etc/postfix/access ##**
[root@westos-mail ~]# tail -n 1 /etc/postfix/main.cf ##查看主配置文件的最后一行会发现参数已经添加
这里写图片描述
smtpd_client_restrictions = check_client_access hash:/etc/postfix/access
[root@westos-mail ~]# vim /etc/postfix/access ##编辑加密文件
476 172.25.254.60 REJECT ##最后一行添加要拒绝的主机
这里写图片描述
[root@westos-mail ~]# postmap /etc/postfix/access ##加密文件
[root@westos-mail ~]# ls /etc/postfix/ ##.db为真实的加密文件
access canonical header_checks master.cf relocated virtual
access.db generic main.cf moreuser transport
[root@westos-mail ~]# systemctl restart postfix.service ##重启服务
SMTP邮件postfix_第20张图片
(2)测试:
远程主机:
[root@foundation60 ~]# telnet 172.25.254.133 25
Trying 172.25.254.133…
Connected to 172.25.254.133.
Escape character is ‘^]’.
220 westos-mail.westos.com ESMTP Postfix
mail from:[email protected]
250 2.1.0 Ok
rcpt to:[email protected]
554 5.7.1 < unknown[172.25.254.41]>: Client host rejected: Access denied ##发送邮件时发现被拒绝
quit
221 2.0.0 Bye
Connection closed by foreign host.
SMTP邮件postfix_第21张图片

6.限制用户发送

(1)
首先清除上次实验的控制
[root@westos-mail ~]# vim /etc/postfix/main.cf ##注释掉邮件访问控制语句
#smtpd_client_restrictions = check_client_access hash:/etc/postfix/access
这里写图片描述
[root@westos-mail ~]# systemctl restart postfix.service ##重启服务
(2)
然后再开始实验
在mta上:
[root@westos-mail ~]# postconf -e “smtpd_sender_restrictions = check_sender_access hash:/etc/postfix/sender” ##限制用户发送邮件,使用哈希在/etc/postfix/sender加密
[root@westos-mail ~]# tail -n 1 /etc/postfix/main.cf ##查看主配置文件发现参数已经添加
smtpd_sender_restrictions = check_sender_access hash:/etc/postfix/sender
这里写图片描述
[root@westos-mail ~]# vim /etc/postfix/sender ##编辑加密文件,写入要加密的用户
[email protected] REJECT
[root@westos-mail ~]# postmap /etc/postfix/sender ##对加密文件进行加密
[root@westos-mail ~]# ls /etc/postfix/ ##sender.db即生成的加密文件
access canonical header_checks master.cf relocated sender.db virtual
generic main.cf moreuser sender transport
[root@westos-mail ~]# systemctl restart postfix.service ##重启服务
SMTP邮件postfix_第22张图片
(3)测试:
[root@foundation60 Desktop]# telnet 172.25.254.133 25
mail from:[email protected]
rcpt to:[email protected]
554 5.7.1 < [email protected]>: Sender address rejected: Access denied ##发送被限制
SMTP邮件postfix_第23张图片

7.限制用户接收

(1)
在mta上:
[root@westos-mail ~]# postconf -e “smtpd_recipient_restrictions = check_recipient_access hash:/etc/postfix/recip” ##限制用户接受文件,使用哈希加密在/etc/postfix/recip加密
[root@westos-mail ~]# vim /etc/postfix/recip ##编辑加密文件,写入加密用户
[email protected] REJECT
这里写图片描述
[root@westos-mail ~]# postmap /etc/postfix/recip ##对加密文件进行加密,生成.db文件
[root@westos-mail ~]# ls /etc/postfix/
access generic main.cf moreuser recip.db sender transport
canonical header_checks master.cf recip relocated sender.db virtual
[root@westos-mail ~]# systemctl restart postfix.service ##重启服务
##PS如果没有westos用户则先创建一个再配置
SMTP邮件postfix_第24张图片
(2)测试:
[root@foundation60 Desktop]# telnet 172.25.254.133 25
mail from:[email protected] ##发送者
rcpt to:[email protected] ##接收者
250 2.0.0 Ok: queued as 06562EAC27 ##由此看出[email protected]可以发送邮件
mail from:[email protected]
250 2.1.0 Ok
rcpt to:[email protected]
554 5.7.1 < [email protected]>: Recipient address rejected: Access denied ##由此看出不能接受邮件
quit
221 2.0.0 Bye
Connection closed by foreign host.
SMTP邮件postfix_第25张图片

SMTP邮件postfix_第26张图片

企业邮箱

企业邮箱(Enterprise Mailbox)是指以您的域名作为后缀的电子邮件地址。通常一个企业经常有多个员工要使用电子邮件,企业电子邮局可以让集团邮局管理员任意开设不同名字的邮箱,并根据不同的需求设定邮箱的空间,而且可以随时关闭或者删除这些邮箱。
1. 按照企业自有域名开通的邮箱:name@企业域名。
2. 可自行管理、自由分配、命名的邮箱。
功能更多,空间容量更大,大大提高企业邮箱的稳定高效性,反垃圾反病毒性能更强,邮件收发速度更快。 企业邮箱是以企业自己的域名为后缀的信箱,例如:name@企业域名。 拥有企业邮箱可以为自己的员工设置电子邮箱,还可以根据需要设置不同的管理权限,以及部门成员之间或者公司全体员工之间的群发功能等等,除了一般的终端邮件程序方式(如outlook)收发E-mail之外,还可以实现WEB方式收发和管理邮件,比一般ISP提供的电子邮箱和虚拟主机提供的信箱更为方便。

出站地址伪装和入站地址转换构成了企业邮箱功能

8.出站地址伪装

(1)
[root@westos-mail ~]# postconf -e “smtp_generic_maps = hash:/etc/postfix/generic” ##出站地址伪装
[root@westos-mail ~]# vim /etc/postfix/generic ##编辑地址伪装文件
真实名称 伪装名称
[email protected] [email protected]
这里写图片描述
[root@westos-mail ~]# postmap /etc/postfix/generic ##进行加密
[root@westos-mail ~]# systemctl restart postfix.service ##重启服务
这里写图片描述
(2)测试:
发送端:
[root@westos-mail ~]# su - westos
[westos@westos-mail ~]$ mail [email protected]
SMTP邮件postfix_第27张图片
接受端:
[root@qq-mail ~]# mail
>N 1 [email protected] Wed May 24 17:48 21/718 “hello” ##由此看出发件人被伪装
SMTP邮件postfix_第28张图片

9.入站地址转换

(1)
[root@westos-mail ~]# vim /etc/postfix/main.cf ##编辑主配置文件,注释westos用户不能收件的功能
#smtpd_recipient_restrictions = check_recipient_access hash:/etc/postfix/recip
这里写图片描述
[root@westos-mail ~]# systemctl restart postfix.service
(2)DNS解析
[root@westos-mail ~]# vim /etc/named.rfc1912.zones
zone “gmail.com” IN {
type master;
file “gmail.com.zone”;
allow-update { none; };
};
SMTP邮件postfix_第29张图片
[root@westos-mail ~]# cp -p /var/named/westos.com.zone /var/named/gmail.com.zone
[root@westos-mail ~]# vim /var/named/gmail.com.zone
把westos换成gmail
SMTP邮件postfix_第30张图片
[root@westos-mail ~]# systemctl restart named
SMTP邮件postfix_第31张图片
dig -t mx gmail.com
SMTP邮件postfix_第32张图片
(3)转换地址
[root@westos-mail ~]# postconf -e “virtual_alias_maps = hash:/etc/postfix/virtual” ##入站地址转换
[root@westos-mail ~]# vim /etc/postfix/virtual ##编辑虚拟地址转换文件在最后一行添加
虚拟名称 真实名称
[email protected] [email protected]
这里写图片描述
[root@westos-mail ~]# postmap /etc/postfix/virtual ##进行加密
[root@westos-mail ~]# systemctl restart postfix.service ##重启服务
这里写图片描述
(4)测试
[root@qq-mail ~]# mail [email protected] ##[email protected]回复邮件
SMTP邮件postfix_第33张图片
[root@westos-mail ~]# mail -u westos
Heirloom Mail version 12.5 7/5/10. Type ? for help.
“/var/mail/westos”: 1 message
>N 1 root Wed May 24 06:00 21/714 “123”
&
Message 1:
From [email protected] Wed May 24 06:00:39 2017
Return-Path: < [email protected]>
X-Original-To: [email protected] ##虚拟名称
Delivered-To: [email protected] ##转换成了真实名称
SMTP邮件postfix_第34张图片
出站地址伪装和入站地址转换构成了企业邮箱功能

空壳邮件

1.配置

————————空壳主机—————————

重置qq.com主机
配置IP 及主机名nullmail.example.com

[root@nullmail ~]# vim /etc/postfix/main.cf
75 myhostname = nullmail.example.com ##主机名
83 mydomain = example.com ##主机域名
99 myorigin = westos.com ##@的后缀必须与接收主机域名一致,或者也可以为空壳邮箱的域名,但如果为空壳邮箱的域名,则在接受端一定要加上可以接受空壳邮箱域名的邮件
113 inet_interfaces = all ##25端口开启的网络接口
164 mydestination = ##因为是空壳邮件,所以不接收任何邮件
316 relayhost = 172.25.254.133 ##转发邮件地
SMTP邮件postfix_第35张图片

SMTP邮件postfix_第36张图片

这里写图片描述

SMTP邮件postfix_第37张图片
[root@nullmail ~]# systemctl restart postfix.service ##重启服务
这里写图片描述
————————接受主机————————
westos-mail.westos.com

2.测试

[root@nullmail ~]# mail [email protected]
[root@nullmail ~]# mailq
SMTP邮件postfix_第38张图片

[root@westos-mail ~]# mail
Heirloom Mail version 12.5 7/5/10. Type ? for help.
“/var/spool/mail/root”: 2 messages 1 new
1 root Wed May 31 09:23 23/761 “123”
>N 2 root Wed May 31 09:31 21/741 “d”
& 2
Message 2:
From [email protected] Wed May 31 09:31:15 2017
Return-Path: < [email protected]>
X-Original-To: [email protected] ##空壳
Delivered-To: [email protected] ##空壳
Date: Sat, 27 May 2017 23:48:01 -0400
To: [email protected]
Subject: d
User-Agent: Heirloom mailx 12.5 7/5/10
Content-Type: text/plain; charset=us-ascii
From: [email protected] (root)
Status: R

da

& q
SMTP邮件postfix_第39张图片

你可能感兴趣的:(linux新手学习,third)