Linux运维笔记----SMTP配置

SMTP配置

- SMPT(Simple Mail Transfer Protocol)即,简单邮件传输协议,它是一组由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMPT协议属于TCP/IP协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。通过SMPT协议所指定的服务器就可以把Email寄到收件人的服务器上。
- 它使用由TCP提供的可靠的数据传输服务把邮件消息从发信人的邮件服务器传送到收件人的邮件服务器。跟  大多数应用层协议一样,SMPT也存在两个端,在发信人的邮件服务器上执行的客户端和在收信人的邮件服务器上执行的服务器端。SMTP的客户端和服务器端同时在向其他邮件服务器发送邮件消息时,它时作为SMPT客户在运行。

1.基本电子邮件发送原理

服务器使用SMTP协议将电子邮件提交至TCP端口25,或由本地客户端通过/usr/bin/sendmail程序进行提交。如果该MTA(电子邮件服务器)是最终目标位置,邮件将传递至MDA(邮件发送代理),MDA将邮件发送至收件人的本地邮件存储位置(默认情况下是/var/spool/mail/user),Postfix提供自己的MDA,以发送至基于文件的本地默认邮件存储位置/usr/libexec/postfix/local.。否则,将使用MX记录在DNS中查找下一个MTA,并使用SMTP进行转发。

发送邮件的几个动作:

  • 转发:电子邮件服务器(MTA)将提交的邮件转发至另一个服务器,以进行发送。
  • 排队:失败的发送或转发尝试排队等待,并由MTA定义重试。(默认情况下,Postfix每小时执行此操作一次)。
  • 拒绝:在首次提交期间,电子邮件被电子邮件服务器拒绝。
  • 退回:远程服务器接受电子邮件以进行发送以后,又将该电子邮件退回给始发电子邮件服务器或用户,或者电子邮件以进行发送以后,又将该电子邮件退回给始发电子邮件服务器和/或用户。

2.postfix

Postfix时GPL协议下开发的MTA(邮件传输代理)软件。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将大约每小时尝试重新发送一次,直至邮件被接受或过期。

2.1实验准备

两台虚拟机
一个域名为qq.com IP:172.25.14.22 提供DNS服务
Linux运维笔记----SMTP配置_第1张图片
一个域名为sina.com IP:172.25.14.11 修改nameserver
Linux运维笔记----SMTP配置_第2张图片

2.2配置发送邮件服务

<1>编辑配置文件(两台都配置)
这里写图片描述 75行:配置主机名称。
这里写图片描述83行:配置域名。
这里写图片描述 99行:重写本地发布的电子邮件,使其显示为来自该域。这样有助于确保响应返回入站邮件服务器。
这里写图片描述113行:控制Postfix侦听传入电子邮件的网络接口。设置为all,则侦听所有网络接口。
这里写图片描述116行:注释改行。
这里写图片描述164行:
配置接受来自这些域的邮件将传递至MDA,以进行本地发送。
配置完成后重启服务systemctl restart postfix.server
<2>配置防火墙
Linux运维笔记----SMTP配置_第3张图片
<3>用mailqq给mailsina发邮件测试
邮件队列为空,邮件箱为空,说明发送成功,没有被退回。
然后到mailsina主机查看邮件
Linux运维笔记----SMTP配置_第4张图片

Linux运维笔记----SMTP配置_第5张图片

2.3远程登陆服务发送邮件

一般情况下,我们发送邮件需要从客户端登陆到邮件服务器然后进行操作。所以,我们就来使用远程登陆服务发送邮件。
Telnet协议能提供本地计算机完成远程主机工作的能力,它时TCP/IP族的一员,时Internet远程登陆服务的标准协议和主要方式。在终端使用者的电脑上使用Telnet程序,用它连接到服务器。终端使用者可以在Telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样,可以本地就能控制服务器。Telnet是常用的远程控制Web服务器的方法。
这里写图片描述
在其他终端远程登陆到mailqq服务器postfix默认25端口
给mailsina发送邮件。
mail from是发送端,rcpt to是接收端,data是邮件内容,quit退出
这里写图片描述
在mailsina主机就可收到邮件
Linux运维笔记----SMTP配置_第6张图片

<2.3.1>Telnet限制client

在mailqq服务器上设置禁止登陆
这里写图片描述
Postconf -e相当于编辑/etc/postfix/main.cf,在这个文件的末尾可以看见添加的命令
这里写图片描述
编辑刚才的access文件,文件末尾添加限制客户端登陆的IP
这里写图片描述
然后加密该文件,postmap /etc/postfix/access
加密完成后会生成access.db文件。
再次远程登陆发送邮件则会被拒绝。
Linux运维笔记----SMTP配置_第7张图片
如果要删除这个限制,只要删除调access文件里的语句,然后postmap access就可以了,或者直接更改mail.cf文件。下同

<2.3.1>Telnet限制sender

过程与限制client基本相同,先编辑主配置文件
这里写图片描述
修改sender文件,添加要限制的送信人
这里写图片描述
postmap sender 生成加密文件后就可可以测试
Linux运维笔记----SMTP配置_第8张图片
Sender被拒绝。mailqq不能发送邮件,但是可以收件。
Linux运维笔记----SMTP配置_第9张图片
在mailqq主机检查受到的邮件
Linux运维笔记----SMTP配置_第10张图片

<2.3.3>Telnet限制recipient

这里写图片描述
vim /etc/postfix/dest
postmap dest
systemctl restart postfix.server
测试方法和前两个相同。

3.空壳邮件客户端

实际上,大多数组织不再只用一个邮件服务器来处理所有入站和出战电子邮件。相反,出于安全方面的考虑邮件服务器专门针对特定角色进行了设置,以便可以面向其具体针对的应用程序更好标准角色包括:
  • null客户端:运行本地MTA的客户端计算机,使所有电子邮件都可以转发至中央邮件服务器以进行发送,null客户端不接受任何电子邮件的本地发送。
  • 仅入站邮件服务器:在站点处理用户的所有传入电子邮件,并将之传递给MDA以发送至用户邮件存储位置的邮件服务器。在实际情况中,通常会在仅入站邮件服务器前端安装反垃圾邮件服务器或设备,以过滤垃圾邮件并且仅将 正常邮件转发至入站邮件服务器。
  • 出站邮件转发:出站邮件转发(或“smarthost”)接收所有出站邮件,并使用MX记录和SMTP协议将邮件转发至目标位置 。

将mailsina作为仅入站邮件服务器叫mailserver,把mailqq作为null客户端。
配置mailserver:/etc/postfix/main.cf
这里写图片描述转发自(null客户端是该网段)
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
重启postfix服务。systemctl restart postfix.server
配置null客户端:/etc/postfix/main.cf
这里写图片描述
间接发送至mailserver服务器
这里写图片描述null客户端不接收邮件
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
重启postfix服务。systemctl restart postfix.server
在空壳服务器给qq.com发送邮件,在mailserver就会收到
Linux运维笔记----SMTP配置_第11张图片

Linux运维笔记----SMTP配置_第12张图片

4.邮件接收服务器

Dovecot是一个开源的IMAP和POP3邮件服务器,支持Linux/Unix系统。POP/IMAP是MUA(邮件用户代理)从邮件服务器中下载邮件存起来,IMAP4则是将邮件留在服务器端直接对邮件进行管理操作。
<1>配置邮件接收服务器

这里写图片描述
<2>开启默认端口110/143/993/995
pop: 110无加密—-995加密
imap:143无加密—-993加密
Linux运维笔记----SMTP配置_第13张图片
<3>编辑配置文件/etc/dovecot/dovecot.conf
这里写图片描述开启协议
这里写图片描述 明文传输
/etc/dovecot/conf.d/10-mail.conf
这里写图片描述
<4>查看邮件
先为student用户发送一封邮件
Linux运维笔记----SMTP配置_第14张图片
用mutt在客户端查看邮件,mutt是linux下的一个email程序,类似一个文件管理器的邮件管理工具。
mutt -f pop://[email protected]
登陆进去输入student密码,会报错退出。
去mailserver主机 cat /var/log/maillog 查看报错
这里写图片描述
这里写图片描述
根据报错信息,应该用student身份在/home/student/mail/创建.imap目录,并且在该目录下创建一个INBOX文件。
Linux运维笔记----SMTP配置_第15张图片
然后在用mutt登陆查看邮件,输入密码验证通过后就可以查看到刚才发给student的邮件
Linux运维笔记----SMTP配置_第16张图片

Linux运维笔记----SMTP配置_第17张图片

5.Postfix+mysql配置

在mailserver服务器上安装mariadb,mariadb-server httpd php php-mysql 软件,并开启软件
这里写图片描述
首次登陆更改数据库root密码
这里写图片描述
下载一个phpMyAdmin-3.4.0-all-languages.tar.bz2图形化管理数据库软件到/var/www/html/(httpd服务默认发布目录),解压,配置。
Linux运维笔记----SMTP配置_第18张图片
这里写图片描述
这里写图片描述
配置防火墙
这里写图片描述
然后就可以在浏览器登陆httpd服务,查看数据库
Linux运维笔记----SMTP配置_第19张图片
登陆到数据库,建立email数据库,建立emailuser表,创建四个字段分别为username,password,domain,maildir。
Linux运维笔记----SMTP配置_第20张图片
mysql -uroot -pmysql登陆到数据库,创建postfixuser用户并授权。
Linux运维笔记----SMTP配置_第21张图片
编辑postfix配置文件 ,先创建一个用户一会用来测试结果。
Linux运维笔记----SMTP配置_第22张图片
Linux运维笔记----SMTP配置_第23张图片
Vim /etc/postfix/mysql-alias.cf
这里写图片描述

Vim /etc/postfix/mysql-domains.cf
Linux运维笔记----SMTP配置_第24张图片
Vim /etc/postfix/mysql-mailboxs.cf
Linux运维笔记----SMTP配置_第25张图片
在email数据库emailuser表中插入数据,分别对应 username,password,domain,emaildir
这里写图片描述
用postmap检测我们这些文件配置的是否正确
Linux运维笔记----SMTP配置_第26张图片
因为服务器中数据库已经存在sina.com域,所以就不用DNS解析,因此就可以删除nameserver 172.25.14.22
用mail [email protected]给test用户发邮件
到virtual家目录查看邮件
Linux运维笔记----SMTP配置_第27张图片

Linux运维笔记----SMTP配置_第28张图片
很显然,收件人不能在邮件服务器里查看管理自己的邮件,必须通过一个客户端,远程的接收邮件,上次我们使用的是mutt客户端,接下来使用thunder bird客户端,他们都支持IMAP,POP邮件协议。

6.用thunder bird收邮件

Thunder bird是由Mozilla浏览器的收件功能部件所改造的邮件工具,支持IMAP,POP邮件协议以及HTML邮件格式,支持垃圾邮件过滤、反钓鱼欺诈,高级安全等,可进行个性化配置。
Dovecot(豆腐块)是一个开源的IMAP和POP邮件服务器

在Postfix+mysql基础上,安装 yum install dovecot -y
编辑配置文件/etc/dovecot/dovecot.conf
这里写图片描述开启协议
这里写图片描述 允许所有网络用户登陆
这里写图片描述 明文传输
这里写图片描述支持数据库
新包含的文件中指定了另一个SQL配置文件,可以复制模板
这里写图片描述
复制dovecot-sql.conf.ext模板文件到/etc/dovecot/
编辑dovecot-sql.conf
这里写图片描述.ext
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
编辑/etc/dovecot/conf.d/10-mail.conf 设置邮件存储目录
这里写图片描述
这里写图片描述
安装dovecot-mysql插件,就像看视频安装flash插件一样。
这里写图片描述
在别的主机用telnet软件远程登陆邮件服务器
Linux运维笔记----SMTP配置_第29张图片
这说明dovecot邮件服务器配置完成,接下来就用雷鸟查看邮件
这里写图片描述
安装完成后输入thunderbird命令就可以打开雷鸟软件
Name:[email protected]
Address:[email protected]
Linux运维笔记----SMTP配置_第30张图片
Linux运维笔记----SMTP配置_第31张图片
点Re-test然后点done
Linux运维笔记----SMTP配置_第32张图片
点done
Linux运维笔记----SMTP配置_第33张图片
输入刚才创建用户的密码,就可以看见邮件
Linux运维笔记----SMTP配置_第34张图片
还可以创建一个用户(数据库中存在的),通过雷鸟进行邮件通信。当收到邮件时,会有提示。

你可能感兴趣的:(linux运维)