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 20:36
下一篇 2016-12-05 21:15

相关推荐

  • rpm包管理、yum仓库、ftp、http服务、编译安装

    一、软件包管理 1.1 软件包管理 API:Application Programming Interface  应用程序开发接口;程序员面对的编程接口 POSIX:portable operating system:可移植操作系统接口 v   程序源代码 –> 预处理 …

    Linux干货 2016-11-27
  • DHCP

    DHCP DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)通常被应用在大型的局域网络环境中,主要作用是集中的管理、分配IP地址,使网络环境中的主机动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。 DHCP协议采用客户端/服务器模型,主机地址的动态分配任务由网络主机驱动…

    Linux干货 2016-11-07
  • 马哥教育网络班22期+第8周课程练习

    week8: 1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。 网桥也叫桥接器,是连接两个局域网的一种存储/转发设备,它能将一个大的LAN分割为多个网段, 或将两个以上的LAN互联为一个逻辑LAN,使LAN上的所有用户都可访问服务器。 它工作于OSI(开放系统互联参考模型)参考模型第二层,即“数据链路层”。 集线器的英文称为“H…

    Linux干货 2016-10-09
  • 8月9日vim作业

    复制/etc/rc.d/init.d/functions文件至/tmp目录;替换/tmp/functions文件中的/etc/sysconfig/init为/var/log; :%s@/etc/sysconfig@/var/log@ 删除/tmp/functions文件中所有以#开头,且#后面至少有一个空白字符的行的行首的#号 :%s@^#\([[:spac…

    Linux干货 2016-08-10
  • shell脚本之变量、运算、条件测试。

    概述 程序:指令+数据 程序编程风格: 过程式:以指令为中心,数据服务于指令 对象式:以数据为中心,指令服务于数据 shell程序:提供了编程能力,解释执行 计算机:运行二进制指令; 编程语言: 低级:             汇编 高级:…

    Linux干货 2016-08-15
  • 编程真难啊

    上周,在Sun的Java论坛上出现了一个这样的帖子,这个贴子的链接如下:http://forums.sun.com/thread.jspa?threadID=5404590&start=0&tstart=0 LZ的贴子翻译如下: 大家好,我是一个Java的新手,我有一个简单的问题:请问我怎么才能反转一个整数的符号啊。比如把-12转成+12。是…

    Linux干货 2015-04-03

评论列表(1条)

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

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