OPENSSL&DNS

 

1、詳細描述一次加密通訊的過程,結合圖示最佳。

  • Client 從互聯網下載CA的公鑰,用于驗證Server身份

  • Server 通過加密算法生成一對密鑰,將公鑰發給CA認證機構,做數字證書

  • CA 通過自己的私鑰加密 Server 公鑰并加上自己的數字簽名后,將生成的數字證書發給Server

  • Client 與 Server 通TCP的三次握手建立連接

  • Client 發出HTTP的報文請求,并和Server協商使用哪種算法加密

  • Server 響應報文并將公鑰(CA證書)發送給客戶端

  • Client 能通過CA的公鑰解密CA證書,得到Server的公鑰和數字簽名,Client 通過散列函數算出Server公鑰的數字簽名與得到的數字簽名對比,來驗證Server身份,驗證成功并發送數據請求

  • Server 處理請求,并根據Client請求的資源類型,來訪問相關資源做出響應報文,并記錄日志

  • Client 與 Server 通過TCP的四次揮手斷開連接,通信完成

2、描述創建私有CA的過程,以及為客戶端發來的證書請求進行頒發證書。

第一步,創建CA機構    
   修改配置文件      
   自己生成一對密鑰 (私鑰加密http公鑰)      
   生成自簽證書

第二步,客戶端    
   生成一對密鑰      
   生成證書頒發請求—.csr      
   將請求發給CA

第三步,CA機構    
   簽署此證書      

   傳送給客戶端

第一步:

創建私有CA機構

~]# cd /etc/pki/CA/

CA]# (umask 077;openssl genrsa -out private/cakey.pem 2048)

Generating RSA private key, 2048 bit long modulus

…………………………………………+++

……..+++

e is 65537 (0x10001)

CA]# ls -l private/

總用量 4

-rw——- 1 root root 1679 12月  1 01:28 cakey.pem

CA]# openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 365

You are about to be asked to enter information that will be incorporated

into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN.

There are quite a few fields but you can leave some blank

For some fields there will be a default value,

If you enter '.', the field will be left blank.

—–

Country Name (2 letter code) [XX]:CN

State or Province Name (full name) []:SZ

Locality Name (eg, city) [Default City]:SZ

Organization Name (eg, company) [Default Company Ltd]:CPTW

Organizational Unit Name (eg, section) []:OPS

Common Name (eg, your name or your server's hostname) []:CPTW.COM.CN

Email Address []:MAIL.CPTW.COM.CN

[root@localhost CA]# touch index.txt

[root@localhost CA]# echo 01 > serial

第二步:

客戶端的證書請求

秘鑰加密

~]# cd /etc/httpd/

httpd]# ls

conf  conf.d  conf.modules.d  logs  modules  run

httpd]# mkdir ssl

httpd]# cd ssl

ssl]# ls

ssl]# (umask 077;openssl genrsa -out httpd.key 1024)

Generating RSA private key, 1024 bit long modulus

……..++++++

……..++++++

e is 65537 (0x10001)

[root@localhost ssl]# ls

httpd.key

證書請求

ssl]# openssl req -new -key httpd.key -out httpd.csr

You are about to be asked to enter information that will be incorporated

into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN.

There are quite a few fields but you can leave some blank

For some fields there will be a default value,

If you enter '.', the field will be left blank.

—–

Country Name (2 letter code) [XX]:CN

State or Province Name (full name) []:SZ

Locality Name (eg, city) [Default City]:SZ

Organization Name (eg, company) [Default Company Ltd]:CPTW

Organizational Unit Name (eg, section) []:OPS

Common Name (eg, your name or your server's hostname) []:WWW.CPTW.COM.CN

Email Address []:MAIL.CPTW.COM.CN

Please enter the following 'extra' attributes

to be sent with your certificate request

A challenge password []:

An optional company name []:

[root@localhost ssl]# ls

httpd.csr  httpd.key

第三步:

將證書發送給頒發證書機構進行簽證

tmp]# openssl ca -in /tmp/httpd.csr -out /tmp/httpd.crt -days 365

Using configuration from /etc/pki/tls/openssl.cnf

Check that the request matches the signature

Signature ok

Certificate Details:

        Serial Number: 1 (0x1)

        Validity

            Not Before: Nov 30 18:08:27 2016 GMT

            Not After : Nov 30 18:08:27 2017 GMT

        Subject:

            countryName               = CN

            stateOrProvinceName       = SZ

            organizationName          = CPTW

            organizationalUnitName    = OPS

            commonName                = WWW.CPTW.COM.CN

            emailAddress              = MAIL.CPTW.COM.CN

        X509v3 extensions:

            X509v3 Basic Constraints:

                CA:FALSE

            Netscape Comment:

                OpenSSL Generated Certificate

            X509v3 Subject Key Identifier:

                C2:C2:F3:E3:91:CC:82:96:B2:38:CB:23:84:F4:4F:93:FF:32:FC:BD

            X509v3 Authority Key Identifier:

                keyid:F0:26:D0:A8:94:A9:81:E2:C5:C0:5A:95:5B:D3:1B:BB:BB:28:59:87

Certificate is to be certified until Nov 30 18:08:27 2017 GMT (365 days)

Sign the certificate? [y/n]:y

1 out of 1 certificate requests certified, commit? [y/n]y

Write out database with 1 new entries

Data Base Updated

3、描述DNS查詢過程以及DNS服務器類別。

DNS查詢過程:

     (1)、本地解析

客戶端操作系統上都運行著一個DNS客戶端程序,當其他程序提出DNS查詢請求時,這個查詢請求要傳送至DNS客戶端程序。DNS客戶端程序首先使用本地緩存信息進行解析,如果可以解析所要查詢的名稱,則DNS客戶端程序就直接應答該查詢,而不需要向DNS服務器查詢,該DNS查詢處理過程結束(/etc/hosts)

 1.png

     (2)、直接解析

如果DNS客戶端程序不能從本地DNS緩存中回答客戶端的DNS查詢,向客戶端所設定的局部DNS服務器發送一個查詢請求,要求局部DNS服務器進行解析。局部DNS服務器得到這個查詢請求,首先查看所要求查詢的域名自己能否解析,如果能解析,則直接應答,如不能,在查看自己的DNS緩存,如果可以從緩存中解析,則也是直接給予回應

 3.png

     (3)、遞歸解析

當局部DNS服務器無法進行DNS解析時,它就需要向其他DNS服務器進行查詢。此時有兩種方式:遞歸方式,局部DNS服務器自己負責向其它DNS服務器進行查詢,一般是先向該域名的根域名服務器查詢,再由根域名服務器一級級向下查詢。最后得到的查詢結果返回給局部DNS,再由局部DNS服務器返回給客戶端

 3.png

     (4)、迭代解析

當局部DNS服務器自己不能回答客戶端的DNS查詢時,也可以通過迭代查詢的方式進行解析。局部DNS服務器不是自己向其他DNS服務器進行查詢,而是把能解析該域名的其它DNS服務器的IP地址返回給客戶端的DNS程序,客戶端DNS程序再繼續想這些DNS服務器進行查詢,知道得到結果為止。

 4.png

備注:摘自http://blog.sina.com.cn/s/blog_4078ccd60101cj6r.html

DNS服務器類別

     負責解析至少一個域:

          主名稱服務器;

          輔助名稱服務器;

     不負責域解析:

          緩存名稱服務器;

4、搭建一套DNS服務器,負責解析magedu.com域名(自行設定主機名及IP)

  (1)、能夠對一些主機名進行正向解析和逆向解析;

  (2)、對子域cdn.magedu.com進行子域授權,子域負責解析對應子域中的主機名;

  (3)、為了保證DNS服務系統的高可用性,請設計一套方案,并寫出詳細的實施過程

主從DNS

一、主服務器部分需要在bind的主配置文件/etc/named.conf中定義允許哪些從服務器來同步信息

allow-transfer {};  允許向哪些主機做區域傳送;默認為向所有主機;應該配置僅允許從服務器;

allow-transfer { 192.168.150.132; };

二、主服務器上還需要在正向解析庫文件中添加從服務器的ns解析記錄

[root@node1 ~]# cat /var/named/void.com.zone

$TTL 3600

$ORIGIN void.com.

@    IN    SOA    ns1.void.com.    admin.void.com. (

        20161028     修改完配置文件后序列號手動進行+1操作

        1H

        10M

        3D

        1D )

    IN     NS    ns1

    IN     NS    ns2

ns1    IN    A     192.168.150.128

ns2    IN    A    192.168.150.132

www    IN    A    192.168.150.128

web    IN    CNAME    www

bbs     IN    A    192.168.150.129

配置修改檢查named-checkzone void.com.zone /var/named/void.com.zone

三、在從服務器上只用修改bind的配置文件/etc/named.rfc1912.zones,數據庫解析文件不需要定義(因為要從主服務器上傳送過來)

zone "void.com" IN {

    type slave;

    file "slaves/void.com.zone";

    masters { 192.168.150.128; };

};

注意:時間要同步;

     ntpdate命令;

配置文件語法檢查:named-checkconf

四、重載配置

rndc  reload

systemctl  reload  named.service

日志查看/var/log/messages

從服務器解析

[root@node2 ~]# dig -t A www.void.com @192.168.150.132

; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.4 <<>> -t A www.void.com @192.168.150.132

;; global options: +cmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 56277

;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3

;; OPT PSEUDOSECTION:

; EDNS: version: 0, flags:; udp: 4096

;; QUESTION SECTION:

;www.void.com.            IN    A

;; ANSWER SECTION:

www.void.com.        3600    IN    A    192.168.150.128

;; AUTHORITY SECTION:

void.com.        3600    IN    NS    ns1.void.com.

void.com.        3600    IN    NS    ns2.void.com.

;; ADDITIONAL SECTION:

ns1.void.com.        3600    IN    A    192.168.150.128

ns2.void.com.        3600    IN    A    192.168.150.132

;; Query time: 0 msec

;; SERVER: 192.168.150.132#53(192.168.150.132)

;; WHEN: 三 10月 26 21:11:43 CST 2016

;; MSG SIZE  rcvd: 125

從服務器slaves文件

[root@node2 ~]# ls -l /var/named/slaves/

總用量 4

-rw-r–r– 1 named named 378 10月 26 12:11 void.com.zone

子域授權

授權原理是在本域名服務器上的正向解析庫文件當中定義子域對應的DNS服務器的主機名和其A記錄即可

[root@node1 ~]# cat /var/named/void.com.zone

$TTL 3600

$ORIGIN void.com.

@    IN    SOA    ns1.void.com.    admin.void.com. (

        20161028

        1H

        10M

        3D

        1D )

    IN     NS    ns1

    IN     NS    ns2

ops.void.com     IN     NS     ns1.ops.void.com.     主要添加NS記錄

ns1    IN    A     192.168.150.128

ns2    IN    A    192.168.150.132

www    IN    A    192.168.150.128

web    IN    CNAME    www

bbs     IN    A    192.168.150.129

ns1.ops.void.com     IN     A     192.168.150.129     還有對應的A記錄

另外,子域還需要定義其對應子域的解析庫文件,這樣才能對子域進行解析。配置過程同上面的配置相同。

    子域授權:

        正向解析區域授權子域的方法:

            ops.magedu.com.         IN     NS      ns1.ops.magedu.com.

            ops.magedu.com.         IN     NS      ns2.ops.magedu.com.

            ns1.ops.magedu.com.     IN     A     IP.AD.DR.ESS

            ns2.ops.magedu.com.     IN     A     IP.AD.DR.ESS

        定義轉發:

            注意:被轉發的服務器必須允許為當前服務做遞歸;

            (1) 區域轉發:僅轉發對某特定區域的解析請求;

                zone  "ZONE_NAME"  IN {

                    type  forward;

                    forward  {first|only};

                    forwarders  { SERVER_IP; };

                };

                first:首先轉發;轉發器不響應時,自行去迭代查詢;

                only:只轉發;

            (2) 全局轉發:針對凡本地沒有通過zone定義的區域查詢請求,通通轉給某轉發器;

                options {

                    … …

                    forward  {only|first};

                    forwarders  { SERVER_IP; };

                    .. …

                };

原創文章,作者:N23-蘇州-void,如若轉載,請注明出處:http://www.www58058.com/62772

(0)
N23-蘇州-voidN23-蘇州-void
上一篇 2016-12-05 20:36
下一篇 2016-12-05 21:15

相關推薦

  • Linux目錄配置整理

    FHS:   為了規范各種Linux發行版的目錄配置方法和目錄定義而制定了FHS規范。   在FHS規范的Linux中,所有的文件和目錄都由根目錄開始,即“/”,它是所有文件和目錄的起點。然后按層次化的樹狀劃分下來。這種目錄結構被稱為“目錄樹”。 目錄樹的特性:   ·起始點為根目錄(/或root)   ·每一個目錄不…

    Linux干貨 2016-07-07
  • 網絡班N22期第七周博客作業

    1、創建一個10G分區,并格式為ext4文件系統;    (1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl;     [root@bogon ~]# fdisk /dev/sde   &nb…

    Linux干貨 2016-10-17
  • 磁盤管理與文件系統

      關于磁盤與文件系統大致思路:要想對磁盤進行充分利用,必須要對磁盤進行分區,第二步就是要對分區進行高級格式化,也就是在分區上創建文件系統,在此過程中可以對磁盤的各種屬性進行自定義。打個比方來說,創建磁盤分區好比剛買來一個毛坯房,還未裝修,還不適宜人居住,那么創建文件系統就好比在光禿禿的毛坯房上進行了裝修,這樣才更適于人居住使用。 要想搞懂磁盤,首…

    Linux干貨 2016-08-30
  • 魔術方法

    魔術方法 屬性 含義 __name__ 類、函數、方法等的名字 __module__ 類定義所在的模塊名 __class__ 對象或類所屬的類 __bases__ 類的基類的元組,舒徐為他們在基類列表中出現的順序 __doc__ 類、函數的文檔字符串,如果沒有定義則為None __mro__ 類的mro,class.mro()返回的結果保存在__mro__中…

    Linux干貨 2017-11-21
  • 文件壓縮和軟件包管理

    Linux壓縮打包 壓縮是一種通過特定的算法來減小計算機文件大小的機制。有利于文件在網絡上的傳輸,節約帶寬。在Linux中,壓縮是以后綴名區分文件的。(Linux中很少見)壓縮文件都會呈現醒目的紅色。 注意!以下壓縮軟件只能壓縮文件而不能壓縮目錄。不能對目錄直接壓縮! compress命令 compress這個命令是非常老舊的一款命令,現在基本已經不用了 而…

    Linux干貨 2016-08-24
  • M20用戶和組練習題和作業

    1、創建用戶gentoo ,附加組為bin 和root ,默認shell為/bin/csh ,注釋信息為"Gentoo Distribution"  useradd gentoo -G bin,boot -s /bin/csh -c "Gentoo Distribution" 2 、創建下面的用戶、組和組成員…

    Linux干貨 2016-08-03

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-12-16 15:24

    贊,加密通訊可以自己畫個圖來描述下~~繼續加油~

欧美性久久久久