標籤:馬哥2016全新linux+python高端營運班第九周作業
1、詳細描述一次加密通訊的過程,結合圖示最佳。
SSL協議基礎:
SSL協議位於TCP/IP協議與各種應用程式層協議之間,本身又分為兩層:
1)SSL記錄協議:建立在可靠傳輸層協議(TCP)之上,為上層協議提供資料封裝、壓縮、加密等準系統。
2)SSL握手協議:在SSL記錄協議之上,用於實際資料轉送前,通訊雙方進行身份認證、協商密碼編譯演算法、交換加密金鑰等。
SSL協議通訊過程:
1)瀏覽器發送一個串連請求給伺服器;伺服器將自己的認證(包含伺服器公開金鑰S_PuKey)、對稱式加密演算法種類及其他相關資訊返回用戶端。
2)用戶端瀏覽器檢查伺服器傳送到CA認證是否由自己信賴的CA中心簽發。若是,執行第4步;否則,給客戶一個警告資訊:詢問是否繼續訪問
3)用戶端瀏覽器比較認證裡的資訊,如認證有效期間、伺服器網域名稱和公開金鑰S_PK,與伺服器傳回的資訊是否一致;如果一致,則瀏覽器完成對伺服器的身份認證
4)伺服器要求用戶端發送用戶端認證(包含用戶端公開金鑰C_PuKey)、支援的對稱式加密方案及其他相關資訊。收到後,伺服器進行相同的身份認證,若沒有通過驗證,則拒絕串連;
5)伺服器根據用戶端瀏覽器發送到密碼種類,選擇一種加密程度最高的方案,用用戶端公開金鑰C_PubKey加密後通知到瀏覽器;
6)用戶端通過私密金鑰C_prKey解密後,得知伺服器選擇的加密方案,並選擇一個通話密鑰Key,接著用伺服器公開金鑰S_PuKey加密後發送伺服器;
7)伺服器接收到的瀏覽器傳送到訊息,用私密金鑰S_PrKey解密,獲得通話密鑰key。
8)接下來的資料轉送都使用該對稱金鑰Key進行加密。
上面所述的是雙向認證SSL協議的具體通訊過程,伺服器和使用者雙方必須都有認證。由此可見,SSL協議是通過非對稱金鑰機制保證雙方身份認證,並完成建立串連,在實際資料通訊
時通過對稱金鑰機制保障資料安全性。
2、描述建立私人CA的過程,以及為用戶端發來的認證請求進行辦法認證。
(1)設定檔:/etc/pki/tls/openssl.cnf
建立所需要的檔案:
650) this.width=650;" src="http://s1.51cto.com/wyfs02/M02/89/7B/wKioL1gVUfTzC0f2AAAVmMs7spk253.jpg" title="1.jpg" alt="wKioL1gVUfTzC0f2AAAVmMs7spk253.jpg" />
(2)CA伺服器自簽認證:
650) this.width=650;" src="http://s5.51cto.com/wyfs02/M00/89/7B/wKioL1gVUoChAcoJAAAup2wX7P8834.jpg" title="2.jpg" alt="wKioL1gVUoChAcoJAAAup2wX7P8834.jpg" />
-new:產生新認證簽署請求;
-x509:專用於CA產生自簽認證;
-key:產生請求時用到的私密金鑰檔案;
-days n:認證的有效期間限;
-out /PATH/TO/SOMECERTFILE:認證的儲存路徑
(3)發認證:
1)用戶端產生認證請求:
設定檔
650) this.width=650;" src="http://s1.51cto.com/wyfs02/M02/89/7E/wKiom1gVVLDgYdgPAAAXRFKQ6dY157.jpg" title="5.jpg" alt="wKiom1gVVLDgYdgPAAAXRFKQ6dY157.jpg" />
650) this.width=650;" src="http://s2.51cto.com/wyfs02/M01/89/7B/wKioL1gVVHbw3NrYAAAYUkkZfYA019.jpg" style="float:none;" title="6.jpg" alt="wKioL1gVVHbw3NrYAAAYUkkZfYA019.jpg" />
2)把請求檔案傳輸給CA伺服器:
如沒有安裝SCP工具,可以用我們配置的yum install openssh-clients來安裝即可使用。
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/89/7E/wKiom1gVU7mA6nIVAAANEMjvQxc400.jpg" style="float:none;" title="4.jpg" alt="wKiom1gVU7mA6nIVAAANEMjvQxc400.jpg" />
650) this.width=650;" src="http://s5.51cto.com/wyfs02/M02/89/7B/wKioL1gVVXiDZYrJAAAOwsU48XM423.jpg" title="7.jpg" alt="wKioL1gVVXiDZYrJAAAOwsU48XM423.jpg" />
3)CA簽署認證,並將認證發還給要求者:
650) this.width=650;" src="http://s4.51cto.com/wyfs02/M00/89/7E/wKiom1gVVqjgWD9bAABDsUuYG0c233.jpg" style="float:none;" title="8.jpg" alt="wKiom1gVVqjgWD9bAABDsUuYG0c233.jpg" />
650) this.width=650;" src="http://s4.51cto.com/wyfs02/M00/89/7B/wKioL1gVVqiyH3VaAAAVBGYRpNA985.jpg" style="float:none;" title="9.jpg" alt="wKioL1gVVqiyH3VaAAAVBGYRpNA985.jpg" />
3、搭建一套DNS伺服器,負責解析magedu.com網域名稱(自行設定主機名稱及IP)
(1)、能夠對一些主機名稱進行正向解析和逆向解析;
(2)、對子域cdn.magedu.com進行子域授權,子域負責解析對應子域中的主機名稱;
(3)、為了保證DNS服務系統的高可用性,請設計一套方案,並寫出詳細的實施過程
先進行安裝:
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/89/7E/wKiom1gVW3rwP4xPAAA_MiI-3Eg113.jpg" title="10.jpg" alt="wKiom1gVW3rwP4xPAAA_MiI-3Eg113.jpg" />
常用的設定檔有:
/etc/named.conf#主設定檔
/etc/named.rfc1912.zones#地區設定檔
/etc/rc.d/init.d/named#啟動指令碼
/var/named#存放地區資料檔案
650) this.width=650;" src="http://s1.51cto.com/wyfs02/M01/89/7B/wKioL1gVXPuwyjq3AAA9csowdGg249.jpg" style="float:none;" title="11.jpg" alt="wKioL1gVXPuwyjq3AAA9csowdGg249.jpg" />
650) this.width=650;" src="http://s1.51cto.com/wyfs02/M02/89/7E/wKiom1gVXPvCS68rAAAmWYafDWc558.jpg" style="float:none;" title="12.jpg" alt="wKiom1gVXPvCS68rAAAmWYafDWc558.jpg" />
650) this.width=650;" src="http://s1.51cto.com/wyfs02/M02/89/7B/wKioL1gVXPuCTEwMAAAIjgfY818126.jpg" style="float:none;" title="13.jpg" alt="wKioL1gVXPuCTEwMAAAIjgfY818126.jpg" />
listen-on port 53 { any; };表示監聽本地IP的53連接埠,允許所用地址訪問本地53連接埠
allow-query { any; };允許所有地址查詢
recursion yes;是否遞迴,如果是no那麼這台DNS伺服器將不會遞迴解析,yes或注釋掉不寫,表是允許,預設是允許的
include "/etc/named.rfc1912.zones";載入地區設定檔
正向和反向地區解析
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/89/7F/wKiom1gVeqHxSGxBAAAaPyzpUBs843.jpg" title="12.jpg" alt="wKiom1gVeqHxSGxBAAAaPyzpUBs843.jpg" />
allow-transfer { 192.168.199.65; };表示只允許192.168.199.65這個主機同步資料,也就是作它的輔助DNS,多個IP用“;”隔開;
編輯正向解析的zone檔案
650) this.width=650;" src="http://s1.51cto.com/wyfs02/M00/89/7C/wKioL1gVem7Bm2c0AAAr2XyJbFY193.jpg" title="11.jpg" alt="wKioL1gVem7Bm2c0AAAr2XyJbFY193.jpg" />
編輯反向解析的zone檔案
650) this.width=650;" src="http://s5.51cto.com/wyfs02/M01/89/7C/wKioL1gVekuhhcryAAAqB3wpu_s857.jpg" title="10.jpg" alt="wKioL1gVekuhhcryAAAqB3wpu_s857.jpg" />
啟動服務:
650) this.width=650;" src="http://s5.51cto.com/wyfs02/M02/89/7C/wKioL1gVaVLzZmAXAAAIQcYx8ag279.jpg" title="19.jpg" alt="wKioL1gVaVLzZmAXAAAIQcYx8ag279.jpg" />
正向解析:
650) this.width=650;" src="http://s1.51cto.com/wyfs02/M02/89/7F/wKiom1gVexGAXaDmAABBRm2qgnQ266.jpg" style="float:none;" title="13.jpg" alt="wKiom1gVexGAXaDmAABBRm2qgnQ266.jpg" />
650) this.width=650;" src="http://s1.51cto.com/wyfs02/M02/89/7C/wKioL1gVexHi_1MWAAAZR4kqM7s179.jpg" style="float:none;" title="14.jpg" alt="wKioL1gVexHi_1MWAAAZR4kqM7s179.jpg" />650) this.width=650;" src="http://s4.51cto.com/wyfs02/M00/89/7F/wKiom1gVezjDYO4pAAAZR4kqM7s374.jpg" title="14.jpg" alt="wKiom1gVezjDYO4pAAAZR4kqM7s374.jpg" />
反向解析:
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/89/7C/wKioL1gVe4qTlCRNAABDi-r_NvE192.jpg" style="float:none;" title="15.jpg" alt="wKioL1gVe4qTlCRNAABDi-r_NvE192.jpg" />
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/89/7F/wKiom1gVe4rAqm7mAAAZSNoJ5wE643.jpg" style="float:none;" title="16.jpg" alt="wKiom1gVe4rAqm7mAAAZSNoJ5wE643.jpg" />
配置主從同步:
# vim /etc/named.rfc1912.zones
在末尾添加
zone "magedu.com" IN {
type slave;
masters { 192.168.1.65; };
file "slaves/magedu.com.zone";
allow-transfer { none; };
};
zone "1.168.192.in-addr.arpa" IN {
type slave;
masters { 192.168.1.65; };
file "slaves/1.168.192.zone";
allow-transfer { none; };
};
批定type類型為slave,並指定主伺服器為192.168.1.65
]# service named start
服務啟動後,會在/var/named/slaves/自動添加magedu.com.zone和199.168.192.zone檔案
]# ll /var/named/slaves/
子域授權:
新增一台IP為192.168.1.61的伺服器為子域
在父域的地區檔案中添加NS和A記錄
]# vim /var/named/magedu.com.zone
添加
cdn IN NS ns1.cdn.magedu.com.
ns1.cdn IN A 192.168.1.61
[[email protected] ~]# yum -y install bind
[[email protected] ~]# scp 192.168.1.64:/etc/named.conf /etc/
[[email protected] ~]# vim /etc/named.rfc1912.zones
在末尾添加
zone "cdn.magedu.com" IN {
type master;
file "cdn.magedu.com.zone";
};
zone "magedu.com" IN {
type forward;
forward only;
forwarders { 192.168.1.65; };
};
[[email protected] ~]# vim /var/named/cdn.magedu.com.zone
$TTL 86400
@ IN SOA ns.cdn.magedu.com. admin.cdn.magedu.com. (
2016092201
2H
5M
7D
12H )
IN NS ns.cdn.magedu.com.
IN MX 10 mx1.cdn.magedu.com.
IN A 192.168.1.61
ns IN A 192.168.1.61
mx1 IN A 192.168.1.61
www IN A 192.168.1.61
測試
1)子域測試
[[email protected] ~]# dig @192.168.1.61 www.cdn.magedu.com
2)父域測試
[[email protected] ~]# dig -t www.magedu.com
4、請描述一次完整的http請求處理過程;
一次完整的HTTP請求過程從TCP三向交握建立串連成功後開始,用戶端按照指定的格式開始向服務端發送HTTP請求,服務端接收請求後,解析HTTP請求,處理完商務邏輯,最後返回一個HTTP的響應給用戶端,HTTP的響應內容同樣有標準的格式.
5、httpd所支援的處理模型有哪些,他們的分別使用於哪些環境。
prefork:多進程模型,每個進程響應一個請求;
一個主進程:負責產生n個子進程,子進程也稱為背景工作處理序,每個子進程處理一個使用者請求;即便沒有使用者請求,也會預先產生多個空閑進程,隨時等待請求到達;最大不會超過1024個;最小空閑多少,並發響應多少
prefork:最大不能超過1024個並發請求,高效能web伺服器,這個差了一個數量級。10倍 c10k,這種模式很穩定,一個進程崩潰,不會影響到其他進程。---->問的性要求高的
worker:多執行緒模式,每個線程響應一個請求;一個主進程:產生多個子進程,每個子進程負責生個多個線程,每個線程響應一個請求;
m進程,n線程:m*n----->並發量稍微高點的
event:事件驅動模型,每個線程響應n個請求;一個主進程:產生m個子進程,每個進程直接n個請求;
m*n----->高並發--->
6、建立httpd伺服器(基於編譯的方式進行),要求:
提供兩個基於名稱的虛擬機器主機:
(a)www1.stuX.com,分頁檔目錄為/web/vhosts/www1;錯誤記錄檔為/var/log/httpd/www1.err,訪問日誌為/var/log/httpd/www1.access;
(b)www2.stuX.com,分頁檔目錄為/web/vhosts/www2;錯誤記錄檔為/var/log/httpd/www2.err,訪問日誌為/var/log/httpd/www2.access;
(c)為兩個虛擬機器主機建立各自的首頁檔案index.html,內容分別為其對應的主機名稱;
(d)通過www1.stuX.com/server-status輸出httpd工作狀態相關資訊,且只允許提供帳號密碼才能訪問(status:status);
本文出自 “11822904” 部落格,請務必保留此出處http://11832904.blog.51cto.com/11822904/1867354
馬哥2016全新Linux+Python高端營運班第九周作業