上个月在Linux安全峰会上的演讲,介绍了LXD在容器安全方便存在的问题。LXD是Canonical基于Linux容器(LXC)开发的容器管理程序。Stéphane Graber和Tycho Andersen的议题讨论了一些问题的细节。

\\

LXD不是一种新的虚拟化技术,而是一个利用LXC特性的工具。LXC使用由内核提供的名字空间(namespace)和控制组(control groups, cgroups)特性来实现。因此,它使用名字空间API提供的安全功能。

\\

LXD中广泛使用了cgroups来实施资源配额,对容器的CPU、内存交换、磁盘和网络流量进行限制。这也使得任何因为共享内核资源引起的问题,会影响到所有运行中的容器。其中一个示例是用于追踪文件系统变动的inotify句柄。该资源的全局限制是每个用户512个,这意味着主机上所有运行的容器最多能使用512个句柄。这对于像systemd这样的应用程序来说是远远不够的。当systemd因为inotify句柄不足退而使用轮训文件系统时,对系统影响会更大。其他类似的资源还包括网络表(例如用于保存路由项)和ulimit。

\\

对于上述问题中的一部分,建议的解决方案是虚拟化存在限制的环境,例如将限制绑定到名字空间,使其成为容器的局部属性。然而,对于类似ulimit这样的属性,目前还不完全清楚哪个名字空间比较适合。

\\

LXD以root特权的守护进程运行,这意味它比LXC拥有更多的特权。LXD确实从其容器中移除了一些功能,例如加载/卸载内核模块,但是保留了大部分功能,因为它无法提前预知容器中运行的应用程序需要哪些功能。

\\

Linux安全模块(Linux Security Modules, LSM)是一个Linux框架,它允许插入一个安全模块的实现,在不依赖特定模型的情况下来执行访问控制。LSM的实现有AppArmor和SELinux。LXC同时支持AppArmor和SELinux,而LXD目前只支持AppArmor。LXD容器的首选隔离方案是名字空间,但是也安装了一个AppArmor配置文件以避免跨容器访问资源(例如文件)。

\\

演讲的第二部分覆盖了容器的检查点和恢复功能。检查点和恢复进程保存运行中的容器内存状态,并允许在将来的某个时间点恢复回来。检查点/恢复功能的技术涉及到通过类似ptrace系统调用来深入获取进程的状态。然而,类似seccomp这样的安全措施可能会阻止类似的系统调用,因此检查点功能需要特别的处理。

\\

查看英文原文:Security Insights into the LXD Container Hypervisor

从安全视角来看LXD容器管理程序相关推荐

  1. 使用Juju将OpenStack部署在单机的LXD容器上(by quqi99)

    作者:张华 发表于:2016-08-05 版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 http://blog.csdn.net/quqi99 ) 理论基础 ...

  2. snap学习之搭建lxc/lxd容器验证snap包

      lxc是Linux Container的简写,它是一种内核虚拟化技术,可以提供轻量级的虚拟化,以便隔离进程和资源:它不需要提供指令解释机制,没有全虚拟化的复杂性,相当于C++中的NameSpace ...

  3. 【LXD容器与宿主机Ubuntu系统 共享文件夹】

    LXD容器与宿主机Ubuntu系统 共享文件夹 1 先给宿主机共享文件夹权限 2 在宿主机创建共享区域 3 将文件夹共享到指定的LXD容器 4 在容器添加 profile (可选) 目的: 需要将移动 ...

  4. LXC 和 LXD 容器总结

    1. 概述 1.1 LXC LXC是Linux Containers的缩写.它是一种虚拟化技术,通过一个Linux内核在一个受控主机上虚拟地运行多个Linux系统. LXC使用内核的Cgroups功能 ...

  5. juju创建lxd容器时如何使用本地镜像(by quqi99)

    作者:张华 发表于:2023-03-01 版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 问题 没有外网,所以配置了一个local custom镜像库,也使用了 ...

  6. LXD 2.0 系列(三):你的第一个 LXD 容器

    这是 LXD 2.0 系列介绍文章的第三篇博客. LXD 入门 安装与配置 你的第一个 LXD 容器 资源控制 镜像管理 远程主机及容器迁移 LXD 中的 Docker LXD 中的 LXD 实时迁移 ...

  7. lxd容器安装cuda11

    目录 1 安装驱动 2 安装cuda 3 环境变量配置 4 安装cudnn 1 安装驱动 在安装cuda时一般先把显卡驱动安装上,lxd容器由于是虚拟化,因此安装显卡驱动不能安装到内核,在安装命令需加 ...

  8. lxd容器安装cuda10.0

    目录 1.安装驱动 2.安装cuda10.0 ​ 3.验证是否安装成功 4.遇到的问题 1.安装驱动 注意,驱动和cuda不要一起安装,以内lxd容器的驱动不能安装到内核,否则会报错. sudo ch ...

  9. lxc/lxd容器使用

    lxd版本:4.0.5 Liunux:Ubuntu 20.04.1 LTS lxc是Linux Container的简称,也就是Linux容器.lxc/lxd和docker容器相比,更接近虚拟机的环境 ...

最新文章

  1. 5300亿参数的「威震天-图灵」,微软、英伟达合力造出超大语言模型
  2. 怎么把写好的python代码打包成exe-【Python之点到为止】如何优雅的将你的代码打包成EXE...
  3. 笔记-项目整体管理-项目管理计划
  4. html页面选择指定条件在下方显示,如何从符合特定条件的HTML中找到CSS选择器?...
  5. 372 Super Pow 超级次方
  6. sklearn中的验证
  7. 动词变名词的变化规则_动词过去式变化规则 - 点评英语网
  8. 6.Half Lambert光照Diffuse Shader
  9. hibernate注解实体类(Dept.java)
  10. JAXB众所周知的秘密
  11. java.net.url 中文乱码,.Net获取URL中文参数值的乱码问题解决方法总结
  12. 最新 | 更小、更快、更强!EfficientNetV2:Smaller-Faster-Better
  13. 【LeetCode】贪心算法--分发糖果(135)
  14. 对网站的文件和资源进行优化、前端开发优化
  15. 大数据:大一整年感悟及总结
  16. linux vbook voyo_原笔迹手写平板-VOYO VBOOK V1体验小记
  17. Linux搭建web服务器
  18. 【分享】找回word文档保护密码
  19. 国内Linux内核先驱者陈莉君教授领衔,业界首个产学研 eBPF技术探索SIG成立!
  20. CityEngine2016-学习笔记(1)Writing Rules

热门文章

  1. 供应链新格局重塑全球农业贸易 对话国际农民丰收节贸易会
  2. mysql导入导出乱码问题
  3. oracle 11g 数据库恢复技术 ---03 补充日志
  4. _ZNote_Chrom_插件_Chrom运行Android软件_APK
  5. jQuery中hover与mouseover和mouseout的区别分析
  6. 关于系统用户数,并发用户数,在线用户数,吞吐量
  7. android: 发送自定义广播
  8. Codevs 1021 玛丽卡
  9. js获取url的参数
  10. 多图指南——微信小程序设计规范