Noticias

Ubuntu explicado: Cómo garantizar la seguridad y estabilidad de las ejecuciones individuales en la nube—Parte 3

Actualizaciones de Ubuntu: proteja múltiples instancias de Ubuntu mientras maximiza el tiempo de actividad

La mayoría de la gente sabe que las actualizaciones de seguridad de las aplicaciones son importantes. Sin embargo, lograr esto y maximizar el tiempo de actividad de los servicios que ejecuta puede resultar un desafío. Cada cambio, incluso la aplicación de un parche de seguridad, conlleva cierto riesgo de interrumpir su carga de trabajo. Por lo tanto, es necesario considerar cuidadosamente su estrategia de actualización.

Este blog es el tercero de una serie de tres artículos escritos por John Chittum (Gerente de Ingeniería de CPC) y Aaron Whitehouse (Director Senior de Soporte de Nube Pública). En la primera parte, presentamos el concepto de distribuciones de Ubuntu, la estructura de los archivos y cómo se actualizan los paquetes de software. En la Parte 2, explicamos cómo actualizar una única instancia de Ubuntu. Estos antecedentes le ayudarán a comprender lo que cubrimos a continuación, así que léalos antes de continuar.

Ubuntu es una distribución de Linux basada en Debian que utiliza dos tipos de paquetes principales: paquetes snap y Debian (.deb). Snap tiene su propio mecanismo de actualización, por lo que esta serie de blogs sólo se centra en las actualizaciones de paquetes de Debian. Nuestro objetivo es describir la mejor manera de actualizar una suite en múltiples instancias. Luego puede utilizar esto para decidir cuál se adapta a sus necesidades específicas.

Actualice las diferencias entre instancias únicas y múltiples de Ubuntu

Puede actualizar una gran cantidad de instancias de Ubuntu de la misma manera que describimos para una sola instancia en la Parte 2. Si le preocupa el tiempo de actividad del servicio y tiene los recursos para invertir, tiene más opciones con múltiples instancias. Usted se beneficia de la implementación coordinada de actualizaciones para maximizar el tiempo de actividad del dispositivo.

Tomamos una serie de medidas para reducir el riesgo de que las actualizaciones interrumpan las cargas de trabajo (consulte la Parte 1). Sin embargo, siempre existe la posibilidad de que una actualización tenga un impacto negativo en su entorno particular. Por lo tanto, muchos de nuestros usuarios con grandes activos de Ubuntu optan por implementar actualizaciones de seguridad más lentamente en las instancias de producción. Esto le permite detectar cualquier problema en su entorno antes de que la actualización se implemente ampliamente. La otra cara de la moneda es que deja esas instancias expuestas a vulnerabilidades de seguridad durante la implementación. Es necesario equilibrar la demora en reparar los agujeros de seguridad con el mayor tiempo que lleva descubrir el problema. Debes involucrar a tu equipo de seguridad en el análisis.

Cada entorno de producción es diferente, pero a continuación se enumeran algunos enfoques y aspectos a considerar. Si administra las actualizaciones de forma centralizada, asegúrese de desactivar las actualizaciones desatendidas en la instancia de ejecución (consulte la Parte 2).

LEER  Cómo instalar y usar Ngrok en Kali Linux

monitor

Ralentizar la implementación de parches de seguridad sólo puede ayudar si nota un problema. ¿Tiene controles de salud automatizados? ¿Ha configurado la observabilidad para su entorno de producción? ¿Existe alguna forma para que los usuarios internos de Ubuntu le avisen si algo deja de funcionar como se esperaba?

Servicio de alta disponibilidad

Imagine un servicio de alta disponibilidad que pueda tolerar el error de una o más instancias. Debería ser relativamente seguro actualizar cualquiera de estas instancias. Sin embargo, actualizar todas las instancias simultáneamente pone en riesgo el servicio.

En este caso, normalmente querrá actualizar una zona de disponibilidad a la vez o actualizar instancias relacionadas del dominio. Puede monitorear si las instancias de ejecución actualizadas tienen algún impacto en su servicio, preferiblemente utilizando verificaciones de estado de ejecución automatizadas. Luego, si todo tiene el aspecto esperado, puede transferir las actualizaciones a la siguiente zona de disponibilidad.

Actualización no tripulada y servicio HA

Estos requisitos significan que las actualizaciones desatendidas generalmente no son una mala opción para dichos entornos. Las actualizaciones desatendidas desconocen los grupos de dispositivos y las actualizaciones se producen en momentos no coordinados, independientemente del estado de la persona que realiza la actualización.Puede configurar el tiempo para la operación de actualización no tripulada /etc/systemd/system/timers.target.wants/apt-daily-upgrade.timer Para garantizar que no todos los nodos se actualicen exactamente al mismo tiempo y propaguen las actualizaciones durante un período de tiempo. Aun así, estas instancias se actualizarán sin conocer el estado de la instancia que recibió la actualización. A menos que intervenga manualmente, las actualizaciones que le causan problemas seguirán implementándose en su entorno de producción.

Riesgos de las herramientas de reinicio automático con servicios HA

Asimismo, existen herramientas que pueden monitorear cuándo es necesario reiniciar una instancia y hacerlo por usted. Tenga cuidado de asegurarse de que también comprendan su instancia más amplia y su estado.Ejemplos de servicios de código abierto no relacionados con Ubuntu son Kured. Kured es un conjunto de demonios de Kubernetes que realizan reinicios automáticos de nodos cuando es necesario.Puedes configurar Kured como Verifique las alertas activas antes de reiniciar otros nodos, pero necesitas configurarlo. Estamos viendo problemas de actualización en entornos de clientes que solo ocurren al reiniciar. Sin controles de estado, algo como Kured podría hacer que los problemas al reiniciar tengan un mayor impacto en el clúster.

Herramienta de actualización de concienciación sobre flotas

Ubuntu tiene disponibles herramientas de administración de actualizaciones con reconocimiento de colas. Servicio de parches invitados para Azure Con el tiempo, las actualizaciones se implementarán en todas las zonas de disponibilidad y regiones. Utilizará el monitoreo de estado para intentar identificar problemas de actualización y pausar el lanzamiento. Trabajamos estrechamente con el equipo de AzGPS para brindarle a Ubuntu soporte de primera clase en esta herramienta. Alternativamente, puedes usar Landscape para controlar la implementación de actualizaciones de Ubuntu en una nube pública o privada. Landscape es una herramienta de administración del sistema Ubuntu incluida como parte de Ubuntu Pro.

entorno de puesta en escena

Si está creando un servicio en Ubuntu, es posible que tenga un entorno de prueba para el servicio. Si es así, tiene sentido implementar primero las actualizaciones de seguridad en ese entorno. Luego puede realizar pruebas de carga de trabajo con la actualización antes de implementarla en producción.

Incluso, opcionalmente, puedes actualizar las dependencias de un servicio a paquetes que todavía están en el bolsillo propuesto. Esto le permite probar su aplicación o servicio en actualizaciones que aún no se han implementado en el perfil maestro.

instantánea en el tiempo

Actualizamos los archivos estándar de Ubuntu de forma continua. Cuando hay nuevas actualizaciones de paquetes disponibles, las incluimos en el archivo. Las actualizaciones disponibles pueden variar si hay un tiempo significativo entre las actualizaciones que se realizan en diferentes instancias. Debido a las actualizaciones graduales, incluso es posible que dos instancias vean actualizaciones diferentes al mismo tiempo. Esto puede dificultar la implementación gradual de actualizaciones, probando cualquier problema antes de implementarlas más.

Puede utilizar una variedad de técnicas para crear un conjunto coherente o una instantánea de una suite. Esto le permite probar e implementar la misma suite en su entorno de producción a lo largo del tiempo. Esto limitará el impacto si la actualización tiene algún impacto negativo en su entorno. También le permite pausar su implementación mientras resuelve el problema (o solicita ayuda a nuestro equipo de soporte).

APT fijo

Puede encontrar guías que recomienden pines aptos para garantizar que los paquetes críticos solo se actualicen cuando sea necesario y bajo supervisión. Es una herramienta poderosa, pero tiene una curva de aprendizaje pronunciada. Debe comprender cómo funcionan los pines y las consecuencias de arreglar un paquete específico. En la mayoría de los casos, puede que no sea la mejor opción.

Imágenes doradas y actualizaciones basadas en imágenes.

En algunos entornos, como los nodos trabajadores de Kubernetes, tiene sentido utilizar actualizaciones basadas en imágenes o «imágenes doradas». Básicamente, esto significa que usted crea una imagen del sistema operativo que contiene actualizaciones de seguridad. Luego puede probar esta imagen, agregar nodos más nuevos al clúster y eliminar nodos trabajadores antiguos e inseguros. Tratas estas imágenes como inmutables. En lugar de aplicarles actualizaciones en producción, las reemplaza completamente con la siguiente imagen certificada. Puede mejorar la estabilidad aprendiendo herramientas de creación de imágenes y manteniendo una canalización de CI/CD para estas imágenes. Es importante automatizar esto tanto como sea posible, ya que cualquier retraso manual en el proceso aumenta los riesgos de seguridad sin proporcionar beneficios de estabilidad.

Imagen del paquete Deb

El método utilizado por muchos clientes de Canonical es crear imágenes internas del paquete deb de Ubuntu. Sincronizan periódicamente las copias archivadas. La instancia interna luego apunta a esa imagen en lugar del archivo principal de Ubuntu. El paisaje antes mencionado incluye características que simplifican mucho la gestión de los repositorios de Ubuntu. El mantenimiento de réplicas de paquetes requiere costos de infraestructura relativamente altos porque se almacena al menos una copia de todos los paquetes reflejados.

Servicio de instantáneas de Ubuntu

La buena noticia es que acabamos de anunciar un nuevo servicio de instantáneas. Esto proporciona muchos de los beneficios del archivado de imágenes sin el costo de infraestructura ni los gastos generales de configuración. Se integró en APT en Ubuntu 23.10 y llegará a 22.04, 20.04 y Ubuntu Pro 18.04. El mantenedor de APT, Julian Andres Klode, publicó un video que muestra cómo usar la nueva función de instantáneas:

Julian Andres Klode demuestra el nuevo servicio de instantáneas usando APT en Ubuntu 23.10

Microsoft utiliza este servicio para implementar prácticas de implementación segura en Azure.Puedes aprender más sobre esto en Discurso en la Cumbre de Ubuntu.Microsoft explica útilmente este enfoque en su artículo. Anuncio oficial. En lugar de proporcionar un estado de archivo diferente para cada actualización de zona:

Al utilizar instantáneas, puede implementar un conjunto coherente de paquetes en cada región:

Cualquiera de estos métodos significa que puede haber más vulnerabilidades sin parches en su entorno de producción. Elegiste no aplicar los parches disponibles después de la fecha de la instantánea. Nuevamente, normalmente transferirá esta instantánea a diferentes regiones o zonas de disponibilidad a lo largo del tiempo. Esto significa que la instancia de ejecución final no recibirá una instantánea del parche de seguridad hasta que se complete la implementación. Por lo tanto, estas implementaciones deben ser lo más breves posible y al mismo tiempo darle tiempo para notar cualquier efecto negativo de la actualización. También debe revisar las vulnerabilidades (USN y CVE) que se han solucionado en actualizaciones que aún no se han aplicado. Es posible que desee acelerar la implementación de actualizaciones que parcheen CVE de mayor prioridad. En última instancia, su organización necesita equilibrar los riesgos de retrasar las actualizaciones de seguridad con los beneficios potenciales de la estabilidad.

en conclusión

Si ejecuta Ubuntu en un entorno de producción, es fundamental aplicar las actualizaciones de seguridad disponibles a sus instancias de ejecución. En la primera parte de esta serie explicamos cómo reducir el riesgo de impactos negativos de las actualizaciones. La gente usa Ubuntu de maneras más interesantes de las que podemos imaginar. Por lo tanto, es imposible eliminar el riesgo de que una actualización cause un problema en alguna parte.

Si administra una gran cantidad de instancias de Ubuntu, especialmente en una configuración de alta disponibilidad, puede beneficiarse al controlar la implementación de actualizaciones. Luego podrá implementar actualizaciones de manera que esté más consciente de su flota. Al implementarlo gradualmente, algunas instancias con vulnerabilidades de seguridad se dejan sin parchear durante un período de tiempo más largo. Sin embargo, esto tiene la ventaja de limitar el impacto de cualquier actualización en el tiempo de actividad del servicio, pausando la implementación que causa problemas. Combinado con la automatización, el monitoreo y los controles de estado automáticos, esto puede aumentar la estabilidad y al mismo tiempo disminuir la seguridad aceptable.

Administrar actualizaciones en un entorno distribuido puede ser un desafío. Sin embargo, existe un número cada vez mayor de herramientas que pueden ayudarle a conseguirlo. Landscape es parte de Ubuntu Pro e incluye funciones para ayudarlo a administrar las actualizaciones de Ubuntu en cualquier nube pública o privada. Puede utilizar la integración nativa de instantáneas de APT en sus automatizaciones. Trabajamos con nuestros socios de nube pública para que las actualizaciones de Ubuntu funcionen dentro de sus herramientas de actualización integradas.

Ninguna estrategia o herramienta es infalible, pero una estrategia de actualización bien diseñada puede salvarte de noches de insomnio. Al ser proactivo y tomar decisiones informadas, puede asegurarse de que sus servidores Ubuntu permanezcan seguros y al mismo tiempo proteja la disponibilidad del servicio.

Otras lecturas:

LEER  Valve lanza Proton 7.0 con importantes mejoras para los juegos de Linux

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba