back_button
2025/04/04
4. Você Já Usou o Ksplice?
Neste artigo, apresentaremos o Ksplice, uma das funcionalidades do Oracle Linux. O Ksplice é um sistema de aplicação de patches ao vivo que permite aplicar correções ao kernel sem reiniciar o sistema operacional. Ele tem uma história de mais de 10 anos e é uma excelente funcionalidade que, atualmente, não tem concorrentes à altura. No entanto, mesmo entre os usuários do Oracle Linux, aqueles que utilizam o Ksplice podem ser minoria. Assim, neste artigo, buscamos aprofundar seu entendimento sobre o Ksplice.
O que é o Ksplice?
O Ksplice é uma funcionalidade que permite aplicar patches ao kernel do Linux e a algumas bibliotecas do espaço do usuário sem reiniciar o sistema operacional. Por exemplo, se você instalar um kernel recém-lançado, ainda será necessário reiniciar o sistema para ativá-lo. No entanto, o Ksplice permite habilitar a atualização mais recente sem a necessidade de reinicialização.
Em outras palavras, com o Ksplice, você pode obter os seguintes benefícios:
- Minimizar o tempo de inatividade do sistema
- Responder rapidamente a vulnerabilidades de segurança
- Reduzir o tempo de aplicação de patches
A capacidade de habilitar atualizações sem reiniciar é uma funcionalidade particularmente importante em “servidores acessíveis externamente” e “hosts KVM com muitas máquinas virtuais em execução”. Servidores acessíveis externamente precisam responder rapidamente a vulnerabilidades de segurança. Além disso, vários servidores virtuais rodam em hosts KVM. Portanto, quando é necessária uma reinicialização do sistema operacional, diversos ajustes prévios são exigidos, além do tempo real de trabalho.
Em resumo, o Ksplice é uma funcionalidade especialmente eficaz para uso empresarial, ajudando a reduzir custos operacionais e aumentar a segurança.
FAQ do Ksplice
Para ajudá-lo a entender rapidamente o Ksplice, apresentaremos uma visão geral intitulada FAQ do Ksplice.
Quais sistemas operacionais posso usar com o Ksplice?
Até o momento (setembro de 2022), os seguintes sistemas operacionais Linux são suportados. O Ksplice também suporta tanto o kernel compatível com Red Hat quanto o Unbreakable Enterprise Kernel para o Oracle Linux.
- Oracle Linux 6
- Oracle Linux 7
- Oracle Linux 8
- Oracle Linux 9
- CentOS e RHEL 7
- CentOS e RHEL 8
- Ubuntu 18.04
- Ubuntu 20.04
Além do Intel/AMD (x86_64), ele também suporta Arm de 64 bits. No entanto, suporta apenas o Unbreakable Enterprise Kernel para Arm.
Preciso de uma conexão com a Internet para usar o Ksplice?
O Ksplice possui modos online e offline. O modo online se conecta à Unbreakable Linux Network (ULN) fornecida pela Oracle, então você precisa ter acesso à Internet (pode ser por meio de um proxy de Internet).
Além disso, no modo offline, você pode usar o Ksplice sem conexão com a Internet configurando um espelho Ksplice. No entanto, o servidor usado como espelho Ksplice deve ser capaz de se conectar à Internet.
Quais componentes são cobertos pelo patch ao vivo do Ksplice?
Além dos dois kernels a seguir, ele suporta os pacotes do espaço do usuário glibc e openssl. No entanto, apenas o Oracle Linux suporta pacotes do espaço do usuário.
- Kernel compatível com Red Hat
- Unbreakable Enterprise Kernel
- glibc
- openssl
Há uma taxa para usar o Ksplice?
Para usar o Ksplice, você precisa de um contrato pago de Suporte Premier do Oracle Linux. No entanto, o Ksplice está disponível gratuitamente no Oracle Linux na Oracle Cloud Infrastructure (configurado por padrão). Excepcionalmente, você pode usá-lo gratuitamente no Ubuntu.
Existe um programa de teste para o Ksplice?
Um programa de teste de 30 dias está disponível. Além disso, se você quiser experimentar o Ksplice facilmente, recomendamos o Always Free da Oracle Cloud Infrastructure. A imagem do Oracle Linux já vem configurada com o Ksplice, então você pode usá-lo imediatamente.
Existem outros sistemas de aplicação de patches ao vivo como o Ksplice?
Outras distribuições Linux também possuem os seguintes sistemas de aplicação de patches ao vivo. No entanto, todos eles foram fornecidos apenas nos últimos anos e ainda não provaram seu desempenho.
- kpatch baseado em RHEL
- SUSE KLP
- Ubuntu Livepatch Service
Além disso, no Windows, existe uma funcionalidade chamada Windows hot patch. No entanto, ela é limitada ao Windows Server 2022 Datacenter: Azure Edition.
Vamos experimentar o Ksplice
Para entender o Ksplice, é melhor ver como ele funciona na prática. Neste artigo, explicaremos usando o Oracle Linux 8 da Oracle Cloud Infrastructure, que é fácil de experimentar. A configuração e os detalhes serão explicados no próximo artigo.
Além disso, o Oracle Linux 7 e o Oracle Linux 9 são quase iguais, mas pode haver pequenas diferenças dependendo da versão da imagem que você está usando.
Verifique o status da sua configuração do Ksplice
Para usar o Ksplice, você precisa de um cliente Ksplice. Então, verifique se o cliente Ksplice está instalado. Ao pesquisar por um pacote, você verá que o pacote uptrack (= cliente 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
Em seguida, verifique o arquivo de configuração /etc/uptrack/uptrack.conf. Você pode usar o Ksplice se o arquivo de configuração existir e a chave de acesso (accesskey) estiver configurada.
$ grep -v -e '^\s*#' -e '^\s*$' /etc/uptrack/uptrack.conf
[Auth]
accesskey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx(A chave para o Ksplice Uptrack é obtida do ULN)
[Network]
https_proxy =
gconf_proxy_lookup = no
[Settings]
install_on_reboot = yes
autoinstall = no
Aprenda os conceitos básicos do Ksplice
Agora que você sabe que o Ksplice está configurado, vamos usá-lo de fato. Como a maioria das operações requer privilégios de root, usaremos su. Alternativamente, você pode adicionar sudo a cada comando.
$ sudo su -
Verifique a versão do kernel
Verifique a versão do kernel Linux atualmente habilitada. O UEK6 “5.4.17-2136.306.1.3” está ativado.
# uname -r
5.4.17-2136.306.1.3.el8uek.x86_64
Se você verificar a versão mais recente do repositório, ela é “5.4.17-2136.310.7.1”. Assim, você pode ver que uma nova versão foi lançada.
# yum check-update kernel-uek
kernel-uek.x86_64 5.4.17-2136.310.7.1.el8uek ol8_UEKR6
Visualize as atualizações
No método tradicional, o kernel é atualizado e reiniciado da seguinte forma:
# yum update kernel-uek -y
# reboot
No Ksplice, use o comando uptrack-upgrade. Você pode visualizar as atualizações Ksplice aplicáveis digitando “uptrack-upgrade -n” como segue. Cada linha é uma atualização separada.
# uptrack-upgrade -n
Versão efetiva do kernel é 5.4.17-2136.306.1.3.el8uek
Os seguintes passos serão executados:
Instalar [n9kprcm6] Detecção de exploits conhecidos.
Instalar [qivpmdlu] Detecção de exploits conhecidos para CVE-2019-9213.
Instalar [50qj7qw1] Detecção de exploits conhecidos para CVE-2017-1000253.
Instalar [3iw8b16t] Detecção de exploits conhecidos para CVE-2016-5195.
Instalar [sgxyx32m] Detecção de exploits conhecidos para CVE-2021-27363.
Instalar [92k7sosn] Detecção de exploits conhecidos para CVE-2021-27364.
★Omitido abaixo
Aplique a atualização
Aplique todas essas atualizações. O tempo de aplicação varia dependendo do número de atualizações e das especificações da máquina, e desta vez levou cerca de 1 minuto. O ponto chave a notar aqui é “5.4.17-2136.310.7” na última linha. Graças ao Ksplice, ele tem a mesma versão do kernel que a mais recente.
# uptrack-upgrade -y
Os seguintes passos serão executados:
Instalar [n9kprcm6] Detecção de exploits conhecidos.
Instalar [qivpmdlu] Detecção de exploits conhecidos para CVE-2019-9213.
Instalar [50qj7qw1] Detecção de exploits conhecidos para CVE-2017-1000253.
Instalar [3iw8b16t] Detecção de exploits conhecidos para CVE-2016-5195.
★omissão
Instalando [dad581dd] CVE-2022-2588: Uso após liberação em Classificador de Rotas IP.
Seu kernel está totalmente atualizado.
Versão efetiva do kernel é 5.4.17-2136.310.7.el8uek
A versão efetiva do kernel habilitada pela atualização Ksplice pode ser visualizada com o comando uptrack-uname.
# uptrack-uname -r
5.4.17-2136.310.7.el8uek.x86_64
O uname normal exibe a versão do kernel instalada.
# uname -r
5.4.17-2136.306.1.3.el8uek.x86_64
A lista de UEKs instalados é a seguinte. A mais recente “5.4.17-2136.310.7” não está instalada. Em outras palavras, apenas a atualização incremental do Ksplice (patch) está instalada.
# 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
Visualize as atualizações
A atualização Ksplice que você está aplicando pode ser visualizada com o comando uptrack-show.
# uptrack-show
Atualizações instaladas:
[n9kprcm6] Detecção de exploits conhecidos.
[qivpmdlu] Detecção de exploits conhecidos para CVE-2019-9213.
[50qj7qw1] Detecção de exploits conhecidos para CVE-2017-1000253.
★omissão
[fza3q2mo] CVE-2022-2153: Negação de serviço em Máquina Virtual Baseada em Kernel.
[4eaq3lov] CVE-2022-21505: Bypass de lockdown na Arquitetura de Medição de Integridade.
[dad581dd] CVE-2022-2588: Uso após liberação em Classificador de Rotas IP.
Versão efetiva do kernel é 5.4.17-2136.310.7.el8uek
Excluindo atualizações
Você pode excluir facilmente as atualizações aplicadas com o comando uptrack-remove.
# uptrack-remove --all -y
Os seguintes passos serão executados:
Remover [dad581dd] CVE-2022-2588: Uso após liberação em Classificador de Rotas IP.
Remover [4eaq3lov] CVE-2022-21505: Bypass de lockdown na Arquitetura de Medição de Integridade.
Remover [jjafy1ef] CVE-2022-29582: Uso após liberação na API io_uring assíncrona.
★omissão
Removendo [qivpmdlu] Detecção de exploits conhecidos para CVE-2019-9213.
Removendo [n9kprcm6] Detecção de exploits conhecidos.
Versão efetiva do kernel é 5.4.17-2136.306.1.3.el8uek
Você voltou ao estado original de não aplicar as atualizações Ksplice. Neste caso, aplicamos as atualizações em massa, mas você também pode aplicá-las individualmente especificando seus 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 lembrete, você não verá nada ao visualizar as atualizações Ksplice aplicadas.
# uptrack-show
Atualizações instaladas:
Nenhuma
Versão efetiva do kernel é 5.4.17-2136.306.1.3.el8uek
Conclusão
Você entendeu o que é o Ksplice? Além disso, acreditamos que, ao usá-lo de fato, você verá que é muito fácil de usar. No próximo artigo, discutiremos o Ksplice com mais detalhes.