Sendmail协议加密以及身份验证

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

184052881.jpg

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

一、邮件协议加密

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

184338932.jpg

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

步骤:

1、制作CA证书

2、利用CA给sendmail签发证书

3、sendmail和证书进行捆绑

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

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

184427528.jpg

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

创建证书。

184508361.jpg

184517647.jpg

184601361.jpg

184609783.jpg

184624383.jpg

为sendmail签发证书:

184744338.jpg

184800912.jpg

184947218.jpg

185013942.jpg

185332523.jpg

和发送协议进行捆绑:

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

185425713.jpg

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

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

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

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

185514400.jpg

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

185543333.jpg

185557827.jpg

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

185659204.jpg

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

185820597.jpg

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

185822377.jpg

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

185841797.jpg

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

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

185952277.jpg190019209.jpg

190042680.jpg

190109766.jpg

190112653.jpg

对证书和dovecot进行捆绑

190247734.jpg

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

190310321.jpg

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

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

190348189.jpg

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

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

190443402.jpg

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

190535349.jpg

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

190602970.jpg

二、身份验证

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

190708109.jpg

190709935.jpg

190710482.jpg

190711345.jpg

190712498.jpg

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

190748992.jpg190826351.jpg

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

190902733.jpg

190916514.jpg

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

191008365.jpg

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

191047187.jpg

191249840.jpg

191306816.jpg

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

191402980.jpg

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

191441214.jpg

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

191511861.jpg