OPENSSL&DNS

 

1、详细描述一次加密通讯的过程,结合图示最佳。

  • Client 从互联网下载CA的公钥,用于验证Server身份

  • Server 通过加密算法生成一对密钥,将公钥发给CA认证机构,做数字证书

  • CA 通过自己的私钥加密 Server 公钥并加上自己的数字签名后,将生成的数字证书发给Server

  • Client 与 Server 通TCP的三次握手建立连接

  • Client 发出HTTP的报文请求,并和Server协商使用哪种算法加密

  • Server 响应报文并将公钥(CA证书)发送给客户端

  • Client 能通过CA的公钥解密CA证书,得到Server的公钥和数字签名,Client 通过散列函数算出Server公钥的数字签名与得到的数字签名对比,来验证Server身份,验证成功并发送数据请求

  • Server 处理请求,并根据Client请求的资源类型,来访问相关资源做出响应报文,并记录日志

  • Client 与 Server 通过TCP的四次挥手断开连接,通信完成

2、描述创建私有CA的过程,以及为客户端发来的证书请求进行颁发证书。

第一步,创建CA机构    
   修改配置文件      
   自己生成一对密钥 (私钥加密http公钥)      
   生成自签证书

第二步,客户端    
   生成一对密钥      
   生成证书颁发请求—.csr      
   将请求发给CA

第三步,CA机构    
   签署此证书      

   传送给客户端

第一步:

创建私有CA机构

~]# cd /etc/pki/CA/

CA]# (umask 077;openssl genrsa -out private/cakey.pem 2048)

Generating RSA private key, 2048 bit long modulus

…………………………………………+++

……..+++

e is 65537 (0x10001)

CA]# ls -l private/

总用量 4

-rw——- 1 root root 1679 12月  1 01:28 cakey.pem

CA]# openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 365

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

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

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

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

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

Common Name (eg, your name or your server's hostname) []:CPTW.COM.CN

Email Address []:MAIL.CPTW.COM.CN

[root@localhost CA]# touch index.txt

[root@localhost CA]# echo 01 > serial

第二步:

客户端的证书请求

秘钥加密

~]# cd /etc/httpd/

httpd]# ls

conf  conf.d  conf.modules.d  logs  modules  run

httpd]# mkdir ssl

httpd]# cd ssl

ssl]# ls

ssl]# (umask 077;openssl genrsa -out httpd.key 1024)

Generating RSA private key, 1024 bit long modulus

……..++++++

……..++++++

e is 65537 (0x10001)

[root@localhost ssl]# ls

httpd.key

证书请求

ssl]# openssl req -new -key httpd.key -out httpd.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

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

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

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

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

Common Name (eg, your name or your server's hostname) []:WWW.CPTW.COM.CN

Email Address []:MAIL.CPTW.COM.CN

Please enter the following 'extra' attributes

to be sent with your certificate request

A challenge password []:

An optional company name []:

[root@localhost ssl]# ls

httpd.csr  httpd.key

第三步:

将证书发送给颁发证书机构进行签证

tmp]# openssl ca -in /tmp/httpd.csr -out /tmp/httpd.crt -days 365

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

Check that the request matches the signature

Signature ok

Certificate Details:

        Serial Number: 1 (0x1)

        Validity

            Not Before: Nov 30 18:08:27 2016 GMT

            Not After : Nov 30 18:08:27 2017 GMT

        Subject:

            countryName               = CN

            stateOrProvinceName       = SZ

            organizationName          = CPTW

            organizationalUnitName    = OPS

            commonName                = WWW.CPTW.COM.CN

            emailAddress              = MAIL.CPTW.COM.CN

        X509v3 extensions:

            X509v3 Basic Constraints:

                CA:FALSE

            Netscape Comment:

                OpenSSL Generated Certificate

            X509v3 Subject Key Identifier:

                C2:C2:F3:E3:91:CC:82:96:B2:38:CB:23:84:F4:4F:93:FF:32:FC:BD

            X509v3 Authority Key Identifier:

                keyid:F0:26:D0:A8:94:A9:81:E2:C5:C0:5A:95:5B:D3:1B:BB:BB:28:59:87

Certificate is to be certified until Nov 30 18:08:27 2017 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

3、描述DNS查询过程以及DNS服务器类别。

DNS查询过程:

     (1)、本地解析

客户端操作系统上都运行着一个DNS客户端程序,当其他程序提出DNS查询请求时,这个查询请求要传送至DNS客户端程序。DNS客户端程序首先使用本地缓存信息进行解析,如果可以解析所要查询的名称,则DNS客户端程序就直接应答该查询,而不需要向DNS服务器查询,该DNS查询处理过程结束(/etc/hosts)

 1.png

     (2)、直接解析

如果DNS客户端程序不能从本地DNS缓存中回答客户端的DNS查询,向客户端所设定的局部DNS服务器发送一个查询请求,要求局部DNS服务器进行解析。局部DNS服务器得到这个查询请求,首先查看所要求查询的域名自己能否解析,如果能解析,则直接应答,如不能,在查看自己的DNS缓存,如果可以从缓存中解析,则也是直接给予回应

 3.png

     (3)、递归解析

当局部DNS服务器无法进行DNS解析时,它就需要向其他DNS服务器进行查询。此时有两种方式:递归方式,局部DNS服务器自己负责向其它DNS服务器进行查询,一般是先向该域名的根域名服务器查询,再由根域名服务器一级级向下查询。最后得到的查询结果返回给局部DNS,再由局部DNS服务器返回给客户端

 3.png

     (4)、迭代解析

当局部DNS服务器自己不能回答客户端的DNS查询时,也可以通过迭代查询的方式进行解析。局部DNS服务器不是自己向其他DNS服务器进行查询,而是把能解析该域名的其它DNS服务器的IP地址返回给客户端的DNS程序,客户端DNS程序再继续想这些DNS服务器进行查询,知道得到结果为止。

 4.png

备注:摘自http://blog.sina.com.cn/s/blog_4078ccd60101cj6r.html

DNS服务器类别

     负责解析至少一个域:

          主名称服务器;

          辅助名称服务器;

     不负责域解析:

          缓存名称服务器;

4、搭建一套DNS服务器,负责解析magedu.com域名(自行设定主机名及IP)

  (1)、能够对一些主机名进行正向解析和逆向解析;

  (2)、对子域cdn.magedu.com进行子域授权,子域负责解析对应子域中的主机名;

  (3)、为了保证DNS服务系统的高可用性,请设计一套方案,并写出详细的实施过程

主从DNS

一、主服务器部分需要在bind的主配置文件/etc/named.conf中定义允许哪些从服务器来同步信息

allow-transfer {};  允许向哪些主机做区域传送;默认为向所有主机;应该配置仅允许从服务器;

allow-transfer { 192.168.150.132; };

二、主服务器上还需要在正向解析库文件中添加从服务器的ns解析记录

[root@node1 ~]# cat /var/named/void.com.zone

$TTL 3600

$ORIGIN void.com.

@    IN    SOA    ns1.void.com.    admin.void.com. (

        20161028     修改完配置文件后序列号手动进行+1操作

        1H

        10M

        3D

        1D )

    IN     NS    ns1

    IN     NS    ns2

ns1    IN    A     192.168.150.128

ns2    IN    A    192.168.150.132

www    IN    A    192.168.150.128

web    IN    CNAME    www

bbs     IN    A    192.168.150.129

配置修改检查named-checkzone void.com.zone /var/named/void.com.zone

三、在从服务器上只用修改bind的配置文件/etc/named.rfc1912.zones,数据库解析文件不需要定义(因为要从主服务器上传送过来)

zone "void.com" IN {

    type slave;

    file "slaves/void.com.zone";

    masters { 192.168.150.128; };

};

注意:时间要同步;

     ntpdate命令;

配置文件语法检查:named-checkconf

四、重载配置

rndc  reload

systemctl  reload  named.service

日志查看/var/log/messages

从服务器解析

[root@node2 ~]# dig -t A www.void.com @192.168.150.132

; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.4 <<>> -t A www.void.com @192.168.150.132

;; global options: +cmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 56277

;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3

;; OPT PSEUDOSECTION:

; EDNS: version: 0, flags:; udp: 4096

;; QUESTION SECTION:

;www.void.com.            IN    A

;; ANSWER SECTION:

www.void.com.        3600    IN    A    192.168.150.128

;; AUTHORITY SECTION:

void.com.        3600    IN    NS    ns1.void.com.

void.com.        3600    IN    NS    ns2.void.com.

;; ADDITIONAL SECTION:

ns1.void.com.        3600    IN    A    192.168.150.128

ns2.void.com.        3600    IN    A    192.168.150.132

;; Query time: 0 msec

;; SERVER: 192.168.150.132#53(192.168.150.132)

;; WHEN: 三 10月 26 21:11:43 CST 2016

;; MSG SIZE  rcvd: 125

从服务器slaves文件

[root@node2 ~]# ls -l /var/named/slaves/

总用量 4

-rw-r–r– 1 named named 378 10月 26 12:11 void.com.zone

子域授权

授权原理是在本域名服务器上的正向解析库文件当中定义子域对应的DNS服务器的主机名和其A记录即可

[root@node1 ~]# cat /var/named/void.com.zone

$TTL 3600

$ORIGIN void.com.

@    IN    SOA    ns1.void.com.    admin.void.com. (

        20161028

        1H

        10M

        3D

        1D )

    IN     NS    ns1

    IN     NS    ns2

ops.void.com     IN     NS     ns1.ops.void.com.     主要添加NS记录

ns1    IN    A     192.168.150.128

ns2    IN    A    192.168.150.132

www    IN    A    192.168.150.128

web    IN    CNAME    www

bbs     IN    A    192.168.150.129

ns1.ops.void.com     IN     A     192.168.150.129     还有对应的A记录

另外,子域还需要定义其对应子域的解析库文件,这样才能对子域进行解析。配置过程同上面的配置相同。

    子域授权:

        正向解析区域授权子域的方法:

            ops.magedu.com.         IN     NS      ns1.ops.magedu.com.

            ops.magedu.com.         IN     NS      ns2.ops.magedu.com.

            ns1.ops.magedu.com.     IN     A     IP.AD.DR.ESS

            ns2.ops.magedu.com.     IN     A     IP.AD.DR.ESS

        定义转发:

            注意:被转发的服务器必须允许为当前服务做递归;

            (1) 区域转发:仅转发对某特定区域的解析请求;

                zone  "ZONE_NAME"  IN {

                    type  forward;

                    forward  {first|only};

                    forwarders  { SERVER_IP; };

                };

                first:首先转发;转发器不响应时,自行去迭代查询;

                only:只转发;

            (2) 全局转发:针对凡本地没有通过zone定义的区域查询请求,通通转给某转发器;

                options {

                    … …

                    forward  {only|first};

                    forwarders  { SERVER_IP; };

                    .. …

                };

原创文章,作者:N23-苏州-void,如若转载,请注明出处:http://www.178linux.com/62772

(0)
N23-苏州-voidN23-苏州-void
上一篇 2016-12-05
下一篇 2016-12-05

相关推荐

  • 复制多台虚拟机及简单的网络配置

    虚拟机的复制,网络地址的简单配置,图形化界面setup和system-config-network的使用

    2017-09-09
  • week1

    一,计算机的组成 五大基本部件 运算器:  算术运算,逻辑运算等各种各样的运算的, 控制器:  控制总线的使用权限,内存寻址 控制权限访问是读还是写               寄存器,内部的存储器,都是用来存储数据的  加速和提高cpu性能   &…

    Linux干货 2016-10-28
  • 学习学习,复习复习,linux基础中的基础

    计算机的组成及其功能          根据冯诺依曼体系结构构成的计算机,应该具备以下几点功能: l  具有把程序、数据输入到计算机的能力 l  具有长期记忆程序、数据、中间结果以及最终结果的能力 l  能够完成各种算术运算、逻辑运算和数据传输的数据…

    Linux干货 2016-09-25
  • 第5周作业

    1、显示当前系统上root、fedora或user1用户的默认shell     ~]# egrep "^(root|fedora|user1)" /etc/passwd 2、找出/etc/rc.d/init.d/functions文件中某单词后面跟一组小括号的行,如:hello();  …

    Linux干货 2017-01-07
  • 循环体

    for 变量名in 列表;do 循环体 done 执行机制: 依次将列表中的元素赋值给“变量名”; 每次赋值后即执行一次循环体; 直到列表中的元素耗尽,循环结束 列表生成方式: (1) 直接给出列表 (2) 整数列表: (a) {start..end} (b) $(seq[start [step]] end) (3) 返回列表的命令  &nbsp…

    Linux干货 2016-08-21

评论列表(1条)

  • 马哥教育
    马哥教育 2016-12-16 15:24

    赞,加密通讯可以自己画个图来描述下~~继续加油~