¿Existen diferencias notables entre LXC (contenedores de Linux) y las cárceles de FreeBSD en términos de seguridad, estabilidad y rendimiento?
A primera vista, ambos enfoques se ven muy similares.
¿Existen diferencias notables entre LXC (contenedores de Linux) y las cárceles de FreeBSD en términos de seguridad, estabilidad y rendimiento?
A primera vista, ambos enfoques se ven muy similares.
Respuestas:
No importa el nombre elegante utilizado aquí, ambas son soluciones a un problema específico: una mejor solución de segregación que el clásico Unix Chroot . La virtualización a nivel del sistema operativo, los contenedores, las zonas o incluso "chroot with steroids" son nombres o títulos comerciales que definen el mismo concepto de separación del espacio de usuario, pero con características diferentes.
Chroot se introdujo el 18 de marzo de 1982, meses antes del lanzamiento de 4.2 BSD , como una herramienta para probar su instalación y sistema de construcción, pero hoy todavía tiene sus fallas. Dado que el primer objetivo de chroot era solo proporcionar una ruta de raíz nueva , se descubrieron otros aspectos del sistema que debían aislarse o controlarse (red, vista de proceso, rendimiento de E / S). Aquí es donde aparecieron los primeros contenedores (virtualización a nivel de usuario).
Ambas tecnologías (FreeBSD Jails y LXC) hacen uso del aislamiento del espacio del usuario para proporcionar otra capa de seguridad. Esta compartimentación asegurará que un proceso determinado se comunicará solo con otros procesos en el mismo contenedor en el mismo host, y si se utiliza cualquier recurso de red para lograr la comunicación "fuera del mundo", todo se enviará a la interfaz / canal asignado que este contenedor tiene.
Caracteristicas
Cárceles de FreeBSD:
allow.mount.zfs
para lograr más potencia, y otras variables comochildren.max
definir max max children jails.vnet
, permitiendo que cada cárcel tenga su propia pila de red, interfaces, direcciones y tablas de enrutamiento;nullfs
para ayudar a vincular carpetas a las ubicadas en el servidor real dentro de una cárcel;sysctl
).security.jail.allow.*
los parámetros limitarán las acciones del usuario raíz de esa cárcel.Contenedores Linux (LXC):
Funcionalidad de migración en vivo en desarrollo. Es realmente difícil decir cuándo estará listo para su uso en producción, ya que docker / lxc tendrá que lidiar con la pausa, la instantánea, la migración y la consolidación del proceso del espacio de usuario: ref1 , ref2 .La migración en vivo funciona con contenedores básicos (sin transferencia de dispositivos ni servicios de red complejos ni configuraciones de almacenamiento especiales).Docker ya no usa lxc. Ahora tienen una lib específica llamada libcontainer que maneja la integración con el espacio de nombres Kernel de bajo nivel y las características de cgroups directamente.
Ninguna de las tecnologías es una panacea de seguridad, pero ambas son formas bastante buenas de aislar un entorno que no requiere virtualización completa debido a la infraestructura de sistemas operativos mixtos. La seguridad vendrá después de mucha lectura de documentación e implementación de kernel tunables, MAC y aislamientos que esas virtudes de nivel de sistema operativo le ofrecen.
Ver también:
fuente
root
(y por lo tanto se ubicaran en la ubicación de los contenedores en todo el sistema).