本篇笔者介绍关于加密的电子邮件,邮件在使用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服务器为邮件服务器颁发证书之后,所抓的数据包全都是加密的