Prueba gratuita InglésAlemánJaponésRusoEspañol
KernelCare Blog

Evite reinicios de muerte, impuestos y servidores de Linux - Actualizaciones del kernel de Linux, 3 de diferentes maneras

Las actualizaciones del kernel de Linux son un hecho de la vida, tan aburridas como los impuestos y solo un poco menos inconvenientes que la muerte. Las vulnerabilidades de seguridad recién descubiertas en el kernel de Linux parecen aparecer con una monotonía regular. En la mayoría de los casos, pero no en todos, los parches necesarios para corregirlos siguen rápidamente. Hay trabajo involucrado en la instalación de los últimos parches de seguridad del kernel de Linux, y peligro si se demora, déjelo demasiado tiempo y los actores de amenazas podrían aprovechar el período de vulnerabilidad.

La popularidad de Linux como plataforma para servicios de alojamiento web, servidores web independientes y aplicaciones web lo ha convertido en un objetivo principal para los piratas informáticos que utilizan técnicas como la ejecución remota de código (RCE), la secuencia de comandos entre sitios (XSS) y la denegación de servicio (DoS ) ataques. Mantener un sistema actualizado con los últimos parches de software y sistema operativo es una de las formas más efectivas de fortalecer la seguridad del sistema y proteger contra este tipo de amenazas cibernéticas. Para Linux, el sistema operativo es difícil de mantener seguro, porque la mayoría de las actualizaciones de kernel y parches de seguridad requieren un reinicio del sistema.

Este artículo explica cómo actualizar los kernels de Linux, sin reiniciar. Cubro tres métodos diferentes para algunos de los kernels de Linux más populares. Son:

  1. en la línea de comando;
  2. con kexec;
  3. con herramientas de parcheo de kernel en vivo reiniciadas: Oracle Ksplice Uptrack, Canonical Livepatch, Red Hat's Kpatch, SUSE Kgraft (SLE Live Patching) y CloudLinux's KernelCare.

1. Línea de comando

Esta es la forma estándar de hacer una actualización desde el repositorio del proveedor de distribución de Linux, y la más probable es que se encuentre en la documentación.

En Ubuntu, puedes usar estos comandos en una terminal.

sudo apt-get upgrade linux-image-genérico sudo reinicio

En Debian, sería esto.

sudo apt-get upgrade kernel sudo reiniciar

Si desea realizar una actualización del núcleo de CentOS, una para Red Hat Enterprise Linux (RHEL), o para cualquier otra distribución basada en RPM, use esto.

sudo yum update kernel sudo reiniciar

Hasta ahora, muy fácil. Pero el parche del kernel no tendrá efecto hasta que reinicie.

¿Reiniciar? Sí. Debe iniciar a sus usuarios, guardar sus archivos, cerrar sus procesos y posiblemente hacer que muchas personas estén muy descontentas (por ejemplo, cualquier persona en medio de una compra). Y luego debe esperar a que su servidor Linux vuelva a aparecer y recuperar su estado. ¿Cuánto tiempo demora el tuyo en rebotar? ¿Los clientes lo notarán? Incluso si no lo hacen, primero debe notificarles.

Esta es una de las razones por las que muchos administradores de sistemas difieren la instalación de parches, evitando el tiempo de inactividad pero comprometiendo la seguridad del sistema.

+ Pros: Sin instalación.
- Contras: No automatizado. Reinicio requerido.

2. kexec: reinicios más rápidos

Puede hacer que el paso de reinicio sea más rápido usando kexec. Esta llamada al sistema del kernel de Linux le permite iniciar en un nuevo kernel, omitir las fases de inicialización del cargador de arranque y del hardware, y acortar significativamente el tiempo de reinicio.

Para usarlo, primero necesitas instalar kexec-herramientas.

En Ubuntu / Debian:

sudo apt-get install kexec-tools

Verá una ventana de configuración, algo como esto:

En CentOS / RHEL:

sudo yum instalar kexec-tools

A continuación, instale un nuevo kernel. Listarlos, luego elegir el que desee.

sudo yum update kernel

or

sudo rpm -qa kernel

La salida debería ser algo como esto.

kernel-3.10.0-514.26.1.el7.x86_64 
kernel-3.10.0-862.3.2.el7.x86_64

Ahora arranque en su versión elegida.

sudo kexec -l /boot/vmlinuz-3.10.0-862.3.2.el7.x86_64 \ -initrd = / boot / initramfs-3.10.0-862.3.2.el7.x86_64.img \ -reuse-comprobado sudo umount -a; sudo kexec -e

Puede usar el siguiente comando si no tiene paciencia (pero vea la advertencia a continuación antes de hacerlo).

sudo kexec -e

¡ADVERTENCIA! Esto es como apagar y encender su servidor sin darle tiempo al comando de reinicio para matar adecuadamente sus procesos, sincronizar sus cachés de archivos y desmontar sus sistemas de archivos. Puede causar pérdida de datos o corrupción.

+ Pros: Arranque más rápido.
- Contras: Instalación de una sola vez. Más trabajo con los dedos (y más posibilidades de error a menos que lo guarde bien).

3. Actualiza tu kernel sin reiniciar

Sí, lo leíste correctamente. Allí is Una forma de hacerlo.

Hay momentos en los que los parches de seguridad son súper críticos, pero también lo son los procesos que se detienen cuando se reinicia. Si está ejecutando un sistema 'siempre activo' o 'de alta disponibilidad', ya estará familiarizado con este dilema.

La actualización del kernel sin reinicio le permite 'tener su pastel y comérselo (también)'. No es un reemplazo para las actualizaciones completas del kernel, ya que solo aplica parches para vulnerabilidades de seguridad o correcciones de errores críticos. Pero, en muchos casos, esto es todo lo que necesita, y es posible mantener un servidor seguro y funcionando durante años entre reinicios utilizando estos métodos.

Varios proveedores líderes de Linux ofrecen actualizaciones de kernel sin reinicio. El que elija depende de la distribución que ejecute. En el resto de este artículo hablaremos sobre los siguientes productos:

  • Ksplice de Oracle (para actualizaciones de Oracle Linux, Ksplice Uptrack para empresa)
  • Kpatch de Red Hat (para actualizaciones de kernel RHEL y actualizaciones CentOS)
  • Livepatch por Canonical (para actualizaciones del kernel de Ubuntu)
  • Kgraft de SUSE (solo para actualizaciones de SUSE)
  • CloudLinux KernelCare (para sistemas operativos múltiples)

Oracle Ksplice

Ksplice fue la primera implementación comercialmente disponible de la actualización del kernel sin reinicio. Ksplice Inc. finalmente fue adquirida por Oracle, por lo que ahora solo está disponible (como era de esperar) en las distribuciones Oracle Linux y RedHat Enterprise Linux, y la implementación necesita una licencia de Oracle.

Para implementarlo, ejecute:

sudo wget -N https://ksplice.oracle.com/uptrack/install-uptrack-oc sudo sh install-uptrack-oc -autoinstall

Tenga en cuenta que no hay un comando de reinicio y solo necesita ejecutar el script de instalación una vez en la vida útil del servidor. Después de eso, el Uptrack El servicio detectará automáticamente las nuevas actualizaciones del kernel y las implementará por usted. No hay programación, ni tiempo de inactividad, y nada más que hacer.

+ Pros: No se requiere reiniciar Actualizaciones automáticas.
- Contras: Solo para distribuciones Oracle. Requiere una licencia de soporte.

Livepatch canónico

Esta es la tecnología de Canonical para (¿adivina qué?) Núcleos de parcheo en vivo. (Canonical es la compañía detrás de la popular distribución de Ubuntu Linux). Incluso puede crear sus propios parches, aunque puede ser un trabajo difícil y lento. (Algunos proveedores crearán un núcleo de actualización de Ubuntu para usted, por una tarifa).

El servicio está disponible para Ubuntu 16.04 y versiones posteriores, y RHEL 7.x (beta).

Se despliega así.

sudo snap install canonical-livepatch sudo canonical-livepatch enable [TOKEN]

Nota: El servicio Canonical Livepatch es gratuito para hasta máquinas 3 para miembros de la Comunidad Ubuntu. Puedes registrarte para un token aquí.

+ Pros: No es necesario reiniciar Actualizaciones automáticas del kernel.
- Contras: Parches de kernel personalizados no triviales. Limite el número de hosts actualizables (hosts adicionales por una tarifa).

Red Hat Kpatch

Esta es la herramienta de parcheo del kernel de Red Hat. Fue anunciado en 2014 y ha sido portado para trabajar en otros de la misma familia (Fedora, CentOS), así como para algunos sistemas basados ​​en Debian (Ubuntu, Gentoo).

Aquí hay un ejemplo de implementación en RHEL 7.

sudo yum install kpatch sudo yum install kpatch-patch-XXXel7.x86_64.rpm

A diferencia del servicio Livepatch de Ubuntu o Ksplice de Oracle, no es automático, y debe verificar e instalar manualmente cada parche del núcleo cuando esté disponible.

+ Pros: No se requiere reiniciar
- Contras: No automatizado. Distribuciones limitadas.

SUSE Kgraft

Desarrollado y anunciado casi al mismo tiempo que la solución de Red Hat, Kgraft es la oferta de parches en vivo de SUSE (conocida como SUSE Linux Enterprise Live Patching). Es solo para el propio Linux Enterprise Server 12 de SUSE, y viene preinstalado, por lo que realmente no hay nada que hacer (excepto pagarlo). Funciona con un principio diferente a la mayoría de los otros enfoques, pero tiene un conjunto de características comparable con Kpatch.

+ Pros: No requiere instalación. No se requiere reiniciar
- Contras: Soporte de plataforma única. Comercial (pero hay una generosa prueba gratuita de 60 días).

CloudLinux KernelCare

También lanzado en 2014, el servicio de parcheo en vivo del kernel de Linux KernelCare se destaca entre las soluciones de parcheo del kernel en su cobertura del sistema operativo, que incluye CentOS, RHEL, Oracle Linux, Debian, Ubuntu y otros. Y al igual que la solución de Oracle, KernelCare es compatible con los núcleos 2.6.32 más antiguos de RHEL 6.

Aquí se explica cómo instalar KernelCare:

wget -qq -O - https://kernelcare.com/installer | bash sudo / usr / bin / kcarectl -registrar <su clave>

KernelCare es una solución de 'instalar y olvidar'. Una vez instalado, KernelCare descarga automáticamente y aplica nuevos parches de seguridad del núcleo, sin reiniciar el servidor.

Pero a diferencia de sus competidores más cercanos, KernelCare puede manejar algunos de los parches más complejos para vulnerabilidades como Fusión de un reactor (CVE-2017-5754), Espectro (CVE-2017-5753 & CVE-2017-5715), y más recientemente, el defecto de desbordamiento del búfer del kernel de Linux conocido, de forma romántica, como Mutagen astronomia (CVE-2018-14634). KernelCare admite configuraciones de parches personalizados, parches de fecha fija, parches retrasados ​​y reversiones sin reinicio, es decir, eliminación de parches.

Al igual que los otros proveedores considerados aquí, KernelCare también brota de una buena línea de sangre: su creador es CloudLinux, el proveedor líder de alojamiento web basado en Linux.

+ Pros: Instalación fácil. No se requiere reiniciar Amplia cobertura del sistema operativo (incluido uno de los sabores de Linux más populares, Ubuntu). Admite parches personalizados y de fecha fija. Buen soporte y conocimientos de la industria de CloudLinux.
- Contras: Comercial (pero hay un Gratis, prueba 30-day). También hay una licencia gratuita de KernelCare Para organizaciones sin ánimo de lucro.

[hubspot type=cta portal=5408110 id=77c921a7-e20a-4732-9117-d7e372d5a6da]

Conclusión

Si su servidor no es crítico y puede soportar un período sin conexión, actualizar el kernel es relativamente sencillo utilizando las herramientas estándar en la línea de comandos.

Si está ejecutando un sistema siempre activo (es decir, no puede o no reiniciará), eche un vistazo a las soluciones de parcheo del kernel en vivo. De estos, hay tres tipos:

  1. Administrado-Tienes que hacerlo tú mismo. P.ej Kpatch, Kgraft.
  2. Completamente automático–Lo hace por ti. P.ej Livepatch, Ksplice.
  3. Totalmente automática, multiplataforma avanzada.–Lo hace por ti, manejando amenazas avanzadas en todas las plataformas. P.ej KernelCare Desde CloudLinux.