多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國(guó)內(nèi)最全I(xiàn)T社區(qū)平臺(tái) 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁(yè) > 服務(wù)器 > Docker安全性――官方文檔[譯]

Docker安全性――官方文檔[譯]

來(lái)源:程序員人生   發(fā)布時(shí)間:2014-12-20 09:09:06 閱讀次數(shù):2576次

Docker安全性――官方文檔[譯]

本文譯自Docker官方文檔:https://docs.docker.com/articles/security/

在審查Docker的安全時(shí),需要斟酌3個(gè)主要方面:
?容器內(nèi)在的安全性,由內(nèi)核命名空間和cgroup中實(shí)現(xiàn);
?docker守護(hù)程序本身的攻擊面;
?加固內(nèi)核安全特性,和它們?nèi)绾闻c容器中互動(dòng)。

內(nèi)核 命名空間 Kernel Namespace

Docker容器中非常類(lèi)似LXC容器,并且它們都具有類(lèi)似的安全功能。當(dāng)您以“docker run”啟動(dòng)1個(gè)容器,后臺(tái)Docker為容器創(chuàng)建1組命名空間和控制組的集合。
命名空間提供隔離的最初也是最簡(jiǎn)單的情勢(shì):1個(gè)容器中運(yùn)行的進(jìn)程看不到運(yùn)行在另外一個(gè)容器中或在主機(jī)系統(tǒng)中的進(jìn)程,乃至它們之間更少的影響,。

每一個(gè)容器也都有自己的網(wǎng)絡(luò)協(xié)議棧,這意味著容器沒(méi)有得到特權(quán)訪問(wèn)另外一個(gè)容器的套接字或接口。固然,如果主機(jī)系統(tǒng)是設(shè)置因此,容器中可以相互通過(guò)各自的網(wǎng)絡(luò)接口進(jìn)

行交互 - 就像他們可以與外部的主機(jī)進(jìn)行交互。當(dāng)您為您的容器中或使用鏈路指定公共端口則IP通訊允許容器之間。他們可以相互ping通,發(fā)送/接收UDP數(shù)據(jù)包,并建立

TCP連接,但可以在必要時(shí)會(huì)遭到限制。從1個(gè)網(wǎng)絡(luò)架構(gòu)來(lái)看,給定Docker主機(jī)上的所有容器都坐在橋接接口。這意味著,他們只是想通過(guò)1個(gè)普通的以太網(wǎng)交換機(jī)連接的物

理機(jī)器;不多,不會(huì)少。

代碼是如何成熟提供內(nèi)核命名空間和專(zhuān)用網(wǎng)絡(luò)??jī)?nèi)核命名空間的內(nèi)核版本2.6.15和2.6.26之間進(jìn)行了介紹。這意味著,自2008年7月(2.6.26發(fā)布日期,現(xiàn)在5年前),命名

空間代碼已實(shí)行和審查上有大量的生產(chǎn)系統(tǒng)。還有更多:設(shè)計(jì)靈感的命名空間代碼,乃至更老。命名空間實(shí)際上是為了重新實(shí)現(xiàn)的,由于它們可能被主流內(nèi)核內(nèi)合并這樣

的方式的OpenVZ的特性。OpenVZ的最初發(fā)布于2005年,所以在設(shè)計(jì)和履行都相當(dāng)做熟。

控制組 cgroups

控制組是Linux的容器的另外一重要組成部份。他們實(shí)行資源核算和限制。他們提供了很多非常有用的指標(biāo),但他們也有助于確保每一個(gè)容器取得其公平的內(nèi)存,CPU,磁盤(pán)同享

I/O;并且,更重要的是,1個(gè)單1的容器不能用盡這些資源中的1個(gè)而使系統(tǒng)癱瘓。

因此,雖然它們不起到避免1個(gè)容器訪問(wèn)或影響數(shù)據(jù)和另外一個(gè)容器的進(jìn)程的作用,它們是必不可少的,以抵擋謝絕服務(wù)的1些攻擊。他們是在多租戶(hù)平臺(tái),像公共和私有

PaaS尤其重要,以保證正常運(yùn)行時(shí)間1致(和性能),即便1些利用開(kāi)始胡作非為。

控制組已存在了1段時(shí)間,和:代碼在2006年已開(kāi)始,并在內(nèi)核2.6.24開(kāi)始合并。

Docker守護(hù)攻擊面

運(yùn)行容器(和利用程序)與Docker意味著運(yùn)行Docker守護(hù)進(jìn)程。此守護(hù)進(jìn)程目前需要root權(quán)限,因此,你應(yīng)當(dāng)知道的1些重要的細(xì)節(jié)。

首先,只有受信任的用戶(hù)應(yīng)當(dāng)可以控制你的Docker守護(hù)進(jìn)程。這是直接造成1些強(qiáng)大的Docker功能。具體來(lái)講,Docker可讓你分享的Docker主體和客體容器之間的目錄;它

允許你這樣做不限制容器的訪問(wèn)權(quán)限。這意味著,你可以開(kāi)始1個(gè)容器,其中/host目錄將是你的主機(jī)上的/目錄下;并且容器將能夠改變你的主機(jī)文件系統(tǒng)沒(méi)有任何限制。這

聽(tīng)起來(lái)很瘋狂?好吧,你要知道,所有的虛擬化系統(tǒng)允許文件系統(tǒng)資源同享的行動(dòng)方式相同。沒(méi)有甚么能禁止你從1個(gè)虛擬機(jī)同享您的根文件系統(tǒng)(乃至是你的root塊裝備

)。

這具有很強(qiáng)的安全性含義:例如,如果從通過(guò)API的Web服務(wù)器來(lái)提供容器中工具Docker,你應(yīng)當(dāng)比平常使用參數(shù)檢查多加謹(jǐn)慎,以確保歹意用戶(hù)沒(méi)法通過(guò)精雕細(xì)琢的參數(shù)引

起Docker創(chuàng)建任意容器。

出于這個(gè)緣由,所述的REST API端點(diǎn)(所使用的DockerCLI與Docker守護(hù)程序進(jìn)行通訊)中Docker0.5.2改變,現(xiàn)在采取的是UNIX套接字代替結(jié)合在127.0.0.1 TCP套接字(后

者是容易跨站點(diǎn)腳本攻擊,如果你碰巧直接在本地計(jì)算機(jī)上運(yùn)行Docker,1個(gè)VM以外)。然后,您可使用傳統(tǒng)的UNIX權(quán)限檢查限制訪問(wèn)控制套接字。

您也能夠通過(guò)暴露在HTTP REST API,如果你明確決定等。但是,如果你這樣做,意想到上述的安全含義,你應(yīng)當(dāng)確保它會(huì)到達(dá)只能從1個(gè)可信任的網(wǎng)絡(luò)或VPN;或受保護(hù)的如

與安全通道和客戶(hù)真?zhèn)€SSL證書(shū)。你也能夠保證他們HTTPS和證書(shū)。

在Linux的命名空間中的最新改進(jìn)將很快允許沒(méi)有root權(quán)限運(yùn)行全功能的容器中,這要?dú)w功于新的用戶(hù)空間。這是覆蓋在這里詳細(xì)。另外,這將解決由同享主機(jī)和客戶(hù)之間的

文件系統(tǒng)的問(wèn)題,由于用戶(hù)命名空間允許容器(包括root用戶(hù))內(nèi)的用戶(hù)被映照到在主機(jī)系統(tǒng)的其他用戶(hù)。

因此,終究目標(biāo)是Docker要實(shí)現(xiàn)兩個(gè)額外的安全性改進(jìn):
?映照容器的root用戶(hù)的Docker主機(jī)的非root用戶(hù),以減少容器到主機(jī)的權(quán)限提升的效果;
? 允許docker守護(hù)程序沒(méi)有root權(quán)限運(yùn)行,并拜托操作要求這些特權(quán)和審計(jì)的子流程,每一個(gè)都有自己的(非常有限)適用范圍:虛擬網(wǎng)絡(luò)設(shè)置,文件系統(tǒng)管理,等等。

最后,如果在服務(wù)器上運(yùn)行Docker,建議以在服務(wù)器上運(yùn)行專(zhuān)門(mén)Docker,并且通過(guò)Docker控制容器中內(nèi)移動(dòng)的所有其他服務(wù)。固然,這是好的,讓您最喜歡的管理工具(可

能最少SSH服務(wù)器),和現(xiàn)有的監(jiān)測(cè)/監(jiān)控進(jìn)程(例如,NRPE,collectd等)。

Linux內(nèi)核能力 Capabilities

默許情況下,Docker開(kāi)始容用具有非常有限的功能集。這意味著甚么?

功能打開(kāi)2進(jìn)制“root/非root”2分法成細(xì)粒度的訪問(wèn)控制系統(tǒng)。進(jìn)程(如Web服務(wù)器),僅僅需要綁定低于1024的端口上沒(méi)有以root身份運(yùn)行:他們可以被授與

net_bind_service能力來(lái)代替。而且還有很多其他功能,幾近所有的地方,通常都需要root權(quán)限的具體領(lǐng)域。

這意味著許多為docker的安全;讓我們來(lái)看看為何!

1般的服務(wù)器(裸機(jī)或虛擬機(jī))都需要運(yùn)行1堆流程作為root。這些通常包括SSH,cron,syslogd;硬件管理工具(如加載模塊),網(wǎng)絡(luò)配置工具(如處理DHCP,WPA或VPN)

的,等等。容器是非常不同的,由于幾近所有的這些任務(wù)由容器周?chē)幕A(chǔ)設(shè)施進(jìn)行處理:
?SSH訪問(wèn)通常由Docker主機(jī)運(yùn)行的單個(gè)服務(wù)器進(jìn)行管理;
?cron,必要的時(shí)候,應(yīng)當(dāng)運(yùn)行作為1個(gè)用戶(hù)進(jìn)程,敬業(yè),專(zhuān)為需要它的調(diào)度服務(wù),而不是作為1個(gè)平臺(tái)性的裝備利用程序;
?日志管理層也通常會(huì)被交給Docker,或由第3方服務(wù),如Loggly或Splunk的;
?硬件管理是無(wú)關(guān)緊要的,這意味著你永久不需要容器中運(yùn)行udevd會(huì)或同等守護(hù)進(jìn)程;
?網(wǎng)絡(luò)管理產(chǎn)生在容器外,履行的盡量多的分離關(guān)注點(diǎn),這意味著容器不應(yīng)當(dāng)需要履行ifconfig,route,或IP命令(除當(dāng)1個(gè)容器是專(zhuān)為像1個(gè)路由器或防火墻,固然

)。

這意味著,在大多數(shù)情況下,容器將不會(huì)在所有需要的“真實(shí)”root特權(quán)。因此,容器可使用減少的能力集運(yùn)行;這意味著“root”在1個(gè)容器內(nèi)具有比真實(shí)的“root”少很多特

權(quán)。例如,它是可能的:
?謝絕所有“裝載”操作;
?謝絕訪問(wèn)原始套接字(避免數(shù)據(jù)包欺騙);
?謝絕訪問(wèn)某些文件系統(tǒng)操作,如創(chuàng)建新的裝備節(jié)點(diǎn),改變文件的所有者,或改變屬性(包括不可變標(biāo)志);
?謝絕模塊加載;
?和等等。

這意味著,即便入侵者想法升級(jí)到root的容器內(nèi),這將是非常困難做嚴(yán)重破壞,或升級(jí)到主機(jī)。

這不會(huì)影響常規(guī)的網(wǎng)絡(luò)利用;但歹意的用戶(hù)會(huì)發(fā)現(xiàn),軍工廠在他們的處置大幅降落!默許情況下,Docker滴除那些需要的,白名單,而不是黑名單的方式全部功能。你可以

看到在Linux中提供聯(lián)機(jī)幫助功能的完全列表。

固然,你可以隨時(shí)啟用額外的功能,如果你真的需要它們(舉例來(lái)講,如果你想使用FUSE為基礎(chǔ)的文件系統(tǒng)),但默許情況下,Docker容器使用默許的核心能力,只有白名

單。

其他內(nèi)核安全特性

Capabilities 能力是現(xiàn)代Linux內(nèi)核提供了許多安全特性之1。另外,也能夠利用現(xiàn)有的,公知的系統(tǒng),如TOMOYO,AppArmor,SELinux,GRSEC等使用Docker。

而Docker目前只允許功能,它不干擾其它系統(tǒng)。這意味著,有許多不同的方式來(lái)加固Docker主機(jī)。下面是1些例子。
?您可以運(yùn)行GRSEC和PAX內(nèi)核。這將增加很多安全檢查,不管是在編譯時(shí)和運(yùn)行時(shí);它也將打敗很多漏洞,這要?dú)w功于像地址隨機(jī)化技術(shù)。它不需要Docker特定的配置中,由

于這些安全功能適用全系統(tǒng),獨(dú)立的容器中。
?如果你的發(fā)行版自帶的Docker容器安全模型模板,你可使用它們的開(kāi)箱即用。舉例來(lái)講,推出1個(gè)與AppArmor工作和Red Hat自帶SELinux策略Docker的模板。這些模板提

供了1個(gè)額外的安全網(wǎng)(即便它大大堆疊使用能力)。
?您可使用自己喜歡的訪問(wèn)控制機(jī)制,定義自己的策略。

就像有許多第3方工具來(lái)增強(qiáng)Docker容器如特殊的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)或同享文件系統(tǒng),你可以期望看到的工具來(lái)強(qiáng)化現(xiàn)有的Docker容器,而不會(huì)影響Docker的核心。

結(jié)論

Docker容器,默許情況下,相當(dāng)安全的;特別是如果你把你的運(yùn)行進(jìn)程容器非特權(quán)用戶(hù)內(nèi)部的護(hù)理(即非root)。

您可以通過(guò)啟用AppArmor中,SELinux,GRSEC,或你最喜歡的加固解決方案中添加額外的安全層。

最后但并不是最不重要的,如果你看到在其他容器化系統(tǒng),有趣的安全功能,您將能夠?qū)崿F(xiàn)它們,和使用Docker,由于1切不管如何都是由內(nèi)核提供。

欲了解更多情況下,特別是與虛擬機(jī)和其他容器系統(tǒng)的比較,也請(qǐng)看到原來(lái)的博客文章:http://blog.docker.com/2013/08/containers-docker-how-secure-are-they/。

生活不易,碼農(nóng)辛苦
如果您覺(jué)得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 致命坏男人漫画登录页面免费漫画第三话 | 欧美日韩精品一区二区三区四区 | 欧美视频一区二区三区在线观看 | 免费在线一区二区三区 | 免费高清a级毛片在线播放 免费高清不卡毛片在线看 免费高清国产 | 精品99一区二区三区麻豆 | 日韩精品a在线视频 | 日本大蕉香蕉大视频在线观看 | 日本免费一区二区视频 | 波多野结衣免费免费视频一区 | 国产成人在线免费视频 | 国产性色| 久久永久视频 | www.亚洲精品 | 久久日韩| 青娱乐伊人 | 欧美性受xxxx白人性爽网站 | 91 视频网站 | 日本啊啊视频 | 国产91嫩草精品 | 亚洲精品高清在线观看 | 成人6969www色 | 亚洲第一网站免费视频 | 天堂网在线网站成人午夜网站 | www.免费观看| 亚洲精品中文字幕乱码三区一二 | 涩综合 | 欧美 亚洲 中文字幕 | 图片区亚洲色图 | 国产精品视_精品国产免费 国产精品视频1区 | 老女人一级全黄肉体毛片 | 亚洲国产一区二区三区 | 九色精品在线 | 亚洲国产成a人v在线 | 正在播放国产露脸做91 | 亚洲免费网站在线观看 | 日韩欧美国产精品 | 中文字幕日本在线视频二区 | 日韩久久中文字幕 | 中文字幕一区在线观看视频 | 呦视频在线一区二区三区 |