1、详细描述一次加密通讯的过程,结合图示最佳。
第一阶段: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
评论列表(1条)
写的很棒,tcp的三次握手写了,但是四次断开没有写,三次握手是不是写的也不太对,在仔细想想