Docker容器技術(shù)與應(yīng)用Docke安全運(yùn)維管理_第1頁(yè)
Docker容器技術(shù)與應(yīng)用Docke安全運(yùn)維管理_第2頁(yè)
Docker容器技術(shù)與應(yīng)用Docke安全運(yùn)維管理_第3頁(yè)
Docker容器技術(shù)與應(yīng)用Docke安全運(yùn)維管理_第4頁(yè)
Docker容器技術(shù)與應(yīng)用Docke安全運(yùn)維管理_第5頁(yè)
已閱讀5頁(yè),還剩14頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

《Docker容器技術(shù)與應(yīng)用項(xiàng)目教程》高等職業(yè)技術(shù)教育計(jì)算機(jī)有關(guān)專業(yè)目錄項(xiàng)目10Docke安全運(yùn)維管理10.1項(xiàng)目陳述10.2必備知識(shí)10.3項(xiàng)目實(shí)施學(xué)習(xí)目的?掌握Docker容器,鏡像地安全。?掌握Docker自身地漏洞與缺陷。?掌握Docker安全機(jī)制。?掌握Docker日志管理方法。項(xiàng)目10Docke安全運(yùn)維管理在大多數(shù)情況下,啟動(dòng)Docker容器時(shí)都以root用戶權(quán)限運(yùn)行。用戶使用root權(quán)限可以進(jìn)行地操作包括訪問(wèn)所有信息,修改任何內(nèi)容,關(guān)閉機(jī)器,結(jié)束進(jìn)程,以及安裝各種軟件等。容器安全性問(wèn)題地根源在于容器與宿主機(jī)享內(nèi)核,如果容器應(yīng)用導(dǎo)致Linux內(nèi)核崩潰,那么整個(gè)系統(tǒng)就可能會(huì)崩潰。這與虛擬機(jī)是不同地,虛擬機(jī)并沒(méi)有與主機(jī)享內(nèi)核,虛擬機(jī)崩潰一般不會(huì)導(dǎo)致宿主機(jī)崩潰。Docker充分利用Linux內(nèi)核固有地安全性,采用多種手段來(lái)降低容器地安全風(fēng)險(xiǎn),可以說(shuō)容器在默認(rèn)情況下非常安全,尤其是在容器通過(guò)非特權(quán)用戶運(yùn)行進(jìn)程時(shí)。除了Docker自身地安全性外,還可以使用通用地IT安全技術(shù)來(lái)加固Docker主機(jī),為Docker增加額地安全層。10.1項(xiàng)目陳述10.2.1Docker存在地安全問(wèn)題Docker本身是有代碼缺陷地,據(jù)官方記錄,Docker歷史版本有超過(guò)20項(xiàng)漏洞,可參見(jiàn)Docker官方網(wǎng)絡(luò)。黑客常用地手段主有代碼執(zhí)行,權(quán)限提升,令牌泄露,權(quán)限繞過(guò)等。目前Docker版本地更迭非???用戶最好升級(jí)為最新地版本。10.2必備知識(shí)1.Docker源代碼問(wèn)題Docker提供了Docker Hub,允許用戶上傳創(chuàng)建鏡像,以便其它用戶下載后快速搭建環(huán)境,但同時(shí)也帶來(lái)了一些新地安全問(wèn)題。(1)黑客上傳惡意鏡像。如果黑客在制作地鏡像植入木馬,后門等惡意軟件,那么環(huán)境從一開(kāi)始就已經(jīng)不安全了,后續(xù)更沒(méi)有什么安全性可言。(2)鏡像使用有漏洞地軟件。DockerHub上能下載地鏡像,75%地鏡像都安裝了有漏洞地軟件。所以下載鏡像后,需要檢查軟件地版本信息,看看對(duì)應(yīng)地版本是否存在漏洞,并及時(shí)更新打上補(bǔ)丁。(3)間篡改鏡像。鏡像在傳輸過(guò)程可能被篡改,目前新版本地Docker已經(jīng)提供了相應(yīng)地校驗(yàn)機(jī)制來(lái)預(yù)防這個(gè)問(wèn)題了。2.Docker容器與虛擬機(jī)地安全性問(wèn)題Docker容器與虛擬機(jī)地安全性主要從隔離與享,性能與損耗分別進(jìn)行介紹。(1)隔離與享。虛擬機(jī)通過(guò)添加Hypervisor層,虛擬出網(wǎng)卡,內(nèi)存,CPU等虛擬硬件,再在其上面建立虛擬機(jī),每個(gè)虛擬機(jī)都有自己地系統(tǒng)內(nèi)核,安全性相對(duì)較高。而Docker容器則是通過(guò)隔離地方式,將文件系統(tǒng),進(jìn)程,設(shè)備,網(wǎng)絡(luò)等資源進(jìn)行隔離,再對(duì)權(quán)限,CUP資源等進(jìn)行控制,最終讓容器之間互不影響,容器也無(wú)法影響宿主機(jī),容器與宿主機(jī)享內(nèi)核,文件系統(tǒng),硬件等資源。(2)性能與損耗。與虛擬機(jī)相比,容器地資源損耗要少。同樣地宿主機(jī)下,能夠建立容器地?cái)?shù)量也是比虛擬機(jī)多,但是,虛擬機(jī)地安全性比容器稍好,想從虛擬機(jī)攻破到宿主機(jī)或其它虛擬機(jī),需要先攻破Hypervisor層,這將是極其困難地。而Docker容器與宿主機(jī)享內(nèi)核,文件系統(tǒng)等資源,更有可能對(duì)其它容器,宿主機(jī)產(chǎn)生影響。10.2.2Docker架構(gòu)地缺陷與安全機(jī)制Docker本身地架構(gòu)與機(jī)制可能產(chǎn)生安全問(wèn)題。例如,這樣一個(gè)場(chǎng)景,黑客已經(jīng)控制了宿主機(jī)上地一些容器,或者獲得了通過(guò)在公有云上建立容器地方式對(duì)宿主機(jī)或其它容器發(fā)起。10.2必備知識(shí)1.Docker架構(gòu)地缺陷安全問(wèn)題(1)容器之間地局域網(wǎng)絡(luò)主機(jī)上地容器之間可以構(gòu)成局域網(wǎng),因此針對(duì)局域網(wǎng)地ARP欺騙,嗅探,廣播風(fēng)暴等方式都有可能遇到。所以在一個(gè)主機(jī)上部署多個(gè)容器需要合理地配置網(wǎng)絡(luò),設(shè)置iptable規(guī)。(2)DDos耗盡資源Cgroups安全機(jī)制就是用來(lái)防止分布式拒絕服務(wù)(DistributedDenialofService,DDos)地,不要為單一地容器分配過(guò)多地資源即可避免此類問(wèn)題產(chǎn)生。(3)有漏洞地系統(tǒng)調(diào)用Docker與虛擬機(jī)地一個(gè)重要區(qū)別就是Docker與宿主機(jī)用一個(gè)操作系統(tǒng)內(nèi)核。一旦宿主機(jī)內(nèi)核存在可以越權(quán)或者提權(quán)地漏洞,盡管Docker使用普通用戶身份執(zhí)行,在容器被入侵時(shí),者仍然可以利用內(nèi)核漏洞跳到宿主機(jī)做更多地事情。(4)享root用戶權(quán)限。如果以root用戶權(quán)限運(yùn)行容器,容器內(nèi)地root用戶也就擁有了宿主機(jī)地root權(quán)限,這就存在很大地安全隱患。2.Docker安全機(jī)制Docker非常注重安全性,本身具有一套完整而嚴(yán)密地安全機(jī)制,還可以通過(guò)開(kāi)啟AppArmor,SELinux,GRSEC或其它強(qiáng)化系統(tǒng)來(lái)提供額外地安全。(1)內(nèi)核名稱空間。(2)控制組。(3)Docker守護(hù)進(jìn)程本身地受面。(4)Docker內(nèi)容信任簽名驗(yàn)證。(5)其它地內(nèi)核安全特性。10.2.3Docker容器監(jiān)控與日志管理在生產(chǎn)環(huán)境往往會(huì)有大量地業(yè)務(wù)軟件在容器運(yùn)行,因此對(duì)容器地監(jiān)控越來(lái)越重要。監(jiān)制地指標(biāo)主要是容器本身與容器所在主機(jī)地資源使用情況與性能,具體涉及CPU,內(nèi)存,網(wǎng)絡(luò)與磁盤。日志管理對(duì)保持系統(tǒng)持續(xù)穩(wěn)定地運(yùn)行以及排查問(wèn)題至關(guān)重要。容器具有數(shù)量多,變化快地特性,生命周期往往短暫且不固定,因此記錄日志就顯得非常必要,尤其是在生產(chǎn)環(huán)境,日志是不可或缺地組成部分。10.2必備知識(shí)1.Docker監(jiān)控工具監(jiān)制容器最簡(jiǎn)單地方法是使用Docker自帶地監(jiān)控命令,如dockerps,dockertop與dockerstats等命令,其運(yùn)行方便,簡(jiǎn)單,很適合快速了解容器運(yùn)行狀態(tài),只是輸出地?cái)?shù)據(jù)比較有限。要高效率地進(jìn)行監(jiān)控,需要使用第三方工具。Google提供地cAdvisor可以用于分析正在運(yùn)行容器地資源占用情況與性能指標(biāo),是具有圖形界面,最易于入門地Docker容器監(jiān)控工具。cAdvisor以守護(hù)進(jìn)程方式運(yùn)行,負(fù)責(zé)收集,聚合,處理與輸出運(yùn)行容器地?cái)?shù)據(jù),它可以監(jiān)測(cè)資源隔離參數(shù),歷史資源使用情況與網(wǎng)絡(luò)統(tǒng)計(jì)數(shù)據(jù)。2.容器日志工具dockerlogsDocker自帶地dockerlogs命令輸出正在運(yùn)行地容器地日志信息,而dockerservicelogs命令顯示服務(wù)地所有容器地日志信息,這個(gè)命令適用于集群環(huán)境,因此這里重點(diǎn)講解dockerlogs命令。日志信息與格式取決于容器地終端命令。默認(rèn)情況下,dockerlogs命令地輸出類似于終端交互式運(yùn)行地輸出。UNIX與Linux地命令在運(yùn)行時(shí)通常會(huì)打開(kāi)3個(gè)I/O流,分別為STDIN,STDOUT與STDERR。STDIN是命令地輸入流,可能包括來(lái)自鍵盤地輸入或來(lái)自另一個(gè)命令地輸入;STDOUT通常是命令地正常輸出,而STDOUT通常用于輸出錯(cuò)誤消息。默認(rèn)情況下,dockerlogs顯示命令地STDOUT與STDERR流。也就是說(shuō),Docker捕捉每一個(gè)容器進(jìn)程地STDOUT與STDERR流,并將它們保存在磁盤上,然后用戶就能使用dockerlogs命令來(lái)進(jìn)行查詢了。3.第三方日志工具dockerlogs命令輸出地日志可以用于簡(jiǎn)單地開(kāi)發(fā)。但是,想在更復(fù)雜地環(huán)境下使用Docker,或者想要查看更多傳統(tǒng)架構(gòu)地UNIX后臺(tái)程序地日志,就需要考慮使用第三方日志工具。比較常用地是3個(gè)開(kāi)源地組件Elasticsearch,Logstash與Kibana組成地ELK日志系統(tǒng)。其Elasticsearch是分布式搜索紅警;Logstash可以對(duì)日志進(jìn)行收集與分析,并將其存儲(chǔ)下來(lái)供后使用;Kibana可以為Elasticsearch與Logstash提供日志分析Web界面,用來(lái)匯總,分析與搜索重要地日志數(shù)據(jù)。在ELK日志系統(tǒng),Logstash獲取日志Docker地日志,然后將日志轉(zhuǎn)發(fā)給Elasticsearch進(jìn)行索引,Kibana提供日志地分析與可視化。4.容器日志驅(qū)動(dòng)將容器日志發(fā)送到STDOUT與STDERR是Docker地默認(rèn)日志行為。實(shí)際上,Docker提供了多種日志機(jī)制幫助用戶從運(yùn)行地容器提取日志信息。這些機(jī)制被稱為日志驅(qū)動(dòng)(LoggingDriver)。Docker默認(rèn)地日志驅(qū)動(dòng)是json-file。在啟動(dòng)容器時(shí),可以通過(guò)--log-driver選項(xiàng)配置日志驅(qū)動(dòng),常用地日志驅(qū)動(dòng)選項(xiàng)及其功能說(shuō)明,如表10.1所示。5.使用dockerlogs命令查看容器日志對(duì)于一個(gè)運(yùn)行地容器,Docker會(huì)將日志發(fā)送到容器地STDOUT與STDERR上,可以將STDOUT與STDERR視為容器地控制臺(tái)終端。如果容器以前臺(tái)方式運(yùn)行,則日志會(huì)直接輸出到當(dāng)前地終端窗口;如果以后臺(tái)方式運(yùn)行容器,則不能直接看到輸出地日志。對(duì)于這種情形,可以使用dockerattach命令連接到后臺(tái)容器地控制臺(tái)終端,查看輸出地日志。不過(guò)這種方法僅用于查看容器日志就沒(méi)有必要了,因?yàn)镈ocker自帶地dockerlogs命令專門用于查看容器地日志,其基本語(yǔ)法格式如下。dockerlogs[選項(xiàng)]容器dockerlogs選項(xiàng)及其功能說(shuō)明,如表10.2所示。6.查看Docker服務(wù)器端地各種信息可以使用dockerevents命令查看Docker服務(wù)器端地各種信息,包括容器,鏡像,插件,卷,網(wǎng)絡(luò),以及Docker守護(hù)進(jìn)程。不同地對(duì)象具有不同地,以方便調(diào)試使用。該命令語(yǔ)法格式如下。dockerevents[選項(xiàng)]dockerevents選項(xiàng)及其功能說(shuō)明,如表10.3所示。10.3.1容器監(jiān)控及其配置10.3.2配置與管理Docker守護(hù)進(jìn)程10.3項(xiàng)目實(shí)施本項(xiàng)目包含五個(gè)任務(wù)。任務(wù)10.1Docker存在地安全問(wèn)題,主要講解了Docker源代碼問(wèn)題,Docker容器與虛擬機(jī)地安全性問(wèn)題。任務(wù)10.2Docker架構(gòu)地缺陷與安全機(jī)制,主要講解了Docker架構(gòu)地缺陷安全問(wèn)題,Docker安全機(jī)制。任務(wù)10.3Docker容器監(jiān)控與日志管理,主要講解了Docker監(jiān)控工具,容器日志工具dockerlogs,第三方日志工具,容器日志

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論