做盗版电影网站赚钱,怎么创建公众号赚钱,赣州做网站的公司有哪家好,扬州建设工程信息网站这里主要是rootless的方案。 在以 root 用户身份运行 Docker 会带来一些潜在的危害和安全风险#xff0c;这些风险包括#xff1a; 容器逃逸#xff1a;如果一个容器以 root 权限运行#xff0c;并且它包含了漏洞或者被攻击者滥用#xff0c;那么攻击者可能会成功逃出容器…这里主要是rootless的方案。 在以 root 用户身份运行 Docker 会带来一些潜在的危害和安全风险这些风险包括 容器逃逸如果一个容器以 root 权限运行并且它包含了漏洞或者被攻击者滥用那么攻击者可能会成功逃出容器并在宿主系统上执行恶意操作。这会导致宿主系统的安全性受到威胁。 特权升级在以 root 用户身份运行 Docker 的情况下容器内的进程可能会尝试特权升级获取宿主系统的 root 权限。这可能会导致严重的安全问题因为攻击者可能会利用这些权限来控制宿主系统。 文件系统访问以 root 用户身份运行的容器可以访问宿主系统上的文件系统这可能会导致机密文件的泄漏或文件的损坏。 网络权限容器以 root 权限运行时可能会滥用网络权限例如进行端口扫描、DDoS 攻击等恶意行为。 为了减少这些风险推荐采取以下做法 以非root用户身份运行容器最佳实践是在容器中以非root用户的身份运行应用程序。这可以通过在容器中指定普通用户来实现并避免使用 USER 指令将容器进程切换到 root 用户。 限制容器的权限使用 Docker 的安全配置选项如 --security-opt可以限制容器的能力例如禁止容器访问宿主系统的特定目录、文件和设备。 更新和监控容器定期更新容器的基础镜像和应用程序以确保安全漏洞得到修复。同时使用容器监控和审计工具来检测不寻常的活动。 限制容器能力使用 Docker 的能力capabilities设置来限制容器的权限仅提供所需的最小权限来运行应用程序。 Docker Rootless 基本概念 Docker Rootless 是一种在非特权模式下运行 Docker 的方式允许以非root用户身份来管理 Docker 守护进程和容器以降低潜在的安全漏洞风险。在这种模式下即使在 Docker 安装期间也无需使用root权限。这有助于提高容器的安全性因为以非特权用户身份运行容器可以限制容器内部的特权操作。对于特权模式的 Docker 容器攻击者可能会利用宿主机文件读写权限等漏洞来逃逸因此非特权模式更为安全。 同时在 Docker 中容器可以选择是否以特权模式运行通过设置 --privilegedfalse 可以将容器切换为非特权模式。总的来说Docker Rootless 模式提供了一种更加安全的方式来运行 Docker 容器降低了潜在的安全风险特别是在多租户环境中或需要更严格的容器隔离时这种模式非常有用。 Rootless 模式允许以非 root 用户身份运行 Docker 守护进程dockerd和容器以缓解 Docker 守护进程和容器运行时中潜在的漏洞。 Rootless 模式是在 Docker v19.03 版本作为实验性功能引入的在 Docker v20.10 版本 GA。 Rootless 模式如何运作 Rootless 模式利用 user namespaces 将容器中的 root 用户和 Docker 守护进程dockerd用户映射到宿主机的非特权用户范围内。Docker 此前已经提供了 --userns-remap 标志支持了相关能力提升了容器的安全隔离性。Rootless 模式在此之上让 Docker 守护进程也运行在重映射的用户名空间中 用户命名空间自 Linux 内核 v3.8 以来就已存在因此该功能在 Docker 中已经存在很长时间了 Rootless 模式在用户名称空间内执行Docker守护程序和容器。这与userns-remapmode非常相似除了模式之外userns-remap守护进程本身以root特权运行而在Rootless 模式下守护程序和容器都在没有root特权的情况下运行。
Rootless 模式不使用具有SETUID位或文件功能的二进制文件除了newuidmap和newgidmap它们是允许在用户名称空间中使用多个UID / GID所必需的。
Rootless 模式已知限制
• 仅支持以下存储驱动程序• overlay2 仅在以5.11或更高版本的内核Ubuntu风格的内核或Debian风格的内核运行时• fuse-overlayfs仅在与内核4.18或更高版本一起运行且fuse-overlayfs已安装的情况下• btrfs仅在使用内核4.18或更高版本运行或~/.local/share/docker通过user_subvol_rm_allowedmount选项安装时• vfs• 仅当与cgroup v2和systemd一起运行时才支持Cgroup。请参阅限制资源。• 不支持以下功能• AppArmor• 检查站• 叠加网络• 暴露SCTP端口• 要使用该ping命令请参阅路由ping数据包。• 要公开特权TCP / UDP端口1024请参阅公开特权端口。• IPAddress显示在中docker inspect并在RootlessKit的网络名称空间中命名。这意味着如果不nsenter进入网络名称空间则无法从主机访问IP地址。• 主机网络docker run --nethost。
看似Rootless 实则不然
• docker run --user foo它允许你以非 root 身份在容器中执行进程。值得注意的是你无法执行包安装等特权活动。runc、containerd 等仍以 root 身份运行。• usermod -aG docker foo允许非root用户连接到docker套接字。相当于允许用户以 root 身份运行。• sudo docker和chmod s dockerd: 无需解释• dockerd --userns-remap它允许你以非 root 身份运行容器。runc、containerd 等仍然以 root 身份运行。
Rootless 模式实践 容器快了却不安全了Rootless 安排上