马哥教育网络班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

相关推荐

评论列表(1条)

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

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