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服务器
3. 修改hostname为mail.163.com
4. 修改/etc/sysconfig/network中的hostname项
5. 修改/etc/resovel 中的dns服务器指向
6. 打开outlook 创建用户向邮件服务器发送邮件。
安装wireshark,进行抓包
tshark –ni eth0 –R “tcp.porteq 25”在etho 的25端口抓包。
发送时虽然抓不到密码,但是可以抓到账户信息
为了保证安全,结合本地CA服务器实现smtp协议加密
1.创建本地CA中心
首先编辑/etc/pki/tls/openssl.cnf
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')
创建一封邮件并发送,抓包,发现是被加密的。
接收邮件过程加密
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
[root@mail~]# tshark -ni eth0 -R "tcp.port eq995" 在加密端口 pop3s上抓包
通过传输层安全给数据加密,保护了邮件的安全性。
转载于:https://blog.51cto.com/6839976/1322388