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

相关推荐

  • 压缩及解压工具

    通过算法压缩数据,时间换空间。文本文件的压缩比更大,二进制文件的压缩比较小。 压缩工具占用cpu时钟。 compress/uncompress .Z gzip/gunzip .gz bzip2/bunzip2 .bz2 压缩比比gz大但是也没取代gz xz/unxz .xz 压缩比大,现在较流行。 zip/unzip .zip 归档工具,既能归档又能压缩 t…

    Linux干货 2016-08-21
  • 文件查找工具之——find

        前言:Linux一切皆文件,在linux的系统中如果我们需要找到所需的文件,除了一步一步慢慢找,还有一种办法就是要使用Linux中查找文件工具命令,能让我们很快定位到我们所需的文件。所以我们必须要学好文件查找工具 一、首先我们先要了解文本搜索和文件查找的区别     文本…

    Linux干货 2015-07-06
  • Linux 系统启动流程及bash 脚本编程练习

    马哥教育网络班23期 第10周课堂练习 Linux 系统启动流程及bash 脚本编程练习1、请详细描述CentOS系统的启动流程(详细到每个过程系统做了哪些事情) 2、为运行于虚拟机上的CentOS 6添加一块新硬件,提供两个主分区; (1)为硬盘新建两个主分区;并为其安装grub; (2)为硬盘的第一个主分区提供内核和ramdisk文件;为第二个分区提供r…

    Linux干货 2017-01-23
  • Linux Bash Shell有关变量

    bash 创建一个子bash-n 查看是否有错误-x 逐行显示信息$:显示当前PIDPPID :显示父进程PIDSHLVL :显示当前shell是几级shellpstree 显示进程树-p 同时显示进程号ps -ef 显示进程信息 本地变量 :仅对当前SHELL有效,对子SHELL也无效环境变量:对当前SHELL及子SHELL均有效。 set 显示本地变量和…

    2017-09-16
  • shell脚本编程之函数

      在编写脚本时经常会遇到某个任务需要重复使用的问题,需每次都要输入同样的代码是件挺烦人的事情,还好可以通过编写函数还简化这项工作。   函数其实就是给一段代码起个名字,在每次使用这段代码的时候可以直接使用函数名来调用就可以了。 一、创建函数   创建函数的格式有两种:   格式1:function 函数名{ &nbs…

    Linux干货 2016-01-05
  • MooseFS性能图表[原创]

    对MooseFS有了一定的了解,现在可以压压它的性能了,使用的是iozone IO测试工具。测试命令为:./iozone -a -n 512m -g 4g -i 0 -i 1 -f /mnt/mfs/logs/test.tar.gz -Rb ./iozone.xls -C测试说明1、/mnt/mfs/logs/test.tar.gz大小为9.2G,大于服务器…

    Linux干货 2015-03-27

评论列表(1条)

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

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