馬哥教育網絡班22期+第十一周課程練習

1、詳細描述一次加密通訊的過程,結合圖示最佳。
bg2014020502.png
第一階段: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

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

相關推薦

  • vim學習

    vim學習 認識與介紹   vim是一款linux下查看編輯文本文件的一款文本編輯器。一般用來查看修改配置文件、日志文件等文本類文件。 打開文件   vim [OPTIONS] [FILE …]     +#: 打開文件后,直接讓文件處于第#行     +/…

    Linux干貨 2016-10-09
  • 如何學好C語言

    有人在酷殼的留言版上詢問下面的問題 keep_walker : 今天晚上我看到這篇文章。 http://programmers.stackexchange.com/questions/62502/small-c-projects 我也遇到了和提問的老外一樣的問題。。能給像遇到這樣煩惱的程序員一點建議嘛?謝謝! 我相信,這可能是很多朋友的問題,我以前…

    Linux干貨 2016-08-15
  • Linux 文本查看及處理工具&&用戶和組管理

    1、列出當前系統上所有已登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。 ~]# who | cut -d ' ' -f 1 | sort -u 2、取出最后登入到當前系統的相關信息。 ~]# last&…

    Linux干貨 2016-10-05
  • 設計模式 ( 十四 ) 迭代器模式Iterator(對象行為型)

    1.概述 類中的面向對象編程封裝應用邏輯。類,就是實例化的對象,每個單獨的對象都有一個特定的身份和狀態。單獨的對象是一種組織代碼的有用方法,但通常你會處理一組對象或者集合。 集合不一定是均一的。圖形用戶界面框架中的 Window 對象可以收集任意數量的控制對象 - Menu、Slider 和 Button。并且,集合的實現可以有多種方式:PHP 數字是一個集…

    Linux干貨 2015-07-19
  • 內核及模塊管理

    內核及模塊管理基礎 查詢程序的依賴庫 ldd命令ldd [OPTION]…FILE…     [root@centos6 ~]# ldd /bin/ls         linux-vd…

    Linux干貨 2016-09-19
  • 馬哥教育網絡班21期+第六周課程練習

    第六周作業 1、復制/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加#; cp /etc/rc.d/rc.sysinit /tmpvim /tmp/rc.sysinit # 命令模式下,輸入一下內容:%s@\(^[[:space:]]…

    Linux干貨 2016-10-17

評論列表(1條)

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

    寫的很棒,tcp的三次握手寫了,但是四次斷開沒有寫,三次握手是不是寫的也不太對,在仔細想想

欧美性久久久久