Prohibir cargar otro kernel mientras el sistema funciona
Cierra una vía para que un atacante con derechos de administrador cambie a un kernel que haya preparado.
Por qué importa
kexec permite al kernel en ejecución cargar y saltar a otro kernel sin pasar por el firmware. Un atacante que ya consiguió derechos de administrador podría usarlo para iniciar un kernel preparado, que ignora tus ajustes de seguridad o esconde sus herramientas. Apagarlo elimina ese paso.
Cómo funciona
Fija kernel.kexec_load_disabled en 1, lo que desactiva las llamadas de sistema kexec_load y kexec_file_load. La documentación del kernel indica que, una vez puesto en 1, no vuelve a 0 hasta el siguiente arranque.
Quién debería usarlo
Adecuado para escritorios y servidores que no usan kexec. Déjalo apagado si dependes de la captura de caídas con kdump, reinicios rápidos por kexec o herramientas de actualización del kernel en vivo.
Qué puedes notar
Comandos como kexec -l fallan con un error de permisos, y un servicio de kernel de caída que arranque después del cambio puede fallar al cargar. Solo reiniciar lo revierte.
Compruébalo en tu equipo
Lee el valor actual:
sysctl kernel.kexec_load_disabled Aplícalo a mano
Establécelo ahora (hasta el próximo reinicio):
sudo sysctl -w kernel.kexec_load_disabled=1 Consérvalo tras los reinicios, en un archivo tuyo:
sudo tee /etc/sysctl.d/90-kernel-kexec.conf <<'EOF'
kernel.kexec_load_disabled = 1
EOF
sudo sysctl --system Deshazlo
Elimina el archivo y reinicia, o vuelve a poner el valor anterior con sysctl -w.
Ajustes relacionados
Fuentes
- Linux Hardening Guide (madaidans)
- 2.2.1
- Linux kernel documentation
- kernel.kexec_load_disabled