1、詳細描述一次加密通訊的過程,結合圖示最佳。
第一階段:ClientHello:
客戶端(通常是瀏覽器)先向服務器發出加密通信的請求,這被叫做ClientHello請求??蛻舳讼蚍掌魈峁┮韵滦畔ⅲ?br /> 支持的協議版本,比如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.www58058.com/64947
寫的很棒,tcp的三次握手寫了,但是四次斷開沒有寫,三次握手是不是寫的也不太對,在仔細想想