一个 ubuntu 服务器托管 3 个应用程序,它们都位于不同的域中。
每个应用程序都有自己的开发人员。
应用程序开发人员属于 linux“sftp”组。
chroot
允许每个应用程序开发人员使用密码 sftp 进行访问。
/home/app1/prod
/home/app2/prod
/home/app3/prod
在 sshd_config 中
Match Group sftp
PasswordAuthentication yes
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
我们担心一个应用程序中的编程漏洞会导致其他两个应用程序出现问题。
我们应该使用 lxc 容器而不是 chroot 吗?为什么?对 lxc 容器的更改对应用程序开发人员来说是否透明?
答案1
Linux 容器 (LXC) 是一种操作系统级虚拟化方法,用于在单个控制主机上运行多个隔离的服务器安装(容器)。LXC 不提供虚拟机,而是提供具有自己的进程和网络空间的虚拟环境。它类似于 chroot,但提供更多的隔离。
Linux 容器有几个特性/优点:
优点:
与 chroot (chroot jail) 相比,隔离性更好。开销低。LXC 占用的 RAM 和硬盘空间资源最少,且无需在虚拟机 (VMWare / VirtualBox / KVM) 中安装客户操作系统。
应用程序和服务(服务器)以本机速度运行。
libvirt 支持 Linux 容器。
Linux 容器与 btrfs 配合良好。
但也有缺点:
Linux 容器在 Linux 内核上运行 Linux 进程。这意味着您可以运行 Linux(Ubuntu 主机上的 Fedora 容器),但不能运行其他操作系统(不是 BSD / OSX / Windows)。
没有用于配置或管理容器的 GUI(图形)界面。
关于如何安装和配置容器的文档很少。配置容器需要一定的技术知识和技能(以及极大的耐心)。