本篇笔者介绍关于加密的电子邮件,邮件在使用pop3和smtp协议传输的过程中。都是基于明文的传输,如果网络上有人抓包,则可能丢失账号信息,导致邮件内容被盗。本篇笔者
使用CA服务器为邮件发送服务器(sendmail)和邮件接收服务器(dovecot)颁发证书,实现电子邮件的安全传输。这里使用smtps(端口号465)和pop3(端口号995),两外
还有imaps(加密的邮件接收协议,端口号993)
思路:建立用户user1和user2,搭建dns服务器,搭建sendmail和dovecot,发送邮件,然后抓包,查看是否能获得账号和密码;然后搭建CA服务器,并为sendmail和dovecot服务器颁发证书,发送邮件,查看是否能获得账号和密码。
修改主机名:
[root@lyt ~]# vim /etc/sysconfig/network
[root@lyt ~]# vim /etc/hosts
[root@lyt ~]# hostname mail.163.com #使用此命令使刚才修改的主机名生效,这样就不用再重启系统了
[root@lyt ~]# vim /etc/yum.repos.d/rhel-debuginfo.repo #编辑本地yum
[root@lyt ~]# mkdir /mnt/cdrom
[root@lyt ~]# mount /dev/cdrom /mnt/cdrom/
[root@lyt ~]# cd /mnt/cdrom/Server/
[root@lyt Server]# yum install wireshark –y #安装wireshark抓包工具
新建用户:
[root@lyt Server]# useradd user1 #新建用户user1
[root@lyt Server]# passwd user1 #为user1创建密码
[root@lyt Server]# useradd user2
[root@lyt Server]# passwd user2
搭建dns服务器:
[root@lyt Server]# rpm -ivh bind-9.3.6-4.P1.el5.i386.rpm
[root@lyt Server]# rpm -ivh bind-chroot-9.3.6-4.P1.el5.i386.rpm
[root@lyt Server]# rpm -ivh caching-nameserver-9.3.6-4.P1.el5.i386.rpm
[root@lyt Server]# cd /var/named/chroot/etc/
[root@lyt etc]# cp -p named.caching-nameserver.conf named.conf
[root@lyt etc]# vim named.conf
[root@lyt etc]# vim named.rfc1912.zones
[root@lyt etc]# cd ../var/named/
[root@lyt named]# cp -p localhost.zone 163.com.db
[root@lyt named]# vim 163.com.db
[root@lyt named]# service named start
[root@lyt named]# chkconfig named on #设置开机启动
[root@lyt named]# vim /etc/resolv.conf
搭建sendmail服务器(邮件发送服务):
[root@lyt named]# cd /mnt/cdrom/Server/
[root@lyt Server]# rpm -qa |grep sendmail #查看安装与sendmail有关的已经安装的软件包
[root@lyt Server]# rpm -ivh sendmail-cf-8.13.8-2.el5.i386.rpm #该软件包用于直接编辑sendmail.mc文件,不用编辑sendmail.cf文件
[root@lyt Server]# cd /etc/mail
[root@lyt mail]# vim sendmail.mc #编辑sendmail的主配置文档
[root@lyt mail]# vim access #编辑sendmail的中继文件
[root@lyt mail]# vim local-host-names
搭建dovecot(邮件接收):
[root@lyt mail]# cd /mnt/cdrom/Server/
[root@lyt Server]# yum install dovecot –y
[root@lyt Server]# service dovecot start
[root@mail Server]# chkconfig dovecot on #设置开机自动启动
注:在windows server 2003主机上创建电子邮件用户user1和user2的方法在(上)篇中已经给出,这里不再详述
抓包查看能否获得用户名和密码:使用windows server 2003测试:
[root@mail Server]# tshark -ni eth0 -R "tcp.dstport eq 110" #如图所以,可以看到用户名和密码
搭建CA服务器:
[root@lyt Server]# cd /etc/pki/tls/
[root@lyt tls]# vim openssl.cnf
[root@mail tls]# cd /etc/pki/CA/
[root@mail CA]# mkdir crl #放置证书吊销列表
[root@mail CA]# mkdir certs #已经发行过的证书存放的位置
[root@mail CA]# mkdir newcerts #新发行的证书存放位置
[root@mail CA]# touch serial #颁发证书的初始值
[root@mail CA]# touch index.txt #数据库的索引文件
[root@mail CA]# echo "01">serial #将01赋予serial,作为初始值
[root@mail CA]# openssl genrsa 1024 > private/cakey.pem #利用1024的非对称加密算法rsa,算出一个密钥放置在cakey.com文件中
[root@mail CA]# chmod 600 private/cakey.pem #将cakey.com文件设置为600
[root@mail CA]# openssl req -new -key private/cakey.pem -x509 -out cacert.pem -days 3650 ##利用自己的私钥为自己(CA服务器)产生一个证书叫
cacert.pem。-x509表示证书类型,证书有效时间3650天,-out表示输出
[root@mail CA]# mkdir -pv /etc/mail/certs #为sendmail服务器产生一个存放私钥,证书请求文件,证书的目录
[root@mail CA]# cd /etc/mail/certs/
[root@mail certs]# openssl genrsa 1024 >sendmail.key #为sendmail服务器端产生一个私钥
[root@mail certs]# openssl req -new -key sendmail.key -out sendmail.csr #利用私钥产生一个证书请求文件sendmail.csr
[root@mail certs]# openssl ca -in sendmail.csr -out sendmail.cert #利用证书请求文件sendmail.csr产生一个证书叫做sendmail.cert
[root@mail certs]# chmod 600 * #将当前目录中所有的文件权限修改为600
[root@mail certs]# vim /etc/mail/sendmail.mc #编辑该文件
[root@mail certs]# service sendmail restart
[root@mail certs]# telnet 127.0.0.1 25 #使用telnet登录本地邮件服务器
在windows server 2003上user1发送邮件作为测试:
[root@mail Server]# tshark -ni eth0 -R "tcp.dstport eq 25" #使用tsharek抓包工具抓包,查看能否抓获邮件客户端的用户名和密
由于在windows server 2003上没有安装证书,故出现下面情况:
抓包查看能否获得用户名和密码:
使用CA服务器为邮件服务器颁发证书之后,所抓的数据包全都是加密的
[root@mail Server]# pkill -9 tshark #终止tshark工具
[root@mail Server]# jobs #查看tshark是否还在后台运行
为邮件接收服务创建证书:
[root@mail Server]# mkdir -pv /etc/dovecot/certs
[root@mail Server]# cd /etc/dovecot/certs/
[root@mail certs]# openssl genrsa 1024 >dovecot.key
[root@mail certs]# openssl req -new -key dovecot.key -out dovecot.csr
[root@mail certs]# openssl ca -in dovecot.csr -out dovecot.cert #利用请求证书文件申请证书dovecot.cert
[root@mail certs]# vim /etc/dovecot.conf #编辑该文件
[root@mail certs]# service dovecot restart #重启dovecot服务
在windows server 2003上user2接收邮件作为测试:
[root@mail certs]# tshark -ni eth0 -R "tcp.dstport eq 995" #针对995端口进行抓包
由于在windows server 2003上没有安装证书,故出现下面情况:
抓包查看能否获得用户名和密码:
使用CA服务器为邮件服务器颁发证书之后,所抓的数据包全都是加密的