AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 779197
Accepted
Erik-Jan Riemers
Erik-Jan Riemers
Asked: 2016-05-27 06:30:47 +0800 CST2016-05-27 06:30:47 +0800 CST 2016-05-27 06:30:47 +0800 CST

如何保护 docker 主机不允许生根

  • 772

我正在尝试使服务器上的 docker 更加安全。主要问题是大多数人说“如果一个人可以访问 docker,那么他们也可以是 root”,因为管理员很少这样做,这不是您想要的。

详细地说,他们可以使用-v并挂载/etc到/mnt容器中并更改影子文件并获得对主机的访问权限。他们也可以使用-d, 或特权选项来做更多事情。

所以基本上,我想“尝试”和限制一些事情。

  1. 卷绑定挂载
  2. 特权
  3. --add-cap
  4. -d(某些项目?)

到目前为止我的想法:

  • docker bash 脚本的别名,在其上使用 sudo 并正则表达式所有他们不应该做的事情。
  • 打开远程 api,保护它,也许用 nginx 和 nginx 中的正则表达式对其进行反向代理,这是他们不应该做的事情。
  • 使用其他工具?Mesos/马拉松/蜂群/造船厂/随便

可选项目是使容器提交到 git 代码,并让“检查器”验证内容Dockerfile并为它们创建图像。然后签署该映像并自动部署它。(但这不会再给他们太多的自由了)

此外,删除绑定卷也不是最好的。如果我们有一个 docker 插件,上面写着“你只能/data以用户 X 的身份挂载”,那会简单得多,其中那个USER是Dockerfile用户 X。

像docker-novolume-plugin这样的东西已经是卷的一个很好的开始,虽然不限制绑定卷。

最后的问题是,我怎样才能让用户以他们自己的用户/docker 身份构建/拉取/运行 docker 映像,而不能 root 系统。不一定是完美的,只要它有效。

security docker kubernetes docker-compose apache-mesos
  • 1 1 个回答
  • 1824 Views

1 个回答

  • Voted
  1. Best Answer
    dawud
    2016-05-28T10:40:24+08:002016-05-28T10:40:24+08:00

    保护docker引擎需要关注许多不同的方面,而纵深防御总是与安全层有关。

    您列出的要求之一是限制用户可以命令docker引擎执行的操作,这可能是最重要的要求之一,因为到目前为止,docker引擎还没有实现授权控制。

    您的选择包括:

    • 像Twistlock这样的闭源解决方案,一个实现 RBAC 和策略控制以访问dockerAPI的项目

    • OpenShift Origin,一个开源项目,以安全约束和细粒度授权策略的形式实现基于角色的访问控制。它相当容易部署,并且对开箱即用的解决方案有很大帮助。

    我还建议研究引擎可以部署到的不同操作系统docker,并建议不要使用通用操作系统,而是使用专用操作系统,例如Atomic。Atomic 和 OpenShift 一起,将确保您还可以:

    • 定期扫描您的图像。
    • 使用受信任的注册表
    • 为您的容器定义seccomp配置文件。这项技术的改进及其实施是整个世界正在进行的一项工作。docker
    • 删除容器中应用程序不需要的功能。
    • 使用 SELinux。列出的许多其他安全措施都有局限性,但 SELinux 在其他一切都失败时可以很好地提供安全网络。一些例子:它将有助于限制对docker套接字的访问,它将控制是否允许在容器之间共享文件描述符,它可以为每个容器/容器组分配不同的 MCS 级别,以将它们与主机和其他容器隔离。
    • 5

相关问题

  • OpenSSH 漏洞 [重复]

  • 选择什么安全套件?

  • 安全地授予对 SQL 2005 复制监视器的访问权限以创建快照

  • SSH 服务器零日漏洞利用 - 保护自己的建议

  • 如何将安全组添加到正在运行的 EC2 实例?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve