Sendmail协议加密以及身份验证
在Internet设计之处,设计人员并没有对信息安全方面做过多的考虑,只是为了能够实现其功能,所以一些协议都没有安全性。在邮件服务器中,用来发送的协议SMTP和接收协议POP3、IMAP4都是明文传输,这样对于用户来说是不安全的。如果重新设计这些协议的话,投入的成本过大,所以选择一些折中的办法,在应用层和传输层之间在添加一些安全的协议。如:SSL或TLS,就形成了smtps、starttls、pop3s、imaps。关于区域用户以及区域间用户之间的邮件发送请参考本人的相关博客,这里主要说的是对邮件协议的加密以及用户认证。
一、邮件协议加密
如果只是使用smtp和pop3、imap4来进行邮件之间的传输,那么信息很容易被别人窃取。
在发送时对信息进行加密:
步骤:
1、制作CA证书
2、利用CA给sendmail签发证书
3、sendmail和证书进行捆绑
4、在客户邮件发送软件Outlook上进行发送加密开启
我们都知道rpm包安装比源码安装要方便很多,其实rpm是通过源码进行重新编译的。在做信息加密时,要确保你的软件包编译时支持加密这个功能,否则是不能进行加密的。在sendmail中,使用命令:“sendmail -d0.1 -bv”来查看sendmail在编译时的参数。使用SSL和smtp,pop3、imap4结合来实现加密。
创建证书。为sendmail签发证书:
和发送协议进行捆绑:
编辑sendmail配置文件:vim /etc/mail/sendmail.mc
第一个是要指明:CA的证书存放路径
第二个是要指明:CA证书的路径
第三个是要指明:sendmail的证书路径
第四个是要指明:sendmail的私钥路径
然后进行重启sendmail服务:service sendmail restart
以上是在发送协议上进行了加密,在客户端邮件发送软件上要设置为发送加密才能对发送邮件进行加密,如果不设置加密,同样可以抓取一些信息。
在客户端邮件发送软件Outlook上设置发送邮件加密。
这个警告信息是由于你为安装CA的证书导致计算机不信任CA所签发的证书。
在接口上抓取信息:tshark -ni eth0 -R “tcp.porteq 25”
在接受时对信息进行加密:
步骤和发送时加密大致相同,由于在同一台服务器中,所以不用再为CA创建证书。接受服务为dovecot。对证书和dovecot进行捆绑
如果要关闭接收时使用的明文传输协议,这么做
然后进行重启dovecot服务:service dovecot restart
在客户端进行接收邮件时,要使用pop3s来进行接收。
在sina.com区域中使用testuser3给163.com区域内的用户testuser1,发送一份邮件,并在163.com区域内的邮件服务器中抓取信息。
tshark -ni eth0 -R “tcp.port eq 995”当testuser1接收邮件时,会提示一些信息。
这样在接收时保证了帐号的安全。
二、身份验证
默认情况下邮件服务器是不对用户进行身份验证的。
用这个不存在的用户发送邮件。
在邮件服务中可以使用saslatuthd服务来进行邮件用户的认证,这个服务的软件包是cyrus-sasl,系统默认安装。
默认saslauthd服务在任何级别都不会开启,所以需要手动开启该服务。
编辑sendmail的配置文件:vim /etc/mail/sendmail.mc 开启身份验证
ehlo是扩展的hlo协议,是客户端与邮件服务器之间的一种协议,它可以看到邮件服务器的扩展参数
在使用不存在的用户aaa发送邮件是就会报错。
默认情况下,即使是合法帐号如果不做任何设置的话,也不会通过。