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

相关推荐

  • 课后习题3–正则表达式

    1、查出分区空间使用率的最大百分比值 [root@centos7 ~]# df | grep "^/dev" | grep -v "cdrom$" | tr ' '&nb…

    Linux干货 2016-08-07
  • SELinux在httpd服务端中的使用

    一、启用SELinux策略并安装httpd服务,改变网站的默认主目录为/website,添加SELinux文件标签规则,使网站可访问(以CentOS7系统操作) 1、首先查看本系统是否已经安装httpd服务 2、查看httpd的配置文件所在路径 3、创建主目录为/website与网页文件"index.html",并更改httpd服务为该路…

    Linux干货 2016-09-16
  • LNAMP Shell 部署脚本

    LNAMP Shell 部署脚本 学习总结: 这个脚本,早期是出于对个人学习Shell的总结而写,应该有些年头了,目前也在一边学马哥视频的基础上陆续完善,10月初才完成LNAMP环境的分离式部署,并减少整个Shell脚本各部分的依赖关系。 我是网络班13期高级班的学员,因个人做了几年Linux运维,所以目前整个高级班的课程,我是跳着看了集群(LVS + Ke…

    Linux干货 2015-10-27
  • 堡垒机-麒麟开源堡垒机SSH公私钥认证配置文档

    1、进入SSH公私钥管理界面 操作步骤:进入系统,点击左侧导航资产管理,后边TAB标签导航SSH公私钥,如下图     2、批量导入SSH公私钥: SSH公私钥管理界面,点击下方”导入“,进入导入页面上传公私钥,     上传说明: 1) 讲所有的公私钥放到一个名为pvt的空文件夹中。 2) 在同样…

    Linux干货 2016-05-29
  • 软件包管理(rpm篇)

    软件包管理(rpm篇)静态和动态链接    链接主要作用是把各个模块之间相互引用的部分处理好,使得各个模块之间能够正确地衔接,分为静态链接和动态链接    静态链接        把程序对应的依赖库复制一份到包&nbsp…

    Linux干货 2017-04-24
  • apache工作模式及虚拟主机的配置

    apache的工作模式 MPM 名词解释MPM   Multipath Process Module 多道处理模块。Linux中常使用prefork worker event三种MPM 即apache常用的三种工作模式。 prefork prefork为多进程模型,每个进程响应一个请求。其工作过程简单说来就是一个主进程:负责生成n个 子进程(子进程…

    Linux干货 2016-07-02

评论列表(1条)

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

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