马哥教育网络班22期+第十一周课程练习

1、详细描述一次加密通讯的过程,结合图示最佳。
bg2014020502.png
第一阶段:ClientHello:
    客户端(通常是浏览器)先向服务器发出加密通信的请求,这被叫做ClientHello请求。客户端向服务器提供以下信息:
        支持的协议版本,比如TLS 1.2
        客户端生成的一个随机数,稍后用于生成“会话密钥”
        支持的加密算法,比如AES、3DES、RSA
        支持的压缩算法

第二阶段:ServerHello
    服务器收到客户端的请求后,向客户端发出回应,这叫做SeverHello。服务器的回应包含以下内容:
        确认使用的加密通信协议版本,比如TLS 1.2
        服务器端生成的一个随机数,稍后用于生成“会话密钥”
        确认使用的加密方法
        服务器证书

第三阶段:
    客户端收到服务器回应以后,首先验证服务器证书,是否可信发证机构、证书完整性、证书持有者与实际域名是否一致、证书有效期、是否被吊销等。在确认无误后从证书中取出服务器公钥,然后发送以下信息给服务器端:
        一个随机数,用于服务器公钥加密
        编码变更通知,表示随后的信息都将用双方商定的加密方法和密钥发送
        客户端握手结束通知

第四阶段:
    服务器收到客户端发来的第三个随机数pre-master-key之后,计算生成本地会话所有用到的“会话密钥”,向客户端发送如下信息:
        编码变更通知,表示随后的信息都将用双方商定的加密方法和密钥发送
        服务端握手结束通知

2、描述创建私有CA的过程,以及为客户端发来的证书请求进行颁发证书。
创建私有CA;
    在确定配置为CA的服务器上生成一个自签证书,并为CA提供所需要的目录及文件即可。

    步骤:
        (1)生成私钥
            ~]# (umask 077; openssl genrsa -out /etc/pki/CA/private/cakey.pem 4096)
        (2)生成自签证书
            ~]# openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 3650
                -new:生成新证书签署请求
                -x509:生成自签格式证书,专用于创建私有CA时
                -key:生成请求时用到的私钥文件路径
                -out:生成的请求文件路径;如果是自签操作将直接生成签署过的证书
                -days:证书的有效时长,单位是天
        (3)为CA提供所需要的目录及文件(如果存在则无需手动创建)
            ~]# mkdir -pv /etc/pki/CA/{certs,crl,newcerts}
            ~]# touch /etc/pki/CA/{serial,index.txt}
            ~]# echo 01 > /etc/pki/CA/serial

为客户端发来的证书请求进行颁发证书:    
    需要在客户端生成证书请求,然后以安全的方式将证书请求发送给CA,再由CA进行签署证书:

    步骤:
        (1)在客户端主机生成私钥
            ~]# (umask 077; openssl genrsa -out /etc/httpd/ssl/httpd.key 2048)
        (2)生成证书签署请求
            ~]# openssl req -new -key /etc/httpd/ssl/httpd.key -out /etc/httpd/ssl/httpd.csr -days 365
        (3)将请求通过可靠方式发送给CA主机
            ~]# scp /etc/httpd/ssl/httpd.csr root@CA_HOSTNAME:/tmp/

        (4)在CA主机上签署证书
            ~]# openssl ca -in /tmp/httpd.csr -out /etc/pki/CA/certs/httpd.crt -days 365

        (5)将签署完成的证书发送到请求客户端主机
            ~]# scp /etc/pki/CA/certs/httpd.crt root@require_hostname:/etc/httpd/ssl/
3、描述DNS查询过程以及DNS服务器类别。
DNS查询过程:
    Client –> hosts文件 –> DNS Local Cache –> DNS Server(recursion递归请求) –>
                自己负责解析的域:直接查询数据库并返回答案
                不是自己负责解析域:Server Cache –> iteration(迭代)
DNS服务器类别:
    主DNS服务器:维护所负责解析的域的数据库的那台服务器;读写操作均可进行
    从DNS服务器:从主DNS服务器那里或其它的从DNS服务器那里“复制”一份解析库;但只能进行读操作

4、搭建一套DNS服务器,负责解析magedu.com域名(自行设定主机名及IP)
  (1) 能够对一些主机名进行正向解析和逆向解析;
  (2) 对子域cdn.magedu.com进行子域授权,子域负责解析对应子域中的主机名;
  (3) 为了保证DNS服务系统的高可用性,请设计一套方案,并写出详细的实施过程。

准备三台服务器,均安装bind程序;关闭防火墙和selinux
# yum -y install bind

(1)配置S1服务器进行正向解析和逆向解析
# vim /etc/resolv.conf
nameserver 192.168.20.158
# vim /etc/named.conf
listen-on port 53 { 192.168.20.158; };
allow-query     { any; };
dnssec-enable no;
dnssec-validation no;
# vim /etc/named.rfc1912.zones
zone "magedu.com" IN {
    type master;
    file "magedu.com.zone";
};

zone "20.168.192.in-addr.arpa" IN {
    type master;
    file "20.168.192.zone";
};
# vim /var/named/magedu.com.zone
$TTL 3600
$ORIGIN magedu.com.
@   IN  SOA ns1.magedu.com. admin.magedu.com. (
        2016122701
        2H
        10M
        1W
        1D )
    IN  NS  ns1
ns1 IN  A   192.168.20.158
www IN  A   192.168.20.133
# vim /var/named/20.168.192.zone
$TTL 3600
$ORIGIN 20.168.192.in-addr.arpa.
@       IN      SOA     ns1.magedu.com.  nsadmin.magedu.com. (
        16122701
        1H
        10M
        3D
        12H )
    IN      NS      ns1.magedu.com.
158      IN      PTR     ns1.magedu.com.
133      IN      PTR     www.magedu.com.
# chown :named /var/named/magedu.com.zone /var/named/20.168.192.zone
# chmod 640 /var/named/magedu.com.zone /var/named/20.168.192.zone
检查named配置文件及区域配置文件:
# named-checkconf
# named-checkzone magedu.com /var/named/magedu.com.zone
# named-checkzone 20.168.192.in-addr.arpa /var/named/20.168.192.zone
# systemctl start named.service
测试解析:
# dig -t A www.magedu.com
# dig -x 192.168.20.133

(2)配置S2为子域服务器
# vim /etc/resolv.conf
nameserver 192.168.20.51
# vim /etc/named.conf
listen-on port 53 { 192.168.20.51; };
allow-query     { any; };
dnssec-enable no;
dnssec-validation no;
# vim /etc/named.rfc1912.zones
zone "cdn.magedu.com" IN {
    type master;
    file "cdn.magedu.com.zone";
};
# vim /var/named/cdn.magedu.com.zone
$TTL 3600
$ORIGIN cdn.magedu.com.
@   IN  SOA ns1.cdn.magedu.com. admin.magedu.com. (
        122701
        2H
        10M
        1W
        1D )
    IN  NS  ns1
ns1 IN  A   192.168.20.51
www IN  A   192.168.20.199
# chown :named /var/named/cdn.magedu.com.zone
# chmod 640 /var/named/cdn.magedu.com.zone
检查named配置文件及区域配置文件:
# named-checkconf
# named-checkzone cdn.magedu.com /var/named/cdn.magedu.com.zone
# systemctl start named.service
在主域S1上的配置:
# vim /var/named/magedu.com.zone
cdn IN  NS  ns1.cdn
ns1.cdn IN  A   192.168.20.51
# rndc reload
测试解析:
# dig -t A www.cdn.magedu.com

(3)配置主从服务器实现DNS服务的高可用;S1为主服务器,S3为从服务器
从服务器S3上的配置:
# vim /etc/resolv.conf
nameserver 192.168.20.50
# vim /etc/named.conf
listen-on port 53 { 192.168.20.50; };
allow-query     { any; };
dnssec-enable no;
dnssec-validation no;
# vim /etc/named.rfc1912.zones
zone "magedu.com" IN {
    type slave;
    file "slaves/magedu.com.zone";
    masters { 192.168.20.158; };
};
# named-checkconf
# systemctl start named.service
主服务器S1上的配置:
# vim /var/named/magedu.com.zone
    IN  NS  ns2
ns2 IN  A   192.168.20.50
注意:每次修改主服务器的区域配置文件都需要变更serial,然后在从服务器重载named服务
# rndc reload
测试解析:
# dig -t A www.cdn.magedu.com @192.168.20.158
# dig -t A www.cdn.magedu.com @192.168.20.50

原创文章,作者:萝卜,如若转载,请注明出处:http://www.178linux.com/64947

(0)
萝卜萝卜
上一篇 2016-12-27
下一篇 2016-12-27

相关推荐

  • 磁盘管理与文件系统

      关于磁盘与文件系统大致思路:要想对磁盘进行充分利用,必须要对磁盘进行分区,第二步就是要对分区进行高级格式化,也就是在分区上创建文件系统,在此过程中可以对磁盘的各种属性进行自定义。打个比方来说,创建磁盘分区好比刚买来一个毛坯房,还未装修,还不适宜人居住,那么创建文件系统就好比在光秃秃的毛坯房上进行了装修,这样才更适于人居住使用。 要想搞懂磁盘,首…

    Linux干货 2016-08-30
  • 文件元数据信息的含义、查看方法,和文件时间戳信息的修改方法

    文件数据分成两类 元数据,英文叫metadata,是数据的属性; 数据,英文叫data,是数据本身; 使用stat命令查看元数据信息 [0][root@localhost mylinux]# stat /etc/passwd File: ‘/etc/passwd’ Size: 889 Blocks: 8 IO Block: 4096 regular file…

    Linux干货 2018-03-01
  • Linux网络管理之路由和team网络组

    如何实现把linux当路由器来使用,实现不同网段之间的通信访问,这就是今天所要实现的路由配置   环境准备:4台虚拟机,两台中间两台作为路由器来使用(每天主机两块网卡),其他两台作为终端主机,目的是让不同网段的两台主机之间互相访问(这里在vmware里面做的实验,所以网卡的类型都设置为桥接)   拓扑图:   步骤一:将A、D两…

    系统运维 2016-09-10
  • Linux中基础且常用的指令介绍及示例

    首先需要明确的是:Linux中无论是指令还是选项或者参数,请认真对待字母大小写。Linux中通用的命令使用方式是:命令 [选项] [参数] 1. pwd pwd:print name of current/working directory,即打印当前的目录(工作目录),光杆处于哪个目录下就会在终端上输出当前路径的绝对路径。用法示例: [lanti…

    Linux干货 2016-10-30
  • 设计模式 ( 十七) 状态模式State(对象行为型)

    设计模式 ( 十七) 状态模式State(对象行为型) 1.概述 在软件开发过程中,应用程序可能会根据不同的情况作出不同的处理。最直接的解决方案是将这些所有可能发生的情况全都考虑到。然后使用if… ellse语句来做状态判断来进行不同情况的处理。但是对复杂状态的判断就显得“力不从心了”。随着增加新的状态或者修改一个状体(if else(或swit…

    Linux干货 2015-07-27
  • 运维成长记

     在学校里学到的是知识,而企业更看重的是技能和能力。我们需要把知识先转化为技能,然后实践中通过总结提升,转变为自己的能力。这个过程或许会很漫长,但是时间会证明一切。成长的过程注定是痛苦的,欲戴王冠,必承其重!我们有理由相信:运气也是实力的一部分! 第一次接触linux还是在大学的课堂上,看着老师在物理机上用VM虚拟出一台Ubuntu的时候,真实感觉…

    Linux干货 2017-07-11

评论列表(1条)

  • 马哥教育
    马哥教育 2017-01-04 16:12

    写的很棒,tcp的三次握手写了,但是四次断开没有写,三次握手是不是写的也不太对,在仔细想想