1、詳細描述一次加密通訊的過程,結合圖示最佳。
- 第一步:他們需要實現協商好對稱加密算法,單向加密算法,公鑰加密算法,交換公鑰等。
-
第二步:B用戶想要將數據傳給A,首先需要使用單向加密算法取出數據的特征碼,并用自己的私鑰對這段特征碼進行加密(數字簽名),B用戶生成臨時對稱密鑰,并用對稱密鑰加密整段數據,B用戶使用
A用戶的公鑰加密一次性對稱密鑰,附加在整段數據后面,并將整段數據發送給A用戶。 - 第三步:A用戶使用自己的私鑰來解密被加密的對稱密鑰,用對稱密鑰解密整段加密的內容,用用戶B的公鑰解密數字簽名,如果解得開,數據來源得到驗證,獲取特征碼與用戶A使用相同的單向加密算法獲取整段數據的特征碼進行比較,如果相同,數據的完整性得到保證。
A-->B加密通信過程: 1.A生成數據; 2.A先使用單向加密算法計算出這段數據的特征碼; 3.A使用自己的私鑰加密加密這段特征碼并附加在數據后面; 4.A生成一個臨時的對稱秘鑰,并使用此臨時秘鑰(對稱加密算法)加密整段數據; 5.A獲取B的公鑰,然后使用B的公鑰加密之前的數據,然后發送給A; 6.B收到A發來的數據; 7.B使用自己的私鑰解密這段數據,得到A的對稱秘鑰;(秘鑰交換) 8.B使用此對稱秘鑰解密數據,得到加密后的數據內容;(數據加密) 9.B使用A的公鑰解密加密之前得到的數據(數據+特征碼+單向加密算法),實現身份驗證; 10.B使用同樣的單向加密算法計算數據的特征碼,然后進行比較,從而實現數據完整性校驗;
2、描述創建私有CA的過程,以及為客戶端發來的證書請求進行辦法證書。
(1)生成私鑰[root@director3 ~]# yum -y install openssl [root@director3 CA]# (umask 077;openssl genrsa -out /etc/pki/CA/private/cakey.pem 4096)(2)生成自簽證書
[root@director3 CA]# openssl req -new -x509 -key /etc/pki/CA/private/ca-key.pem \ -out /etc/pki/CA/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) []:shanghai Locality Name (eg, city) [Default City]:shanghai Organization Name (eg, company) [Default Company Ltd]:DevOps Organizational Unit Name (eg, section) []:OPS Common Name (eg, your name or your server's hostname) []:director3 Email Address []:(3)為CA創建所需要的目錄或文件
mkdir /etc/pki/CA/{certs,crl,newcerts}
touch /etc/pki/CA/{serial,index.txt}
echo 01> /etc/pki/CA/serial
要用到證書進行安全通信的服務器,需要向ca服務器請求簽署證書
步驟:
(1)用到的證書餓主機生成證書簽署請求
(umask 077;openssl genrsa -out httpd.key 2048)
(2)生成證書簽署請求
openssl req -new -key httpd.key -out httpd.csr -days 365
(3)將請求通過可靠方式發送給ca證書
(4)簽署證書
openssl ca -in httpd.csr -out /etc/pki/CA/certs/httpd.crt -days 365
(5)查看證書中的信息
openssl x509 -in httpd.crt -noout -serial -subject3)為CA提供所需的目錄及文件 [root@director3 CA]# mkdir /etc/pki/CA/{certs,crl,newcerts} [root@director3 CA]# touch /etc/pki/CA/{serial,index.txt} [root@director3 CA]# echo 01 > /etc/pki/CA/serial 為客戶端頒發證書過程(以apache為例): 1)生成一個私鑰 [root@apache client]# (umask 077;openssl genrsa -out /tmp/client/http.key 4096) 2)生成一個證書簽署請求 [root@apache client]# openssl req -new -key /tmp/client/http.key -out /tmp/client/http.csr -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) []:shanghai Locality Name (eg, city) [Default City]:shanghai Organization Name (eg, company) [Default Company Ltd]:Test Organizational Unit Name (eg, section) []:Test1 Common Name (eg, your name or your server's hostname) []:apache.example.com Email Address []: Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []: 3)將此客戶端的證書請求通過可靠方式發送到CA上,讓CA簽署; [root@apache client]# scp /tmp/client/http.csr director3:~ 4)在CA上簽署證書請求 [root@director3 CA]# openssl ca -in /root/http.csr -out /etc/pki/CA/certs/http.csr -days 365 Using configuration from /etc/pki/tls/openssl.cnf Check that the request matches the signature Signature ok The organizationName field needed to be the same in the CA certificate (DevOPS) and the request (Test) 5)將簽署的證書傳給客戶端3、描述DNS查詢過程以及DNS服務器類別。
(1)用戶發起dns解析請求,如果是此dns負責的解析列表或者有此域名的解析緩存,dns就返回給用戶域名的解析ip。
(2)若果此dns不知道此域名的解析,則此dns會幫用戶去遞歸請求,去請求根服務器,根服務器也不知道,而是返回他二級域的IP。
(3)此dns會去請求二級域,二級域返回他下面的三級域的地址。
(4)依次迭代下去,最終找到請求域名的dns解析IP,返回給用戶。
(5)請求的dns會緩存下這個域名的解析,而后返回給用戶。
dns服務器的類型:
負責解析至少一個域: 主名稱服務器 輔助名稱服務器 不負責解析: 緩存名稱服務器4、搭建一套DNS服務器,負責解析magedu.com域名(自行設定主機名及IP)
(1)、能夠對一些主機名進行正向解析和逆向解析;
(2)、對子域cdn.magedu.com進行子域授權,子域負責解析對應子域中的主機名;
(3)、為了保證DNS服務系統的高可用性,請設計一套方案,并寫出詳細的實施過程”
(1) 安裝bind軟件: [root@ns1 ~]# yum -y install bind bind-utils 編輯/etc/named.conf配置文件,修改添加如下幾項: listen-on port 53 { any; }; allow-query { 10.0.0.0/24; }; dnssec-enable no; dnssec-validation no; include "/etc/named.magedu.com" ; 創建及修改magedu.com域配置文件: [root@ns1 ~]# (umask 027;touch /etc/named.magedu.com) [root@ns1 ~]# chgrp named /etc/named.magedu.com [root@ns1 ~]# cat /etc/named.magedu.com zone "magedu.com" IN { type master; file "db.magedu.com"; }; zone "0.0.10.in-addr.arpa" IN { type master; file "db.reverse"; }; 創建域正向及反向解析文件: [root@ns1 ~]# touch /var/named/{db.magedu.com,db.reverse} [root@ns1 ~]# chgrp -R named /var/named/ 正向解析文件: [root@ns1 ~]# cat /var/named/db.magedu.com $ORIGIN magedu.com. $TTL 1D @IN SOAns1.magedu.com. admin.magedu.com. ( 2016110401 6H 1H 1W 1D) NS ns1 MX 10 mail ns1 A 10.0.0.5 www A 10.0.0.3 ftp A 10.0.0.2 mail A 10.0.0.6 php CNAME www cdn NS ns.cdn ns.cdn A 10.0.0.4 反向解析文件: [root@ns1 ~]# cat /var/named/db.reverse $TTL 1D @IN SOAns1.magedu.com. admin.magedu.com. ( 2016110410; serial 1D; refresh 1H; retry 1W; expire 3H ); minimum NS ns1.magedu.com. MX 10 mail.magedu.com. 5 PTR ns1.magedu.com. 4 PTR ns.cdn.magedu.com. 2 PTR ftp.magedu.com. 3 PTR www.magedu.com. 3 PTR php.magedu.com. 6 PTR mail.magedu.com. 檢查配置: [root@ns1 ~]# named-checkconf [root@ns1 ~]# named-checkzone magedu.com /var/named/db.magedu.com [root@ns1 ~]# named-checkzone 0.0.10.in-addr.arpa db.reverse 啟動服務: [root@ns1 ~]# systemctl start named.service 測試: 正向解析: [root@ns1 ~]# nslookup -q=NS magedu.com 10.0.0.5 Server:10.0.0.5 Address:10.0.0.5#53 magedu.comnameserver = ns1.magedu.com. [root@ns1 ~]# nslookup -q=A www.magedu.com 10.0.0.5 Server:10.0.0.5 Address:10.0.0.5#53 Name:www.magedu.com Address: 10.0.0.3 反向解析: [root@ns1 ~]# nslookup -q=PTR 10.0.0.3 10.0.0.5 Server:10.0.0.5 Address:10.0.0.5#53 3.0.0.10.in-addr.arpaname = www.magedu.com. 3.0.0.10.in-addr.arpaname = php.magedu.com. (2) 修改(1)中db.magedu.com文件,添加如下記錄: cdn NS ns.cdn ns.cdn A 10.0.0.4 重啟服務: [root@ns1 ~]# systemctl restart named.service 在ns.cdn.magedu.com主機上安裝bind,bind-utils; 修改配置文件/etc/named.conf; 添加cdn.magedu.com域的配置文件及解析文件;如下: 配置文件: [root@ns ~]# cat /etc/named.cdn.magedu.com zone "cdn.magedu.com" IN { type master; file "db.cdn.magedu.com"; }; 解析文件: [root@ns ~]# cat /var/named/db.cdn.magedu.com $ORIGIN cdn.magedu.com. $TTL 1D @ IN SOA ns.cdn.magedu.com. admin.cdn.magedu.com. ( 2016110433 6H 1H 1W 1D) NS ns MX 10 mail ns A 10.0.0.4 www A 10.0.0.8 檢查配置及啟動服務: [root@ns ~]# systemctl start named.service 測試: 在ns.cdn.magedu.com主機上測試: [root@ns ~]# dig -t A www.cdn.magedu.com @10.0.0.4 ; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.4 <<>> -t A www.cdn.magedu.com @10.0.0.4 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21374 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;www.cdn.magedu.com.INA ;; ANSWER SECTION: www.cdn.magedu.com.86400INA10.0.0.8 ;; AUTHORITY SECTION: cdn.magedu.com.86400INNSns.cdn.magedu.com. ;; ADDITIONAL SECTION: ns.cdn.magedu.com.86400INA10.0.0.4 ;; Query time: 1 msec ;; SERVER: 10.0.0.4#53(10.0.0.4) ;; WHEN: Fri Oct 21 09:35:34 CST 2016 ;; MSG SIZE rcvd: 96 在ns1.magedu.com主機上測試: [root@ns1 ~]# dig -t NS cdn.magedu.com @10.0.0.5 ; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.4 <<>> -t NS cdn.magedu.com @10.0.0.5 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18288 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 2 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;cdn.magedu.com.INNS ;; ANSWER SECTION: cdn.magedu.com.86400INNSns.cdn.magedu.com. ;; ADDITIONAL SECTION: ns.cdn.magedu.com.86400INA10.0.0.4 ;; Query time: 2 msec ;; SERVER: 10.0.0.5#53(10.0.0.5) ;; WHEN: Fri Nov 04 16:03:09 CST 2016 ;; MSG SIZE rcvd: 76 [root@ns1 ~]# dig -t A www.cdn.magedu.com @10.0.0.5 ; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.4 <<>> -t A www.cdn.magedu.com @10.0.0.5 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35925 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;www.cdn.magedu.com.INA ;; ANSWER SECTION: www.cdn.magedu.com.86400INA10.0.0.8 ;; AUTHORITY SECTION: cdn.magedu.com.86376INNSns.cdn.magedu.com. ;; ADDITIONAL SECTION: ns.cdn.magedu.com.86376INA10.0.0.4 ;; Query time: 2 msec ;; SERVER: 10.0.0.5#53(10.0.0.5) ;; WHEN: Fri Nov 04 16:03:33 CST 2016 ;; MSG SIZE rcvd: 96 (3) 為了保證DNS服務的高可用性,可以采取主從架構,一主多從;或對DNS服務做HA; 本例采取一主一從架構: ns1.magedu.com 主dns服務器 ns2.magedu.com 輔助dns服務器 備注:初始化(2)中的子域 首先時間需要保持同步 分別在兩臺主機上安裝chrony,啟動chronyd服務; 修改ns1主機上的正向解析記錄,添加: NS ns2 ns2 A 10.0.0.4 在ns2上安裝bind,bind9; 修改配置文件基本類似ns1: 添加配置文件: [root@ns2 ~]# cat /etc/named.slave.magedu.com zone "magedu.com" IN { type slave; file "slaves/magedu.com.zone"; masters { 10.0.0.5; }; }; 檢查配置文件并啟動服務: [root@ns2 ~]# systemctl start named.service 查看slaves目錄下是否生成域解析文件: [root@ns2 ~]# ll /var/named/slaves/ total 4 -rw-r--r-- 1 named named 540 Nov 4 16:22 magedu.com.zone 此時說明dns主從復制成功;也可以在dns slave主機上測試解析: [root@ns2 ~]# dig -t A www.magedu.com @10.0.0.4 ; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.4 <<>> -t A www.magedu.com @10.0.0.4 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30244 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;www.magedu.com.INA ;; ANSWER SECTION: www.magedu.com.86400INA10.0.0.3 ;; AUTHORITY SECTION: magedu.com.86400INNSns1.magedu.com. ;; ADDITIONAL SECTION: ns1.magedu.com.86400INA10.0.0.5 ;; Query time: 0 msec ;; SERVER: 10.0.0.4#53(10.0.0.4) ;; WHEN: Fri Nov 04 16:24:41 CST 2016 ;; MSG SIZE rcvd: 93
原創文章,作者:oranix,如若轉載,請注明出處:http://www.www58058.com/76605