鍍金池/ 教程/ Linux/ 內(nèi)核能力機(jī)制
利用數(shù)據(jù)卷容器來備份、恢復(fù)、遷移數(shù)據(jù)卷
Docker 網(wǎng)絡(luò)實(shí)現(xiàn)
實(shí)戰(zhàn) Django
YAML 模板文件
名字空間
控制組
編輯網(wǎng)絡(luò)配置文件
列出
進(jìn)入容器
Compose 命令說明
創(chuàng)建 Tomcat/Weblogic 集群
守護(hù)態(tài)運(yùn)行
快速配置指南
其它安全特性
示例:創(chuàng)建一個(gè)點(diǎn)到點(diǎn)連接
CentOS 系列安裝 Docker
數(shù)據(jù)卷容器
鏡像
指令
創(chuàng)建鏡像
Docker 容器
創(chuàng)建鏡像
常用倉庫
總結(jié)
什么是 Docker
存出和載入鏡像
使用
獲取鏡像
容器互聯(lián)
為什么要使用 Docker?
使用 Wordpress 入門 Fig
啟動(dòng)
容器訪問控制
私有倉庫
使用
基本架構(gòu)
自定義網(wǎng)橋
環(huán)境變量參考
實(shí)戰(zhàn) Rail
服務(wù)端的防護(hù)
刪除
鏡像的實(shí)現(xiàn)原理
多臺物理主機(jī)之間的容器互聯(lián)
Docker 倉庫
簡介
數(shù)據(jù)卷
命令參考
使用 Supervisor 來管理進(jìn)程
移除
基本結(jié)構(gòu)
命令查詢
終止容器
聯(lián)合文件系統(tǒng)
安裝
簡介
配置 DNS
內(nèi)核能力機(jī)制
導(dǎo)出和導(dǎo)入容器
配置 docker0 網(wǎng)橋
倉庫配置文件
內(nèi)核名字空間
標(biāo)準(zhǔn)化開發(fā)測試和生產(chǎn)環(huán)境
外部訪問容器
fig.yml 參考
Ubuntu 系列安裝 Docker
有用資源
安裝
端口映射實(shí)現(xiàn)
安裝 Fig
工具和示例
簡介
控制組
容器格式
Docker Hub

內(nèi)核能力機(jī)制

能力機(jī)制(Capability)是 Linux 內(nèi)核一個(gè)強(qiáng)大的特性,可以提供細(xì)粒度的權(quán)限訪問控制。 Linux 內(nèi)核自 2.2 版本起就支持能力機(jī)制,它將權(quán)限劃分為更加細(xì)粒度的操作能力,既可以作用在進(jìn)程上,也可以作用在文件上。

例如,一個(gè) Web 服務(wù)進(jìn)程只需要綁定一個(gè)低于 1024 的端口的權(quán)限,并不需要 root 權(quán)限。那么它只需要被授權(quán) net_bind_service 能力即可。此外,還有很多其他的類似能力來避免進(jìn)程獲取 root 權(quán)限。

默認(rèn)情況下,Docker 啟動(dòng)的容器被嚴(yán)格限制只允許使用內(nèi)核的一部分能力。

使用能力機(jī)制對加強(qiáng) Docker 容器的安全有很多好處。通常,在服務(wù)器上會運(yùn)行一堆需要特權(quán)權(quán)限的進(jìn)程,包括有 ssh、cron、syslogd、硬件管理工具模塊(例如負(fù)載模塊)、網(wǎng)絡(luò)配置工具等等。容器跟這些進(jìn)程是不同的,因?yàn)閹缀跛械奶貦?quán)進(jìn)程都由容器以外的支持系統(tǒng)來進(jìn)行管理。

  • ssh 訪問被主機(jī)上ssh服務(wù)來管理;
  • cron 通常應(yīng)該作為用戶進(jìn)程執(zhí)行,權(quán)限交給使用它服務(wù)的應(yīng)用來處理;
  • 日志系統(tǒng)可由 Docker 或第三方服務(wù)管理;
  • 硬件管理無關(guān)緊要,容器中也就無需執(zhí)行 udevd 以及類似服務(wù);
  • 網(wǎng)絡(luò)管理也都在主機(jī)上設(shè)置,除非特殊需求,容器不需要對網(wǎng)絡(luò)進(jìn)行配置。

從上面的例子可以看出,大部分情況下,容器并不需要“真正的” root 權(quán)限,容器只需要少數(shù)的能力即可。為了加強(qiáng)安全,容器可以禁用一些沒必要的權(quán)限。

  • 完全禁止任何 mount 操作;
  • 禁止直接訪問本地主機(jī)的套接字;
  • 禁止訪問一些文件系統(tǒng)的操作,比如創(chuàng)建新的設(shè)備、修改文件屬性等;
  • 禁止模塊加載。

這樣,就算攻擊者在容器中取得了 root 權(quán)限,也不能獲得本地主機(jī)的較高權(quán)限,能進(jìn)行的破壞也有限。

默認(rèn)情況下,Docker采用 白名單 機(jī)制,禁用 必需功能 之外的其它權(quán)限。 當(dāng)然,用戶也可以根據(jù)自身需求來為 Docker 容器啟用額外的權(quán)限。