Sendmail协议加密以及身份验证

在Internet设计之处,设计人员并没有对信息安全方面做过多的考虑,只是为了能够实现其功能,所以一些协议都没有安全性。在邮件服务器中,用来发送的协议SMTP和接收协议POP3、IMAP4都是明文传输,这样对于用户来说是不安全的。如果重新设计这些协议的话,投入的成本过大,所以选择一些折中的办法,在应用层和传输层之间在添加一些安全的协议。如:SSL或TLS,就形成了smtps、starttls、pop3s、imaps。

Sendmail和Dovecot实现伊妹儿服务(三)_第1张图片

关于区域用户以及区域间用户之间的邮件发送请参考本人的相关博客,这里主要说的是对邮件协议的加密以及用户认证。

一、邮件协议加密

如果只是使用smtp和pop3、imap4来进行邮件之间的传输,那么信息很容易被别人窃取。

Sendmail和Dovecot实现伊妹儿服务(三)_第2张图片

在发送时对信息进行加密:

步骤:

1、制作CA证书

2、利用CA给sendmail签发证书

3、sendmail和证书进行捆绑

4、在客户邮件发送软件Outlook上进行发送加密开启

我们都知道rpm包安装比源码安装要方便很多,其实rpm是通过源码进行重新编译的。在做信息加密时,要确保你的软件包编译时支持加密这个功能,否则是不能进行加密的。在sendmail中,使用命令:“sendmail -d0.1 -bv”来查看sendmail在编译时的参数。

Sendmail和Dovecot实现伊妹儿服务(三)_第3张图片

使用SSL和smtp,pop3、imap4结合来实现加密。

创建证书。

Sendmail和Dovecot实现伊妹儿服务(三)_第4张图片

Sendmail和Dovecot实现伊妹儿服务(三)_第5张图片

Sendmail和Dovecot实现伊妹儿服务(三)_第6张图片

Sendmail和Dovecot实现伊妹儿服务(三)_第7张图片

Sendmail和Dovecot实现伊妹儿服务(三)_第8张图片

为sendmail签发证书:

Sendmail和Dovecot实现伊妹儿服务(三)_第9张图片

Sendmail和Dovecot实现伊妹儿服务(三)_第10张图片

184947218.jpg

Sendmail和Dovecot实现伊妹儿服务(三)_第11张图片

Sendmail和Dovecot实现伊妹儿服务(三)_第12张图片

和发送协议进行捆绑:

编辑sendmail配置文件:vim /etc/mail/sendmail.mc

185425713.jpg

第一个是要指明:CA的证书存放路径

第二个是要指明:CA证书的路径

第三个是要指明:sendmail的证书路径

第四个是要指明:sendmail的私钥路径

Sendmail和Dovecot实现伊妹儿服务(三)_第13张图片

然后进行重启sendmail服务:service sendmail restart

185543333.jpg

Sendmail和Dovecot实现伊妹儿服务(三)_第14张图片

以上是在发送协议上进行了加密,在客户端邮件发送软件上要设置为发送加密才能对发送邮件进行加密,如果不设置加密,同样可以抓取一些信息。

Sendmail和Dovecot实现伊妹儿服务(三)_第15张图片

在客户端邮件发送软件Outlook上设置发送邮件加密。

Sendmail和Dovecot实现伊妹儿服务(三)_第16张图片

这个警告信息是由于你为安装CA的证书导致计算机不信任CA所签发的证书。

Sendmail和Dovecot实现伊妹儿服务(三)_第17张图片

在接口上抓取信息:tshark -ni eth0 -R “tcp.porteq 25”

Sendmail和Dovecot实现伊妹儿服务(三)_第18张图片

在接受时对信息进行加密:

步骤和发送时加密大致相同,由于在同一台服务器中,所以不用再为CA创建证书。接受服务为dovecot。

Sendmail和Dovecot实现伊妹儿服务(三)_第19张图片Sendmail和Dovecot实现伊妹儿服务(三)_第20张图片

190042680.jpg

Sendmail和Dovecot实现伊妹儿服务(三)_第21张图片

Sendmail和Dovecot实现伊妹儿服务(三)_第22张图片

对证书和dovecot进行捆绑

Sendmail和Dovecot实现伊妹儿服务(三)_第23张图片

如果要关闭接收时使用的明文传输协议,这么做

190310321.jpg

然后进行重启dovecot服务:service dovecot restart

在客户端进行接收邮件时,要使用pop3s来进行接收。

Sendmail和Dovecot实现伊妹儿服务(三)_第24张图片

在sina.com区域中使用testuser3给163.com区域内的用户testuser1,发送一份邮件,并在163.com区域内的邮件服务器中抓取信息。

tshark -ni eth0 -R “tcp.port eq 995”

Sendmail和Dovecot实现伊妹儿服务(三)_第25张图片

testuser1接收邮件时,会提示一些信息。

Sendmail和Dovecot实现伊妹儿服务(三)_第26张图片

这样在接收时保证了帐号的安全。

Sendmail和Dovecot实现伊妹儿服务(三)_第27张图片

二、身份验证

默认情况下邮件服务器是不对用户进行身份验证的。

Sendmail和Dovecot实现伊妹儿服务(三)_第28张图片

Sendmail和Dovecot实现伊妹儿服务(三)_第29张图片

Sendmail和Dovecot实现伊妹儿服务(三)_第30张图片

Sendmail和Dovecot实现伊妹儿服务(三)_第31张图片

Sendmail和Dovecot实现伊妹儿服务(三)_第32张图片

用这个不存在的用户发送邮件。

Sendmail和Dovecot实现伊妹儿服务(三)_第33张图片Sendmail和Dovecot实现伊妹儿服务(三)_第34张图片

在邮件服务中可以使用saslatuthd服务来进行邮件用户的认证,这个服务的软件包是cyrus-sasl,系统默认安装。

190902733.jpg

Sendmail和Dovecot实现伊妹儿服务(三)_第35张图片

默认saslauthd服务在任何级别都不会开启,所以需要手动开启该服务。

191008365.jpg

编辑sendmail的配置文件:vim /etc/mail/sendmail.mc 开启身份验证

Sendmail和Dovecot实现伊妹儿服务(三)_第36张图片

Sendmail和Dovecot实现伊妹儿服务(三)_第37张图片

Sendmail和Dovecot实现伊妹儿服务(三)_第38张图片

ehlo是扩展的hlo协议,是客户端与邮件服务器之间的一种协议,它可以看到邮件服务器的扩展参数

Sendmail和Dovecot实现伊妹儿服务(三)_第39张图片

在使用不存在的用户aaa发送邮件是就会报错。

Sendmail和Dovecot实现伊妹儿服务(三)_第40张图片

默认情况下,即使是合法帐号如果不做任何设置的话,也不会通过。

Sendmail和Dovecot实现伊妹儿服务(三)_第41张图片