CA认证简述与邮件服务器加密

一、CA认证机构


电子商务认证授权机构(CA, Certificate Authority),是负责发放和管理数字证书的权威机构,并作为电子商务交易中受信任的第三方,承担公钥体系中公钥的合法性检验的责任。

二、数字加密


1.加密与解密

加密:使用密钥与算法将文字转换成不能直接阅读的形式(即密文)的过程称为加密。
解密:使用密钥与算法将密文转换成能够直接阅读的文字(即明文)的过程称为解密。

2.密钥

成对产生,分为私钥和公钥(一般私钥自己留存、而公钥公布在公网中)

3.算法

对称算法

DES:IBM、3DES:IBM、AES:128,192,256位长度

非对称算法

RSA、Elgamal、背包算法、Rabin、D-H(如:IPsec ×××)、ECC(椭圆曲线加密算法)
注:使用最广泛的是RSA算法,Elgamal是其次

三、加密方式


1.对称加密

加密:发送方(应用)--> 数据 --> 发送方私钥(文件)+算法 => 加密后数据

解密:接收方(应用) -->加密后数据 --> 发送方私钥(文件)-算法 => 解密后数据

2.非对称加密

(1)私加+公解

加密:发送方(应用)--> 数据 --> 发送方私钥(文件)+算法 => 加密后数据

解密:接收方(应用)--> 数据 --> 发送方公钥(文件)+算法 => 加密后数据

(2)公加+私解

加密:发送方(应用)--> 数据 --> 接收方公钥(文件)+算法 => 加密后数据

解密:接收方(应用)--> 数据 --> 接收方私钥(文件)+算法 => 加密后数据

四、数字签名


保证数据的不可否认性,防止数据被篡改

数据由签名者(发送方)签名发送

数字签名使得别人不能伪造和篡改数字证书

注:数字签名使用HASH(散列)算法实现

五、数字证书


证书是由证书签证机关(CA)签发的对用户的公钥的认证。

数字证书为实现双方安全通信提供了电子认证。在因特网、公司内部网或外部网中,使用数字证书实现身份识别和电子信息加密。数字证书中含有公钥对所有者的识别信息,通过验证识别信息的真伪实现对证书持有者身份的认证。

1.数字证书类型

个人数字证书,主要用于标识数字证书自然人所有人的身份,包含了个人的身份信息及其公钥,如用户姓名、证件号码、身份类型等,可用于个人在网上进行合同签定、定单、录入审核、操作权限、支付信息等活动。

机构数字证书,主要用于标识数字证书机构所有人的身份,包含机构的相关信息及其公钥,如:企业名称、组织机构代码等,可用于机构在电子商务、电子政务应用中进行合同签定、网上支付、行政审批、网上办公等各类活动。

设备数字证书,用于在网络应用中标识网络设备的身份,主要包含了设备的相关信息及其公钥,如:域名、网址等,可用于×××服务器、WEB服务器等各种网络设备在网络通讯中标识和验证设备身份。

代码签名数字证书,是签发给软件提供者的数字证书,包含了软件提供者的身份信息及其公钥,主要用于证明软件发布者所发行的软件代码来源于一个真实软件发布者,可以有效防止软件代码被篡改

2.数字证书内容

1)使用者的公钥

2)使用的标记(如名称和邮箱等)

3)有效期限

4)颁发者的标志信息

5)颁发者的数字签名

注:证书的格式和验证方法普遍遵循X.509 国际标准。一般数字证书用于公司的网站服务器。
部分资料参考百度百科:https://baike.baidu.com/item/CA%E8%AE%A4%E8%AF%81/6471579

案例:给Postfix邮件服务器颁发CA证书实现邮件服务的加密


自建CA

注:通常不会自己搭建CA服务器,自己搭建的CA颁发的证书在公网中不会被认可,此处是在内网中使用。

1.CA配置

(1)安装openssl软件包

yum -y install openssl

(2)修改模版配置文件

vim /etc/pki/tls/openssl.cnf
130 countryName_default             = CN        //指定国家
135 stateOrProvinceName_default     = Beijing       //指定省份
138 localityName_default    = Beijing           //指定城市
141 0.organizationName_default      = xueluo.org    //颁发的组织名称
148 organizationalUnitName_default  = IT        //指定部分

(3)生成私钥

openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048      //生成使用RSA 2048位的私钥文件
chmod 600 /etc/pki/CA/private/cakey.pem

(4)生成根证书(CA证书)

openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 3650    //通过私钥文件生成有效期有10年的根证书

注:Common Name (eg, your name or your server's hostname) []:颁发的主机名

(5)创建索引和证书序列号文件

touch /etc/pki/CA/index.txt
echo "00" >/etc/pki/CA/serial

(6)拷贝根CA证书到邮件服务器

scp /etc/pki/CA/cacert.pem [email protected]:/etc/postfix

2.Mailserver配置(postfix)

(1)生成私钥

openssl genrsa 2048 >/etc/postfix/mail.key
chmod 600 /etc/postfix/mail.key

(2)生成证书请求文件

scp [email protected]:/etc/pki/tls/openssl.cnf /etc/pki/tls/openssl.cnf
openssl req -new -key /etc/postfix/mail.key -out /etc/postfix/mail.csr

注:Common Name (eg, your name or your server's hostname) []:颁发的主机名

(3)将请求文件拷贝到CA服务器

scp /etc/postfix/mail.csr [email protected]:/tmp

(4)CA证书服务器签发证书

openssl ca -in /tmp/mail.csr -out /tmp/mail.crt -days 3650
scp /tmp/mail.crt [email protected]:/etc/postfix

3.配置postfix

(1)创建运行用户和组

/etc/init.d/postfix stop && chkconfig --level 35 postfix off                //将系统自带服务停止并开机禁用

#useradd -M -s /sbin/nologin postfix
#groupadd postfix
#groupadd postdrop

gpasswd -a postfix postfix                              //将postfix用户加入到Postfix组
gpasswd -a postfix postdrop                         //将postfix用户加入到postdrop组

(2)解压并安装postfix

tar -zxvf postfix-3.2.2.tar.gz -C /usr/src/
cd /usr/src/postfix-3.2.2/
make makefiles CCARGS='-DUSE_TLS -I/usr/include/openssl/'AUXLIBS='-L/usr/lib -lssl -lcrypto'
//生成Mailfile配置文件,并启动TLS认证、指定依赖库文件位置
make && make install

(3)编辑配置文件

postconf -n >/tmp/hehe.conf                 //将有效的配置文件导出
mv /tmp/hehe.conf /etc/postfix/main.cf
vim /etc/postfix/main.cf
  9 inet_interfaces = 192.168.1.10              //指定监听IP
 10 myhostname = mail.xueluo.org                //新增,指定当前主机名
 11 mydomain = xueluo.org                   //新增,指定邮件域
 12 myorigin = $mydomain                    //新增,外发邮件时发送中邮件域
 13 home_mailbox = Maildir/                 //新增,邮件的存储位置(存储到用户的家目录)
 19 mydestination = $myhostname,$mydomain           //允许投递的目标邮件域
  smtpd_use_tls       = yes
  smtpd_tls_key_file  = /etc/postfix/mail.key       //邮件服务器私钥文件
  smtpd_tls_cert_file = /etc/postfix/mail.crt       //邮件服务器证书文件(公钥文件)
  smtpd_tls_CAfile    = /etc/postfix/cacert.pem     //CA证书服务器证书文件(公钥文件)
  smtpd_tls_received_header = yes
  smtpd_enforce_tls = yes
  smtpd_tls_loglevel = 2
  smtp_use_tls       = yes
  smtp_tls_key_file  = /etc/postfix/mail.key
  smtp_tls_cert_file = /etc/postfix/mail.crt
  smtp_tls_CAfile    = /etc/postfix/cacert.pem
  smtpd_tls_protocols = !SSLv2, !SSLv3
  smtp_tls_policy_maps = hash:/etc/postfix/tls_policy

上半部分的配置是系统作为服务端,接收客户端和其他邮件服务器时如何启用tls;下版半部分服务器作为客户端对外发送邮件也启用tls

vim /etc/postfix/master.cf
smtps inet n - n - - smtpd -o smtpd_tls_wrappermode=yes //打开465(smtps)端口
smtps inet n -  n -- smtpd -o smtpd_sasl_auth_enable=yes
vim /etc/postfix/tls_policy                 //强制使用TLS发信
  xueluo.org encrypt
postmap /etc/postfix/tls_policy

注:通过以上的配置启用了tls发信设置,那麽系统发信时会检查对方服务器是否支持tls,如果支持则使用tls传输,否则采用正常的邮件发送;postfix可以设置向某些域发送强制使用TLS,如果对方不支持则邮件将延迟发送
(4)启动服务

postfix stop && postfix start                           //启动postfix服务

4.配置Mailserver(dovecot)

(1)创建运行用户

useradd -M -s /sbin/nologin dovecot
useradd -M -s /sbin/nologin dovenull

(2)源代码编译安装

tar -zxvf /root/dovecot-2.2.31.tar.gz -C /usr/src/      
cd /usr/src/dovecot-2.2.31/
./configure --sysconfdir=/etc/ --enable-ssl             //配置dovecot的配置文件存储目录
make && make install

(3)拷贝模版文件

cp doc/dovecot-initd.sh /etc/init.d/dovecot             //拷贝启动脚本文件
chmod +x /etc/init.d/dovecot
chkconfig --add dovecot                     //将dovecot注册为系统服务
cp -r /usr/local/share/doc/dovecot/example-config/* /etc/dovecot/   //拷贝模版配置文件

(4)新建PAM认证模块

vim /etc/pam.d/dovecot
#%PAM-1.0
auth    required    pam_nologin.so
auth    include system-auth
account include system-auth
session include system-auth

(5)编辑配置文件

vim /etc/dovecot/dovecot.conf
  !include conf.d/10-auth.conf          //只使用系统用户认证
  !include conf.d/10-ssl.conf               //启动SSL证书认证
  disable_plaintext_auth = no
  mail_location = maildir:~/Maildir         //指定邮箱的位置
  #!include conf.d/*.conf               //注释该行,位于98行
vim /etc/dovecot/conf.d/10-ssl.conf
 6 ssl = yes
 12 ssl_cert = </etc/postfix/mail.crt   
 13 ssl_key = </etc/postfix/mail.key

(6)启动服务

/etc/init.d/dovecot restart             //重启dovecot服务

DNS部署

一块网卡为vmnet1

1.修改网络配置

vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
IPADDR=192.168.1.10
NETMASK=255.255.255.0
DNS1=192.168.1.10
/etc/init.d/network restart
vim /etc/sysconfig/network
HOSTNAME=ns.xueluo.org

2.安装bind软件包

yum -y install bind bind-utils

3.编辑主配置文件

vim /etc/named.conf
options {
    listen-on port 53 { 192.168.1.10; };                    //设置监听IP地址;需修改
    directory   "/var/named";                       //区域配置文件存放目录
    dump-file   "/var/named/data/cache_dump.db";
    statistics-file "/var/named/data/named_stats.txt";
    memstatistics-file "/var/named/data/named_mem_stats.txt";
    allow-query {localhost;};                       //删除该行,也可写为any
    recursion yes;
    dnssec-enable no;                           //bind安全检测机制;需修改
    dnssec-validation no;                       //bind安全检测机制;需修改
    dnssec-lookaside auto;
    /* Path to ISC DLV key */
    bindkeys-file "/etc/named.iscdlv.key";
    managed-keys-directory "/var/named/dynamic";
};
logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};
zone "xueluo.org" IN {                              //指定正向解析域为xueluo.org
    type master;                                //指定DNS类型,为主DNS服务器
    file "xueluo.org.zone";                         //正向解析文件
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
cp /var/named/named.empty /var/named/xueluo.org.zone                //拷贝DNS模版文件并重命名
vim /var/named/xueluo.org.zone
$TTL 86400(TTL值,生命周期)
@   IN SOA  xueluo.org.(需要解析的域名) admin.xueluo.org.(管理员邮箱) (
                    0   ; serial
                    1D  ; refresh
                    1H  ; retry
                    1W  ; expire
                    3H )    ; minimum
    IN  NS  ns.xueluo.org.      //NS记录(起始授权记录);输入DNS服务器的主机名
ns  IN  A   192.168.1.10        //DNS服务器对应的IP地址
    IN  MX 10   mail.xueluo.org.        //MX记录
mail    IN  A   192.168.1.10        //mail.xueluo.org对应的IP
chown named:named /var/named/xueluo.org.zone

4.启动named服务

/etc/init.d/named start && chkconfig --level 35 named on

此时客户端可使用加密的端口SMTP:645和POP3:995发送邮件

猜你喜欢

转载自blog.51cto.com/13770206/2143386