zoukankan      html  css  js  c++  java
  • Linux中Postfix基于SSL收发邮件(九)

    其中在整个一套邮件服务器中,默认信息传输都是明文传输的,所以这个在安全性上面就不是那么好。但是如果说一封邮件从发生到对方接受想要全程做到加密处理这个也是很难的。因为一封邮件从一个域转到另外一个域服务器时很难做到加密,这属于不同的域,有不同的人在管理,比如说从163发一封邮件到QQ邮箱。

    但是如果在同一个域内保证邮件发送和接收的安全性,该如何做呢?其实也有一种机制就是S/MIME,提供用户到用户的邮件安全性。它能保证邮件发送加密同时邮件存储在邮件服务器上也是加密存放,直到用户取回到本地进行解密才可查看,在这期间任何人截取邮件都是不可看的,可以说是非常安全了。但是这种机制一般都是提供商业支持。

    那么除了S/MIME这种机制,在我们可控范围内可以做到邮件发送和接收时进行加密,如smtps是加密传输的smtp协议,工作在TCP/465端口;POP3s是加密传输的pop3协议,工作在TCP/995端口;以及IMAP4s是加密传输的imap4协议,工作在TCP/993端口;当然这只是能保证邮件从邮箱到本地是加密的,如邮件发送和存储无法做到加密。也可以对webmail进行https传输,这些都可以在一定程度上做到邮件加密处理。

    OpenSSL实现私有CA

    CA服务器生成一对秘钥并保存

    [root@localhost ~]# openssl genrsa 1024 > /etc/pki/CA/private/cakey.pem

    CA服务器生成自签署证书

    [root@localjost ~]# openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 365
    输入国家名称2位的代码:cn
    输入所在省份的名称:shanghai
    输入所在城市的名称:shanghai
    输入公司的名称:ywnds
    输入所在的部门:tech
    输入主机的名称:ca.ywnds.com(此主机名要跟服务器的主机名保持一致;客户端访问主机时必须要通过这个主机名才能建立连接否则说证书不可信)
    输入E-mail:admin@ywnds.com

    为CA创建一些目录和文件

    [root@localhost ~]# mkdir /etc/pki/CA/{certs,newcerts,crl}
    [root@localhost ~]# touch /etc/pki/CA/{index.txt,serial}
    [root@localhost ~]# echo 01 > /etc/pki/CA/serial

    邮件服务器生成证书

    [root@localhost ~]# mkdir /etc/dovecot/ssl
    [root@localhost ~]# openssl genrsa -out /etc/dovecot/ssl/dovecot.key 1024
    [root@localhost ~]# opensslreq -new -key /etc/dovecot/ssl/dovecot.key -out /etc/dovecot/ssl/dovecot.csr
    [输入的信息一定要跟CA输入的信息一致因为我们创建的私有CA]
    输入国家名称2位的代码:cn
    输入所在省份的名称:shanghai
    输入所在城市的名称:shanghai
    输入公司的名称:ywnds
    输入所在的部门:tech
    输入主机的名称:mail.ywnds.com(此主机名要跟服务器的主机名保持一致;客户端访问主机时必须要通过这个主机名才能建立连接否则说证书不可信)
    输入E-mail:admin@ywnds.com
    证书密码:

    在CA服务器签署证书并发送回给邮件服务器

    [root@localhost ~]# openssl ca -in /etc/dovecot/ssl/dovecot.csr -out /etc/dovecot/ssl/dovecot.crt -days 365

    在CA服务器上查看签署过后/etc/pki/CA下的文件发生的变化

    [root@localhost ~]# cat /etc/pki/CA/index.txt
    [root@localhost ~]# cat /etc/pki/CA/serial 

    Dovecot开启SSL

    [root@localhost ~]# vim /etc/dovecot.conf
    protocols pop pop3 imap imap4
    
    [root@localhost ~]# vim /etc/dovecot/conf.d/10-ssl.conf
    ssl = yes
    ssl_cert = /etc/dovecot/ssl/dovecot.crt
    ssl_key = /etc/dovecot/ssl/dovecot.key
    
    [root@localhost ~]# service dovecot restart

    MUA连接邮件服务器注意事项:

    1.把CA的证书cacert.pem下载到客户端改名cacert.crt并安装到根信任域。

    2.客户端连接pop3s服务器时POP3s会发来证书,此时CA证书cacert.crt会去验证POP3证书,没有问题就可以传输邮件。

    3.MUA在连接POP3s服务器时要使用域名不能使用IP地址,因为要跟证书中的主机名对应,不然还是会不受信任,同时客户端要能解析此域名。

  • 相关阅读:
    设计模式之工厂模式-抽象工厂(02)
    1036 跟奥巴马一起编程 (15 分)
    1034 有理数四则运算 (20 分)
    1033 旧键盘打字 (20 分)
    1031 查验身份证 (15 分)
    大学排名定向爬虫
    1030 完美数列 (25 分)二分
    1029 旧键盘 (20 分)
    1028 人口普查 (20 分)
    1026 程序运行时间 (15 分)四舍五入
  • 原文地址:https://www.cnblogs.com/flytor/p/11461093.html
Copyright © 2011-2022 走看看