Volver

2025/04/09

4. ¿Has Usado Alguna Vez Ksplice?

En este artículo, presentaremos Ksplice, una de las características de Oracle Linux. Ksplice es un sistema de parches en vivo que te permite aplicar parches al núcleo sin reiniciar el sistema operativo. Tiene una historia de más de 10 años y es una característica excelente que no tiene igual en este momento. Sin embargo, incluso entre las personas que usan Oracle Linux, quienes utilizan Ksplice podrían ser una minoría. Por lo tanto, en este artículo, buscaremos profundizar en tu comprensión de Ksplice.

¿Qué es Ksplice?

Ksplice es una característica que te permite aplicar parches al núcleo de Linux y a algunas bibliotecas del espacio de usuario sin reiniciar el sistema operativo. Por ejemplo, si instalas un núcleo recién lanzado, aún necesitas reiniciar el sistema operativo para habilitarlo. Sin embargo, Ksplice te permite habilitar la última actualización sin tener que reiniciar.

En otras palabras, puedes obtener los siguientes beneficios con Ksplice:

  • Minimizar el tiempo de inactividad del sistema
  • Responder rápidamente a vulnerabilidades de seguridad
  • Minimizar el tiempo de aplicación de parches

La capacidad de habilitar actualizaciones sin reiniciar es una característica particularmente importante en “servidores accesibles externamente” y “hosts KVM con muchas máquinas virtuales en ejecución”. Los servidores accesibles externamente necesitan responder rápidamente a vulnerabilidades de seguridad. Además, múltiples servidores virtuales se ejecutan en hosts KVM. Por lo tanto, cuando se necesita reiniciar el sistema operativo, se requieren varios ajustes previos y también se necesita tiempo de trabajo real.

En otras palabras, Ksplice es una característica que es particularmente efectiva en el uso empresarial, ayudando a reducir los costos operativos y mejorar la seguridad.

Preguntas Frecuentes sobre Ksplice

Para ayudarte a entender rápidamente Ksplice, te daremos una visión general titulada Preguntas Frecuentes sobre Ksplice.

¿Qué sistemas operativos puedo usar con Ksplice?

En este momento (septiembre de 2022), se admiten los siguientes sistemas operativos Linux. Ksplice también soporta tanto el núcleo compatible con Red Hat como el núcleo Unbreakable Enterprise para Oracle Linux.

  • Oracle Linux 6
  • Oracle Linux 7
  • Oracle Linux 8
  • Oracle Linux 9
  • CentOS y RHEL 7
  • CentOS y RHEL 8
  • Ubuntu 18.04
  • Ubuntu 20.04

Además de Intel/AMD (x86_64), también soporta Arm de 64 bits. Sin embargo, solo soporta el núcleo Unbreakable Enterprise Kernel para Arm.

¿Necesito una conexión a Internet para usar Ksplice?

Ksplice tiene modos en línea y sin conexión. El modo en línea se conecta a la Red Unbreakable Linux (ULN) proporcionada por Oracle, por lo que necesitas poder conectarte a Internet (esto puede ser a través de un proxy de Internet).

Además, en el modo sin conexión, puedes usar Ksplice sin conectarte a Internet configurando un espejo de Ksplice. Sin embargo, el servidor que se usa como espejo de Ksplice debe poder conectarse a Internet.

¿Qué componentes están cubiertos por el parche en vivo de Ksplice?

Además de los siguientes dos núcleos, soporta los paquetes del espacio de usuario glibc y openssl. Sin embargo, solo Oracle Linux soporta paquetes del espacio de usuario.

  • Núcleo compatible con Red Hat
  • Núcleo Unbreakable Enterprise
  • glibc
  • openssl

¿Hay una tarifa por usar Ksplice?

Para usar Ksplice, necesitas un contrato de Soporte Premier de Oracle Linux de pago. Sin embargo, Ksplice está disponible de forma gratuita en Oracle Linux en Oracle Cloud Infrastructure (configurado por defecto). Excepcionalmente, puedes usarlo gratis en Ubuntu.

¿Hay un programa de prueba para Ksplice?

Está disponible un programa de prueba de 30 días. Además, si quieres probar Ksplice fácilmente, recomendamos el Always Free de Oracle Cloud Infrastructure. La imagen de Oracle Linux ya está configurada con Ksplice, por lo que puedes usarlo de inmediato.

¿Existen otros sistemas de parches en vivo como Ksplice?

Otras distribuciones de Linux también tienen los siguientes sistemas de parches en vivo. Sin embargo, todos ellos han sido proporcionados solo en los últimos años y aún no han demostrado su rendimiento.

  • kpatch basado en RHEL
  • SUSE KLP
  • Servicio Livepatch de Ubuntu

Además, en Windows, existe una característica llamada parche caliente de Windows. Sin embargo, está limitada a Windows Server 2022 Datacenter: Azure Edition.

Probemos Ksplice

Para entender Ksplice, es mejor ver cómo funciona realmente. En este artículo, explicaremos usando Oracle Linux 8 de Oracle Cloud Infrastructure, que es fácil de probar. La configuración y los detalles se explicarán en el próximo artículo.

Además, Oracle Linux 7 y Oracle Linux 9 son casi iguales, pero puede haber ligeras diferencias dependiendo de la versión de la imagen que estés usando.

Verifica el estado de tu configuración de Ksplice

Para usar Ksplice, necesitas un cliente de Ksplice. Entonces, verifica si el cliente de Ksplice está instalado. Si buscas un paquete, encontrarás que el paquete uptrack (= cliente de Ksplice) está instalado.

$ rpm -qa | grep -e ksplice -e uptrack | sort
ksplice-release-el8-1.0-4.el8.x86_64
ksplice-uptrack-release-1-5.noarch
uptrack-1.2.75-0.el8.noarch

A continuación, verifica el archivo de configuración /etc/uptrack/uptrack.conf. Puedes usar Ksplice si el archivo de configuración existe y la clave de acceso está configurada.

$ grep -v -e '^\s*#' -e '^\s*$' /etc/uptrack/uptrack.conf
[Auth]
accesskey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx (La clave para Ksplice Uptrack se obtiene de ULN)
[Network]
https_proxy =
gconf_proxy_lookup = no
[Settings]
install_on_reboot = yes
autoinstall = no

Aprende los conceptos básicos de Ksplice

Ahora que sabes que Ksplice está configurado, usaremos Ksplice realmente. Dado que la mayoría de las operaciones requieren privilegios de root, usaremos su. Alternativamente, puedes agregar sudo cada vez.

$ sudo su -

Verifica la versión del núcleo

Verifica la versión del núcleo de Linux actualmente habilitada. UEK6 “5.4.17-2136.306.1.3” está habilitada.

# uname -r
5.4.17-2136.306.1.3.el8uek.x86_64

Si verificas la última versión del repositorio, es “5.4.17-2136.310.7.1”. Así que puedes ver que se ha lanzado una nueva versión.

# yum check-update kernel-uek
kernel-uek.x86_64              5.4.17-2136.310.7.1.el8uek              ol8_UEKR6

Ver actualizaciones

En el método tradicional, el núcleo se actualiza y reinicia de la siguiente manera:

# yum update kernel-uek -y
# reboot

En Ksplice, usa el comando uptrack-upgrade. Puedes ver las actualizaciones de Ksplice aplicables ingresando “uptrack-upgrade -n” como se muestra a continuación. Cada fila es una actualización separada.

# uptrack-upgrade -n
Versión efectiva del núcleo es 5.4.17-2136.306.1.3.el8uek
Se realizarán los siguientes pasos:
Instalar [n9kprcm6] Detección de exploits conocidos.
Instalar [qivpmdlu] Detección de exploits conocidos para CVE-2019-9213.
Instalar [50qj7qw1] Detección de exploits conocidos para CVE-2017-1000253.
Instalar [3iw8b16t] Detección de exploits conocidos para CVE-2016-5195.
Instalar [sgxyx32m] Detección de exploits conocidos para CVE-2021-27363.
Instalar [92k7sosn] Detección de exploits conocidos para CVE-2021-27364.
★Omitido a continuación

Aplicar la actualización

Aplica todas estas actualizaciones. El tiempo para aplicar varía según el número de actualizaciones y las especificaciones de la máquina, y esta vez tomó cerca de 1 minuto. El punto clave a notar aquí es “5.4.17-2136.310.7” en la última línea. Gracias a Ksplice, tiene la misma versión del núcleo que la última versión.

# uptrack-upgrade -y
Se realizarán los siguientes pasos:
Instalar [n9kprcm6] Detección de exploits conocidos.
Instalar [qivpmdlu] Detección de exploits conocidos para CVE-2019-9213.
Instalar [50qj7qw1] Detección de exploits conocidos para CVE-2017-1000253.
Instalar [3iw8b16t] Detección de exploits conocidos para CVE-2016-5195.
★omisión
Instalando [dad581dd] CVE-2022-2588: Uso después de liberación en el Clasificador de Rutas IP.
Tu núcleo está completamente actualizado.
Versión efectiva del núcleo es 5.4.17-2136.310.7.el8uek

La versión efectiva del núcleo habilitada por la actualización de Ksplice se puede ver con el comando uptrack-uname.

# uptrack-uname -r
5.4.17-2136.310.7.el8uek.x86_64

El uname normal muestra la versión del núcleo instalada.

# uname -r
5.4.17-2136.306.1.3.el8uek.x86_64

La lista de UEKs instalados es la siguiente. La última “5.4.17-2136.310.7” no está instalada. En otras palabras, solo se instala la actualización incremental de Ksplice (parche).

# rpm -q kernel-uek | sort -n
kernel-uek-5.4.17-2102.201.3.el8uek.x86_64
kernel-uek-5.4.17-2136.304.4.1.el8uek.x86_64
kernel-uek-5.4.17-2136.306.1.3.el8uek.x86_64

Ver actualizaciones

La actualización de Ksplice que estás aplicando se puede ver con el comando uptrack-show.

# uptrack-show
Actualizaciones instaladas:
[n9kprcm6] Detección de exploits conocidos.
[qivpmdlu] Detección de exploits conocidos para CVE-2019-9213.
[50qj7qw1] Detección de exploits conocidos para CVE-2017-1000253.
★omisión
[fza3q2mo] CVE-2022-2153: Denegación de servicio en Máquina Virtual basada en Núcleo.
[4eaq3lov] CVE-2022-21505: Bypass de bloqueo en Arquitectura de Medición de Integridad.
[dad581dd] CVE-2022-2588: Uso después de liberación en Clasificador de Rutas IP.
Versión efectiva del núcleo es 5.4.17-2136.310.7.el8uek

Eliminar actualizaciones

Puedes eliminar fácilmente las actualizaciones aplicadas con el comando uptrack-remove.

# uptrack-remove --all -y
Se realizarán los siguientes pasos:
Eliminar [dad581dd] CVE-2022-2588: Uso después de liberación en Clasificador de Rutas IP.
Eliminar [4eaq3lov] CVE-2022-21505: Bypass de bloqueo en Arquitectura de Medición de Integridad.
Eliminar [jjafy1ef] CVE-2022-29582: Uso después de liberación en API io_uring asíncrona.
★omisión
Eliminando [qivpmdlu] Detección de exploits conocidos para CVE-2019-9213.
Eliminando [n9kprcm6] Detección de exploits conocidos.
Versión efectiva del núcleo es 5.4.17-2136.306.1.3.el8uek

Ahora has vuelto al estado original de no aplicar las actualizaciones de Ksplice. En este caso, hemos aplicado las actualizaciones en masa, pero también puedes aplicarlas individualmente especificando sus IDs.

# uptrack-uname -r
5.4.17-2136.306.1.3.el8uek.x86_64

# uname -r
5.4.17-2136.306.1.3.el8uek.x86_64

Como recordatorio, no verás nada cuando veas las actualizaciones de Ksplice aplicadas.

# uptrack-show
Actualizaciones instaladas:
Ninguna

Versión efectiva del núcleo es 5.4.17-2136.306.1.3.el8uek

Conclusión

¿Entendiste qué es Ksplice? Además, creemos que cuando lo uses realmente, verás que es muy fácil de usar. En el próximo artículo, discutiremos Ksplice con más detalle.