Límites de seguridad de Docker frente a LXC para servicios domésticos con privilegios

Eva Wong es la redactora técnica y manitas residente en ZimaSpace. Es una geek de toda la vida apasionada por los laboratorios domésticos y el software de código abierto, y se especializa en traducir conceptos técnicos complejos en guías prácticas y fáciles de seguir. Eva cree que alojar servicios propios debería ser divertido, no intimidante. A través de sus tutoriales, ayuda a la comunidad a desmitificar la configuración del hardware, desde montar su primer NAS hasta dominar los contenedores Docker.

Docker es la opción predeterminada más segura cuando un servicio doméstico privilegiado puede mantenerse como una aplicación declarada con montajes limitados. LXC es más limpio cuando realmente necesita un sistema Linux pequeño, pero ninguno crea una frontera de kernel independiente.

La cuestión decisiva no es qué etiqueta parece más aislada. Ambas dependen del confinamiento del kernel del host. Compara los privilegios concedidos realmente, los dispositivos y archivos expuestos, la unidad que parcheas y restauras, y las consecuencias de una fuga. Si la exposición al kernel compartido en sí es inaceptable, deja de comparar Docker y LXC y usa una máquina virtual o un host independiente.

Acepta el límite del kernel compartido antes de comparar funciones

Docker suele empaquetar una aplicación y sus dependencias; LXC presenta un entorno de usuario Linux más completo, con init, cuentas, paquetes y servicios del sistema. Esa diferencia operativa no proporciona a LXC un kernel invitado independiente.

La investigación sobre el confinamiento de contenedores Linux describe los mecanismos de espacios de nombres y políticas como un conjunto heterogéneo cuyas semánticas pueden ser difíciles de auditar. Ese límite de confinamiento del kernel compartido se aplica a ambas opciones e impide que cualquiera de ellas sea la respuesta cuando es obligatorio separar los kernels.

Considera ambos solo para cargas de trabajo de confianza o acotadas. Traslada el código expuesto a Internet, las imágenes desconocidas o la automatización de alto impacto a una máquina virtual cuando un compromiso no deba permitir el acceso directo al kernel del host.

Deja que los privilegios necesarios determinen la opción predeterminada

Docker sigue siendo atractivo cuando el servicio necesita unas pocas capacidades explícitas, configuración de solo lectura y una o dos rutas persistentes. Su definición de Compose puede hacer que esas excepciones sean visibles durante la revisión.

LXC encaja con servicios que esperan un sistema Linux convencional, varios demonios, un gestor de paquetes o una red estable a nivel del sistema. LXC sin privilegios conserva una asignación de UID útil, pero el modo privilegiado, la anidación y los montajes bind amplios reducen esa ventaja.

Cuenta las excepciones en lugar de marcar una casilla de privilegios. Si cualquiera de los diseños necesita red del host, el socket de gestión de contenedores, montajes del sistema con permisos de escritura, acceso a todos los dispositivos o un perfil sin restricciones, rediseña la vía de acceso o sal de la categoría de kernel compartido.

El acceso a dispositivos y almacenamiento determina el alcance del daño

Un coordinador USB, un nodo de renderizado con GPU, una interfaz de SAI o un directorio multimedia deben exponerse con el alcance más limitado que permita el servicio. Las rutas estables de los dispositivos, los montajes de solo lectura y la asignación explícita de propietarios UID/GID son medidas de contención, además de ajustes prácticos.

Un informe reciente sobre una implementación de Proxmox muestra que LXC sin privilegios puede aislar servicios basados en Docker en unidades de restauración independientes, aunque siga compartiendo el kernel del host y la pila de almacenamiento. Ese patrón LXC con radio de impacto reducido solo resulta útil si las excepciones de anidamiento y del controlador de almacenamiento quedan documentadas.

Prefiere Docker cuando una aplicación necesite un único límite de datos pequeño. Prefiere LXC cuando varios servicios del sistema deban ir juntos. Descarta cualquiera de las dos configuraciones si una vulneración permite acceder con escritura a las copias de seguridad, controlar el hipervisor o acceder a datos de otras personas de la familia.

Compara la unidad que parcheas y restauras

En general, revertir Docker implica restaurar la revisión anterior de Compose y la imagen, además de datos coherentes con la aplicación. Revertir LXC puede restaurar todo un entorno de usuario, lo cual es práctico, pero también puede recuperar paquetes y credenciales obsoletos, así como cambios manuales ocultos.

Recrea cada opción en un host desechable. Para Docker, restaura las definiciones, los secretos y los volúmenes; para LXC, vuelve a crear o restaura el contenedor y verifica el estado de los paquetes, la red, los dispositivos y los montajes. Una prueba de recuperación exitosa más sencilla es una evidencia más sólida que un menor consumo de memoria en reposo.

La decisión general de ZimaSpace sobre los límites de servicio de VM, LXC y Docker es el siguiente paso cuando sigue en disputa la necesidad de un kernel independiente.

Veredicto condicional: elige el límite más estrecho que aún contenga los fallos

Elige Docker para una aplicación de confianza bien empaquetada, cuyos dispositivos, capacidades, secretos y rutas persistentes puedan mantenerse explícitos y mínimos.

Elige LXC para un entorno de servicios Linux de confianza que realmente se beneficie de init, paquetes, varios demonios o redes a nivel de sistema, manteniéndolo sin privilegios siempre que sea posible.

No elijas ninguna de las dos opciones si la carga de trabajo necesita un control amplio del host, procesa entradas maliciosas con consecuencias graves o debe resistir una vulneración del kernel del host. En ese caso, una máquina virtual o un equipo independiente no son complicaciones innecesarias: son el límite de seguridad que falta.

Comparaciones de productos

Más para leer

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.