Liunx 部署邮件TLS/SSL加密通信服务

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介:

部署邮件TLS/SSL加密通信服务


一.部署普通邮件服务器

1) 搭建并检测邮件服务的发送服务

        [root@mail ~]# rpm -q postfix 

        postfix-2.10.1-6.el7.x86_64

        [root@mail ~]# netstat -pantu | grep :25

        tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1822/master         

        tcp6       0      0 ::1:25                  :::*                    LISTEN      1822/master         

        [root@mail ~]# ps -C master

          PID TTY          TIME CMD

         1822 ?        00:00:00 master

        [root@mail ~]# vim /etc/postfix/main.cf 

        [root@mail ~]# sed -n "113p;116p;419p" /etc/postfix/main.cf

        inet_interfaces = all

        #inet_interfaces = localhost

        home_mailbox = Maildir/

        [root@mail ~]# systemctl restart postfix.service 

        [root@mail ~]# useradd jim

        [root@mail ~]# echo 654321 | passwd --stdin jim

        [root@mail ~]# yum -y install telnet

        [root@mail ~]# telnet localhost 25

        Trying ::1...

        Connected to localhost.

        Escape character is '^]'.

        220 mail.com.cn ESMTP Postfix

        helo localhost

        250 mail.com.cn

        mail from:root@localhost

        250 2.1.0 Ok

        rcpt to:jim@localhost

        250 2.1.5 Ok

        data

        354 End data with <CR><LF>.<CR><LF>

        XXXXX

        XXXX

        XXX

        XX

        X 

        .

        250 2.0.0 Ok: queued as BEDA283BDA92

        quit

        221 2.0.0 Bye

        Connection closed by foreign host.

        [root@mail ~]# cat /home/jim/Maildir/new/1515047330.Vfd02I4000083M847601.mail.com.cn

        Return-Path: <root@localhost.com.cn>

        X-Original-To: jim@localhost

        Delivered-To: jim@localhost.com.cn

        Received: from localhost (localhost [IPv6:::1])

        by mail.com.cn (Postfix) with SMTP id BEDA283BDA92

        for <jim@localhost>; Thu,  4 Jan 2018 01:28:07 -0500 (EST)

        Message-Id: <20180104062818.BEDA283BDA92@mail.com.cn>

        Date: Thu,  4 Jan 2018 01:28:07 -0500 (EST)

        From: root@localhost.com.cn

        

        XXXXX

        XXXX

        XXX

        XX

        X

        

        #可以在发送邮件的时候  抓取发邮件的数据包

        [root@mail ~]# tcpdump -i eth0 -A tcp port 25

        

2)搭建并检测 邮件服务的收取

        [root@mail ~]# yum -y install dovecot

        [root@mail ~]# rpm -q dovecot 

        dovecot-2.2.10-5.el7.x86_64

        

        [root@mail ~]# vim /etc/dovecot/conf.d/10-mail.conf 

        [root@mail ~]# sed -n '24p' /etc/dovecot/conf.d/10-mail.conf

        mail_location = maildir:~/Maildir

        

        [root@mail ~]# vim /etc/dovecot/conf.d/10-auth.conf 

        [root@mail ~]# sed -n '10p' /etc/dovecot/conf.d/10-auth.conf 

        disable_plaintext_auth = yes#不禁用明文认证

        [root@mail ~]# systemctl start dovecot

        [root@mail ~]# netstat -pantu | grep :110

        tcp        0      0 0.0.0.0:110             0.0.0.0:*               LISTEN      4924/dovecot        

        tcp6       0      0 :::110                  :::*                    LISTEN      4924/dovecot        

        [root@mail ~]# netstat -pantu | grep :143

        tcp        0      0 0.0.0.0:143             0.0.0.0:*               LISTEN      4924/dovecot        

        tcp6       0      0 :::143                  :::*                    LISTEN      4924/dovecot    

        

        [root@mail ~]# telnet localhost 110

        Trying ::1...

        Connected to localhost.

        Escape character is '^]'.

        +OK Dovecot ready.

        USER jim

        +OK

        PASS 654321

        +OK Logged in.

        list

        +OK 1 messages:

        1 423

        .

        retr 1

        +OK 423 octets

        Return-Path: <root@localhost.com.cn>

        X-Original-To: jim@localhost

        Delivered-To: jim@localhost.com.cn

        Received: from localhost (localhost [IPv6:::1])

        by mail.com.cn (Postfix) with SMTP id BEDA283BDA92

        for <jim@localhost>; Thu,  4 Jan 2018 01:28:07 -0500 (EST)

        Message-Id: <20180104062818.BEDA283BDA92@mail.com.cn>

        Date: Thu,  4 Jan 2018 01:28:07 -0500 (EST)

        From: root@localhost.com.cn

        

        XXXXX

        XXXX

        XXX

        XX

        X

        .

        quit

        +OK Logging out.

        Connection closed by foreign host.

        

        #可以在收取邮件的时候  抓取收邮件的数据包

        [root@mail ~]# tcpdump -A -i lo  tcp port 110

        [root@mail ~]# tcpdump -A -i lo -w /tmp/mail.cap  tcp port 110

        [root@mail ~]# tcpdump -A -r /tmp/mail.cap | grep user

        reading from file /tmp/mail.cap, link-type EN10MB (Ethernet)

        .S...R..user jim                                                                        #这里可以通过抓包 抓取到邮件的用户名和密码  因为当前属于明文传输

        [root@mail ~]# tcpdump -A -r /tmp/mail.cap | grep pass

        reading from file /tmp/mail.cap, link-type EN10MB (Ethernet)

        .S6[.S..pass 654321

        

        

        

二,部署邮件TLS/SSL加密通信服务


1 邮件服务器的配置(192.168.4.2):

        [root@mail ~]# systemctl restart postfix         

        [root@mail ~]# netstat -pantu | grep master

        tcp        0      0 0.0.0.0:25              0.0.0.0:*               LISTEN      5415/master         

        tcp6       0      0 :::25                   :::*                    LISTEN      5415/master  

        [root@mail ~]# systemctl restart dovecot

        [root@mail ~]# netstat -pantu | grep dovecot

        tcp        0      0 0.0.0.0:110             0.0.0.0:*               LISTEN      5446/dovecot        

        tcp        0      0 0.0.0.0:143             0.0.0.0:*               LISTEN      5446/dovecot        

        tcp        0      0 0.0.0.0:993             0.0.0.0:*               LISTEN      5446/dovecot        

        tcp        0      0 0.0.0.0:995             0.0.0.0:*               LISTEN      5446/dovecot        

        tcp6       0      0 :::110                  :::*                    LISTEN      5446/dovecot        

        tcp6       0      0 :::143                  :::*                    LISTEN      5446/dovecot        

        tcp6       0      0 :::993                  :::*                    LISTEN      5446/dovecot        

        tcp6       0      0 :::995                  :::*                    LISTEN      5446/dovecot   

        

2 创建私钥文件:生成证书请求文件  mail.key

        [root@mail ~]# cd /etc/pki/tls/private/#默认搜索私钥目录

        [root@mail private]# openssl genrsa 2048 > mail.key#执行生成私钥命令

        


3 创建证书请求文件mail.csr

        -req 请求

        -new 新文件

        -key 私钥

        [root@mail private]# openssl req -new -key mail.key > ~/mail.csr

        You are about to be asked to enter information that will be incorporated

        into your certificate request.

        What you are about to enter is what is called a Distinguished Name or a DN.

        There are quite a few fields but you can leave some blank

        For some fields there will be a default value,

        If you enter '.', the field will be left blank.

        -----

        Country Name (2 letter code) [XX]:CN#与CA服务器 match 匹配策略 必须一样

        State or Province Name (full name) []:beijing

        Locality Name (eg, city) [Default City]:beijing

        Organization Name (eg, company) [Default Company Ltd]:Xuenqlve

        Organizational Unit Name (eg, section) []:ope

        Common Name (eg, your name or your server's hostname) []:mail#设置为服务域名或者主机名

        Email Address []:Xuenqlve@163.com

        

        Please enter the following 'extra' attributes

        to be sent with your certificate request

        A challenge password []:

        An optional company name []:

        

5 上传证书请求文件给CA服务器(192.168.4.1)

        [root@mail ~]# scp ~/mail.csr 192.168.4.1:/tmp

        

CA服务器的配置(192.168.4.1):

        CA服务器具体配置 http://blog.51cto.com/13558754/2057718

6 审核证书请求文件,并签发数字证书

        [root@CA certs]# openssl ca -in /tmp/mail.csr > mail.crt

        Using configuration from /etc/pki/tls/openssl.cnf

        Enter pass phrase for /etc/pki/CA/private/my-ca.key:

        Check that the request matches the signature

        Signature ok

        Certificate Details:

                Serial Number: 1 (0x1)

                Validity

                    Not Before: Jan  5 04:52:52 2018 GMT

                    Not After : Jan  5 04:52:52 2019 GMT

                Subject:

                    countryName               = CN

                    stateOrProvinceName       = beijing

                    organizationName          = Xuenqlve

                    organizationalUnitName    = ope

                    commonName                = mail

                    emailAddress              = Xuenqlve@163.com

                X509v3 extensions:

                    X509v3 Basic Constraints: 

                        CA:FALSE

                    Netscape Comment: 

                        OpenSSL Generated Certificate

                    X509v3 Subject Key Identifier: 

                        1E:C8:F7:FA:7D:F7:9F:7B:00:03:DC:3B:60:CB:A2:8F:C0:16:04:D1

                    X509v3 Authority Key Identifier: 

                        keyid:87:06:18:98:79:53:0E:26:0A:91:2D:B9:93:8A:C3:86:2B:CC:DF:E7

        

        Certificate is to be certified until Jan  5 04:52:52 2019 GMT (365 days)

        Sign the certificate? [y/n]:y

        

        1 out of 1 certificate requests certified, commit? [y/n]y

        Write out database with 1 new entries

        Data Base Updated

        

        注意:审核证书请求文件 报如下的错误时:

        error while loading serial number

        执行如下操作

        [root@CA CA]# echo 01 > serial

        

        [root@CA certs]# cat ../index.txt

        V190105045252Z01unknown/C=CN/ST=beijing/O=Xuenqlve/OU=ope/CN=mail/emailAddress=Xuenqlve@163.com

        [root@CA certs]# cat ../serial

        02

        

7 下发证书给邮件服务器(192.168.4.2)

        [root@CA certs]# scp mail.crt 192.168.4.2:/root/

        



8 配置服务运行时调用私钥文件 数字证书文件

    8.1 配置发邮件服务

        [root@mail ~]# vim /etc/postfix/main.cf 

        添加如下配置

        [root@mail ~]# tail -4 /etc/postfix/main.cf

        smtpd_use_tls = yes

        #smtpd_tls_auth_only = yes

        smtpd_tls_key_file = /etc/pki/tls/private/mail.key

        smtpd_tls_cert_file = /etc/pki/tls/certs/mail.crt

        [root@mail ~]# cp /root/mail.crt /etc/pki/tls/certs/

        [root@mail ~]# systemctl restart postfix.service

        [root@mail ~]# netstat -pantu | grep master

        tcp        0      0 0.0.0.0:25              0.0.0.0:*               LISTEN      6461/master         

        tcp6       0      0 :::25                   :::*                    LISTEN      6461/master   

    8.2 配置收邮件服务

        [root@mail ~]# vim /etc/dovecot/conf.d/10-ssl.conf 

        添加如下配置

        [root@mail ~]# sed -n '14p;15p' /etc/dovecot/conf.d/10-ssl.conf

        ssl_cert = </etc/pki/dovecot/certs/mail.crt

        ssl_key = </etc/pki/dovecot/private/mail.key

        [root@mail ~]# cp /etc/pki/tls/private/mail.key  /etc/pki/dovecot/private/mail.key

        [root@mail ~]# cp /root/mail.crt /etc/pki/dovecot/certs/mail.crt

        [root@mail ~]# systemctl restart dovecot.service

        [root@mail ~]# netstat -pantu | grep dovecot

        tcp        0      0 0.0.0.0:110             0.0.0.0:*               LISTEN      6517/dovecot        

        tcp        0      0 0.0.0.0:143             0.0.0.0:*               LISTEN      6517/dovecot        

        tcp        0      0 0.0.0.0:993             0.0.0.0:*               LISTEN      6517/dovecot        

        tcp        0      0 0.0.0.0:995             0.0.0.0:*               LISTEN      6517/dovecot        

        tcp6       0      0 :::110                  :::*                    LISTEN      6517/dovecot        

        tcp6       0      0 :::143                  :::*                    LISTEN      6517/dovecot        

        tcp6       0      0 :::993                  :::*                    LISTEN      6517/dovecot        

        tcp6       0      0 :::995                  :::*                    LISTEN      6517/dovecot   

        

三.客户端在软件里设置连接邮件服务器时 是否加密协议

     使用客户端软件时将邮件传输方式设置为ssl

         传输的数据就会进行加密










本文转自 Xuenqlve 51CTO博客,原文链接:http://blog.51cto.com/13558754/2057793,如需转载请自行联系原作者
目录
相关文章
|
3月前
|
网络协议 安全 网络安全
中间人攻击之未加密的通信
【8月更文挑战第12天】
57 2
|
5天前
|
缓存 安全 算法
SSL和TLS部署实践
在TLS中,所有安全性都以服务器的加密身份开始,这就需要一个强大的私钥来防止攻击者进行模拟攻击。同样重要的是拥有一个有效和强大的证书,它会授予私钥来代表一个特定的主机名。
16 2
|
1月前
|
网络安全 Docker CDN
使用Certimate自动申请与部署SSL证书
Certimate 是一个开源的 SSL 证书管理工具,可帮助自动申请、部署 SSL 证书并自动续期。
167 0
使用Certimate自动申请与部署SSL证书
|
15天前
|
存储 安全 算法
SSL和TLS部署实践
【10月更文挑战第28天】在TLS中,服务器的加密身份和强大私钥是安全基础,2048位RSA密钥足以满足大多数需求。保护私钥需在可信环境生成、加密存储、使用HSM、及时撤销旧证书、每年更新证书。确保证书覆盖所有域名,选择可靠CA,使用SHA256签名算法,配置完整证书链,禁用不安全加密套件,启用前向保密,使用会话重用机制,启用OCSP Stapling,加密整个网站,删除混合内容,安全设置Cookie,配置HSTS和CSP。
49 1
|
28天前
|
应用服务中间件 网络安全 Apache
Discuz! X3.5 开启ssl证书加密后微信、公众号无消息、支付宝通讯中断等
Discuz! X3.5 开启ssl证书加密后微信、公众号无消息、支付宝通讯中断等、支付宝支付实际支付成功,显示未支付等,都属于通讯中断,需要联系DZ官方付费修改程序,屏蔽防CC!
52 4
|
28天前
|
安全 Java 测试技术
ToB项目身份认证AD集成(二):快速搞定window server 2003部署AD域服务并支持ssl
本文详细介绍了如何搭建本地AD域控测试环境,包括安装AD域服务、测试LDAP接口及配置LDAPS的过程。通过运行自签名证书生成脚本和手动部署证书,实现安全的SSL连接,适用于ToB项目的身份认证集成。文中还提供了相关系列文章链接,便于读者深入了解AD和LDAP的基础知识。
|
2月前
|
安全 应用服务中间件 网络安全
部署SSL证书
部署SSL证书
211 5
|
3月前
|
负载均衡 前端开发 应用服务中间件
使用Nginx配置SSL以及部署前端项目
本文介绍了如何使用Nginx配置SSL证书以启用HTTPS,并展示了如何通过Nginx部署前端项目,包括配置SSL证书、设置代理和负载均衡的示例。
112 2
|
4月前
|
缓存 网络协议 算法
(二)Java网络编程之爆肝HTTP、HTTPS、TLS协议及对称与非对称加密原理!
作为一名程序员,尤其是Java程序员,那必须得了解并掌握HTTP/HTTPS相关知识。因为在如今计算机网络通信中,HTTP协议的作用功不可没,无论是日常上网追剧、冲���、亦或是接口开发、调用等,必然存在HTTP的“影子”在内。尤其对于WEB开发者而言,HTTP几乎是每天会打交道的东西。
96 10
|
3月前
|
SQL 安全 Java
驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client
驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client
469 0

热门文章

最新文章