Un servidor ubuntu aloja 3 aplicaciones, todas en dominios separados.
Cada aplicación tiene sus propios desarrolladores.
Los desarrolladores de aplicaciones pertenecen al grupo linux "sftp".
chroot
permite el acceso de contraseña sftp para cada desarrollador de aplicaciones.
/home/app1/prod
/home/app2/prod
/home/app3/prod
En sshd_config
Match Group sftp
PasswordAuthentication yes
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
Nuestra preocupación es una vulnerabilidad de programación en una aplicación que causa problemas en las otras 2 aplicaciones.
¿Deberíamos usar el contenedor lxc en lugar de chroot? ¿Por qué? ¿El cambio a los contenedores lxc será transparente para los desarrolladores de aplicaciones?
chroot
hace es cambiar el directorio raíz de un proceso. No ofrece aislamiento ni nada más.Respuestas:
Los contenedores de Linux (LXC) son un método de virtualización a nivel de sistema operativo para ejecutar múltiples instalaciones de servidores aislados (contenedores) en un único host de control. LXC no proporciona una máquina virtual, sino que proporciona un entorno virtual que tiene su propio proceso y espacio de red. Es similar a un chroot, pero ofrece mucho más aislamiento.
Los contenedores de Linux tienen varias características / ventajas:
Ventajas:
Mejor aislamiento en comparación con un chroot (cárcel chroot). Gastos indirectos bajos. LXC utiliza recursos mínimos en términos de RAM y espacio en el disco duro sin la sobrecarga de instalar un SO huésped en una máquina virtual (VMWare / VirtualBox / KVM).
Las aplicaciones y servicios (servidores) se ejecutan a velocidad nativa.
Hay soporte para contenedores Linux en libvirt.
Los contenedores de Linux funcionan bien con btrfs.
Pero también hay un inconveniente:
Los contenedores de Linux ejecutan procesos de Linux en un kernel de Linux. Esto significa que puede ejecutar Linux (contenedor Fedora en un host Ubuntu) pero no otros sistemas operativos (no BSD / OSX / Windows).
No hay interfaces GUI (gráficas) para configurar o administrar los contenedores.
Hay una escasez de documentación sobre cómo instalar y configurar un contenedor. La configuración de un contenedor requiere un modesto conocimiento técnico y habilidad (y una gran cantidad de paciencia).
fuente