Mail协议加密

邮件在发送接收时的协议决定了邮件不可避免的安全问题,解决的方法有两个:

1.协议安全

a)邮件发送协议 smtp 【tcp 25端口】

b)邮件接受协议 pop3 【tcp 110端口 离线方式】 imap4【tcp 143端口】

协议都是明文的,接收邮件阶段抓包可以抓到账号和信息,发送阶段只能抓到信息。

2.身份验证



协议安全也就是进行协议加密:

1. 邮件发送协议smtp+ssl ---》smpts 465端口

邮件接收协议 pop3+ssl pop3s 加密 Imap4+ssl imaps 993端口。

2. starttls 25端口

STARTTLS[1]是对纯文本通信协议的扩展。它提供一种方式将纯文本连接升级为加密连接(TLS或SSL),而不是另外使用一个端口作加密通信。

虽然能被抓包但是抓到的数据包是密文 的。


实验:

实验内容:smtp+ssl 实现smtps


1. 安装sendmail服务

2. 配置DNS服务器,模拟163.com的mail服务器

221736324.png

3. 修改hostname为mail.163.com

4. 修改/etc/sysconfig/network中的hostname项

5. 修改/etc/resovel 中的dns服务器指向

6. 打开outlook 创建用户向邮件服务器发送邮件。

215853728.png

215856572.png


安装wireshark,进行抓包

tshark –ni eth0 –R “tcp.porteq 25”在etho 的25端口抓包。

222311212.png

发送时虽然抓不到密码,但是可以抓到账户信息



为了保证安全,结合本地CA服务器实现smtp协议加密

1.创建本地CA中心

首先编辑/etc/pki/tls/openssl.cnf

215901965.png

2. 创建相关的目录和文件:

创建三个目录 certs crl newcerts

创建两个文件 serial index.txt

并给与 serial初始值 “01”

生成CA服务器的私钥文件 [root@mailCA]# openssl genrsa 1024 > private/cakey.pem

由私钥中生成公钥文件 openssl genrsa 1024>sendmail.cert

3. 配置sendmail的发送端口加密

产生自己的私钥文件 openssl genrsa 1024>sendmail.key

更改私钥的文件权限 chmod 600 sendmail.key

产生自己的请求文件 openssl req -new -keysendmail.key -out sendmail.req

请求文件产生证书 openssl ca -insendmail.req -out sendmail.cert

4. 编辑配置文件,指明证书文件路径

[root@mailcerts]# vim /etc/mail/sendmail.mc

60 define(`confCACERT_PATH', `/etc/pki/CA/')

61 define(`confCACERT', `/etc/pki/CA/cacert.pem')

62 define(`confSERVER_CERT', `/etc/mail/certs/sendmail.cert')

63 define(`confSERVER_KEY', `/etc/mail/certs/sendmail.key')

134 DAEMON_OPTIONS(`Port=smtps, Name=TLSMTA, M=s')



215908754.png

创建一封邮件并发送,抓包,发现是被加密的。

215911910.png

215914998.png

接收邮件过程加密

1.接收邮件用到 imap4 pop3 协议,用到 dovecot服务。为dovecot申请证书

openssl genrsa 1024 > dovecot.key //创建dovecot服务的私钥文件

openssl req -new -key dovecot.key -out dovecot.req //创建dovecot的请求文件,用于向CA请求证书

openssl ca -in dovecot.req -out dovecot.cert //请求ca证书


[root@mailcerts]# chmod 600 dovecot.key //更改私钥文件的权限


[root@mailcerts]# vim /etc/dovecot.conf //在dovecot的配置文件中,应用ssl

91 ssl_cert_file = /etc/certs/dovecot.cert

92 ssl_key_file = /etc/certs/dovecot.key

20 protocols = imaps pop3 pop3s


215916480.png

215919228.png

[root@mail~]# tshark -ni eth0 -R "tcp.port eq995" 在加密端口 pop3s上抓包

215921372.png

通过传输层安全给数据加密,保护了邮件的安全性。