Módulos del kernel
100%

Kernel · Lección 6

Módulos del kernel

Aprende a inspeccionar, cargar, configurar y retirar de forma segura módulos de Linux específicos de una versión del kernel.

Un módulo cargable del kernel es código privilegiado que puede ampliar el kernel en ejecución con un controlador, un sistema de archivos, una función de red u otro subsistema. Los módulos evitan tener que integrar todas las funciones opcionales en una sola imagen del kernel, pero cargar uno amplía la superficie de ataque de confianza del kernel.

Listar e inspeccionar módulos

Lista los módulos cargados actualmente:

$ lsmod

La salida procede del estado del kernel, como /proc/modules, e incluye el nombre del módulo, su tamaño y un contador de uso o sus dependencias. Que el contador parezca cero no demuestra por completo que retirarlo sea seguro; un controlador aún puede tener dispositivos activos a su cargo o participar en el estado de un subsistema.

Inspecciona un módulo disponible para el kernel en ejecución con:

$ modinfo MODULE_NAME

modinfo puede mostrar el nombre del archivo, los alias, los parámetros, la licencia, la descripción y la información de firma. Trata los metadatos como información descriptiva, no como prueba de que el módulo sea de confianza o compatible con la carga de trabajo.

¿Qué muestra lsmod?

Cargar con `modprobe`

Carga un módulo por su nombre:

$ sudo modprobe MODULE_NAME

modprobe consulta los índices de dependencias, los alias y la configuración del kernel en ejecución bajo /lib/modules/$(uname -r)/. Carga las dependencias necesarias y pasa los parámetros configurados. En cambio, insmod inserta directamente un único archivo de módulo indicado y no proporciona el mismo flujo de resolución de dependencias.

Antes de cargarlo, confirma la procedencia del módulo, la política de firmas, la compatibilidad con la versión del kernel, los parámetros, la asociación esperada con el hardware y el procedimiento de reversión. Secure Boot o el bloqueo del kernel pueden rechazar módulos sin firmar; forzar código incompatible puede provocar un fallo o comprometer el sistema.

¿Por qué suele preferirse modprobe frente al uso directo de insmod?

Parámetros de módulos y carga durante el arranque

La política persistente de parámetros y alias debe residir en un archivo .conf bajo /etc/modprobe.d/:

options example_module mode=careful

Esta línea afecta a la forma en que modprobe carga el módulo; por sí sola, no solicita que se cargue durante el arranque. Una lista sencilla de carga durante el arranque suele residir bajo /etc/modules-load.d/:

example_module

Los alias de hardware suelen provocar la carga automática sin una lista explícita. Para los módulos que se necesitan durante las primeras fases del arranque, actualiza el initramfs mediante el proceso documentado de la distribución después de cambiar la configuración.

¿Qué hace una línea options de /etc/modprobe.d/?

Listas negras y sus límites

Una configuración de modprobe puede contener:

blacklist example_module

La inclusión en una lista negra normalmente impide la carga automática mediante los alias del módulo. No descarga un módulo ya cargado, no lo elimina de un initramfs ni impide necesariamente que se cargue explícitamente por su nombre exacto o como dependencia. El refuerzo de la seguridad requiere una combinación específica para la amenaza de disponibilidad de módulos, aplicación de firmas, contenido del initramfs, parámetros de arranque y políticas.

¿Qué impide principalmente una línea básica blacklist de modprobe?

Retirar un módulo de forma segura

Solicita la retirada con:

$ sudo modprobe -r MODULE_NAME

Modprobe puede retirar las dependencias que hayan dejado de usarse cuando corresponda. El kernel rechaza la retirada cuando el seguimiento ordinario de referencias indica que el módulo está ocupado, pero no confíes en ello como única comprobación de seguridad. Detén los servicios, desmonta los sistemas de archivos, desconecta los dispositivos, deja inactiva la red y confirma que haya otro controlador o una vía de recuperación antes de retirar código que preste servicio a hardware activo.

Nunca fuerces la descarga de un módulo en un sistema que necesites conservar. Los errores durante la retirada o la actividad pendiente pueden bloquear el kernel o dañar datos.

¿Qué comando solicita la retirada por nombre de un módulo teniendo en cuenta las dependencias?

Lección completada

Has completado Módulos del kernel

Ahora puedes gestionar módulos teniendo en cuenta el riesgo que implican en el nivel del kernel.

  • Usa lsmod para consultar el estado activo y modinfo para los metadatos disponibles.

  • Usa modprobe para cargar teniendo en cuenta los alias y las dependencias.

  • Distingue los parámetros de modprobe de las solicitudes de carga durante el arranque.

  • Trata las listas negras como una política limitada, no como un bloqueo absoluto.

  • Deja inactivos todos los consumidores antes de ejecutar modprobe -r.

Guarda tu progreso

Crea una cuenta gratuita para guardar esta lección y continuar en cualquier dispositivo.

Crear una cuenta gratuita
Volver a Kernel