以下介紹了使用 Docker 服務的安全加固方案,幫助您搭建一個安全可靠的容器集成環境。
啟用強制訪問控制(Mandatory Access Control (MAC)),根據業務場景的具體分析,對 Docker 中使用的各種資源設置訪問控制。 啟用 AppAamor 功能:
$ docker run --interactive --tty --security-opt="apparmor:PROFILENAME" centos
啟用 SElinux 功能:
$ docker daemon --selinux-enabled
關閉 docker API 2375 端口,防止出現安全問題后,docker 權限暴露。
在軟件使用中,有一些必須由 root 用戶才能夠進行的操作。但從安全角度,您需要將這一部分操作與僅使用普通用戶權限即可執行的操作分離解耦。 在編寫dockerfile時,您可以使用類似如下的命令創建一個普通權限用戶,并設置創建的UID為以后運行程序的用戶:
RUN useradd noroot -u 1000 -s /bin/bash --no-create-home USER noroot RUN Application_name
默認情況下,Docker 容器是沒有特權的,一個容器不允許訪問任何設備;但當使用–privileged選項時,則該容器將能訪問所有設備。
例如,當打開–privileged選項后,您就可以對Host中/dev/下的所有設備進行操作。但如果不是必須對host上的所有設備進行訪問的話,您可以使用–device僅添加需要操作的設備。
Docker的日志可以分成兩類,一類是 stdout 標準輸出,另一類是文件日志。Dockerd支持的日志級別有debug、info、warn、error、fatal,默認的日志級別為info。 必要的情況下,您需要設置日志級別,這可以通過配置文件,或者啟動參數-l或–log-level來完成。
方法一:修改配置文件/etc/docker/daemon.json。
/etc/docker/daemon.json
{ "log-level": "debug" }
方法二:使用docker run的時候指定--log-driver=syslog --log-opt syslog-facility=daemon。
--log-driver=syslog --log-opt syslog-facility=daemon
在生產環境中使用漏洞掃描工具可以檢測鏡像中的已知漏洞。
容器通常都不是從頭開始構建的,所以一定要進行安全掃描,以便及時發現基礎鏡像中任何可能存在的漏洞,并及時更新補丁。
在應用程序交付生命周期中加入漏洞掃描的安全質量控制,防止部署易受攻擊的容器。
通過采用以上積極的防范措施,即在整個容器的生命周期中建立和實施安全策略,可以有效地保證一個集成容器環境的安全性。
回答所涉及的環境:聯想天逸510S、Windows 10。
以下介紹了使用 Docker 服務的安全加固方案,幫助您搭建一個安全可靠的容器集成環境。
使用強制訪問控制策略
啟用強制訪問控制(Mandatory Access Control (MAC)),根據業務場景的具體分析,對 Docker 中使用的各種資源設置訪問控制。 啟用 AppAamor 功能:
啟用 SElinux 功能:
關閉2375端口
關閉 docker API 2375 端口,防止出現安全問題后,docker 權限暴露。
不要使用root用戶運行docker應用程序
在軟件使用中,有一些必須由 root 用戶才能夠進行的操作。但從安全角度,您需要將這一部分操作與僅使用普通用戶權限即可執行的操作分離解耦。 在編寫dockerfile時,您可以使用類似如下的命令創建一個普通權限用戶,并設置創建的UID為以后運行程序的用戶:
禁止使用特權
默認情況下,Docker 容器是沒有特權的,一個容器不允許訪問任何設備;但當使用–privileged選項時,則該容器將能訪問所有設備。
例如,當打開–privileged選項后,您就可以對Host中/dev/下的所有設備進行操作。但如果不是必須對host上的所有設備進行訪問的話,您可以使用–device僅添加需要操作的設備。
開啟日志記錄功能
Docker的日志可以分成兩類,一類是 stdout 標準輸出,另一類是文件日志。Dockerd支持的日志級別有debug、info、warn、error、fatal,默認的日志級別為info。 必要的情況下,您需要設置日志級別,這可以通過配置文件,或者啟動參數-l或–log-level來完成。
方法一:修改配置文件
/etc/docker/daemon.json。方法二:使用docker run的時候指定
--log-driver=syslog --log-opt syslog-facility=daemon。定期安全掃描和更新補丁
在生產環境中使用漏洞掃描工具可以檢測鏡像中的已知漏洞。
容器通常都不是從頭開始構建的,所以一定要進行安全掃描,以便及時發現基礎鏡像中任何可能存在的漏洞,并及時更新補丁。
在應用程序交付生命周期中加入漏洞掃描的安全質量控制,防止部署易受攻擊的容器。
通過采用以上積極的防范措施,即在整個容器的生命周期中建立和實施安全策略,可以有效地保證一個集成容器環境的安全性。
回答所涉及的環境:聯想天逸510S、Windows 10。