Introducción
En este laboratorio, aprenderá los conceptos esenciales del análisis de registros (log analysis) en un entorno Kali Linux utilizando la potente herramienta journalctl y otras utilidades de línea de comandos. Diseñado para principiantes, esta experiencia práctica se centra en las habilidades fundamentales para la administración y la depuración de sistemas. Explorará cómo acceder, visualizar y analizar los registros del sistema dentro de un contenedor Kali Linux en una máquina virtual (VM) de LabEx.
A través de ejercicios prácticos paso a paso, visualizará los registros del sistema almacenados en directorios como /var/log, filtrará los registros por servicios específicos, buscará errores y exportará los registros para un análisis más profundo. Todas las operaciones se realizarán dentro del shell del contenedor Kali Linux, al cual entrará automáticamente al abrir la terminal. Este laboratorio proporciona un entorno controlado para desarrollar sus habilidades en la monitorización y la resolución de problemas de eventos del sistema.
Visualización de Registros del Sistema en Kali Linux
En este primer paso, aprenderá a visualizar los registros del sistema dentro de un contenedor Kali Linux en la máquina virtual (VM) de LabEx. Los registros del sistema son cruciales para la monitorización y la resolución de problemas en un sistema Linux, ya que registran eventos, errores y actividades. Como principiante, comprender cómo acceder a estos registros es una habilidad fundamental para la administración del sistema.
Cuando abra la terminal en el entorno de la VM de LabEx, se conectará automáticamente al shell del contenedor Kali Linux. No es necesario iniciar manualmente el contenedor ni entrar en el shell; el entorno ya está configurado para usted. Todas las operaciones en este laboratorio se realizarán dentro de la terminal de este contenedor.
Los sistemas Linux almacenan los registros en directorios como /var/log. Los archivos de registro comunes incluyen /var/log/syslog para mensajes generales del sistema y /var/log/auth.log para eventos relacionados con la autenticación. Comencemos por visualizar el contenido de estos archivos utilizando comandos simples.
Ejecute el siguiente comando en la terminal para mostrar las últimas 10 líneas del archivo /var/log/syslog:
tail -n 10 /var/log/syslog
Este comando utiliza tail para mostrar las entradas más recientes en el archivo de registro. La salida se verá algo así, aunque el contenido exacto depende de la actividad de su sistema:
Oct 15 10:22:34 kali-container kernel: [ 1234.567890] some kernel message
Oct 15 10:23:01 kali-container cron[1234]: (CRON) INFO (pidfile fd = 3)
...
Cada línea típicamente incluye una marca de tiempo (timestamp), el nombre del host, el nombre del servicio o proceso y los detalles del evento. Esta salida confirma que ha accedido correctamente a los registros del sistema.
Para monitorizar continuamente las nuevas entradas del registro en tiempo real, lo cual es útil para la depuración, ejecute este comando:
tail -f /var/log/syslog
Esto mostrará las nuevas entradas a medida que se añaden. Para detener la monitorización, presione Ctrl + C para volver al prompt de la terminal.
A continuación, comprobemos el archivo de registro de autenticación /var/log/auth.log, que registra los intentos de inicio de sesión y otros eventos de seguridad. Ejecute este comando:
tail -n 5 /var/log/auth.log
La salida podría verse así, mostrando actividades relacionadas con la autenticación:
Oct 15 10:20:01 kali-container sudo: root : TTY=pts/0 ; PWD=/root ; USER=root ; COMMAND=/bin/bash
...
Este paso le introduce en la visualización de registros, una habilidad básica pero esencial. En los siguientes pasos, se basará en esto filtrando y analizando estos registros para obtener información específica.
Instalación y Uso de journalctl para la Visualización de Registros
Ahora que ha visto cómo visualizar los registros utilizando comandos básicos como tail, pasemos a una herramienta más potente llamada journalctl. Esta herramienta se utiliza para consultar y mostrar los registros gestionados por systemd, el gestor de sistemas y servicios en las distribuciones Linux modernas, incluyendo Kali Linux. Como principiante, aprender journalctl es importante porque proporciona una forma estructurada de acceder a los registros detallados del sistema.
Dado que ya se encuentra en el shell del contenedor Kali Linux (al que se entra automáticamente al abrir la terminal), no necesita navegar ni iniciar nada manualmente. Sin embargo, es posible que journalctl no esté preinstalado o que no sea completamente funcional en una configuración de contenedor mínima, por lo que nos aseguraremos de que las herramientas necesarias estén disponibles actualizando la lista de paquetes e instalando los componentes requeridos.
Ejecute los siguientes comandos para actualizar la lista de paquetes e instalar los componentes de systemd si es necesario:
apt update
apt install -y systemd
Estos comandos actualizan el repositorio de paquetes e instalan systemd, que incluye journalctl. Espere a que se complete la instalación; puede tardar unos momentos.
Una vez instalado, puede utilizar journalctl para ver los registros del sistema. Ejecute este comando para mostrar las entradas de registro más recientes:
journalctl -n 10
La opción -n 10 limita la salida a las últimas 10 líneas. La salida se verá similar a esto, aunque depende de la actividad de su sistema:
Oct 15 10:25:01 kali-container systemd[1]: Starting system activity...
Oct 15 10:25:02 kali-container systemd[1]: Started system activity...
...
Esta salida muestra las entradas de registro con marcas de tiempo, nombres de servicios y mensajes. Si ve algo como esto, significa que journalctl funciona correctamente. Si no aparece ninguna salida o encuentra un error, podría deberse a datos de registro limitados en el entorno del contenedor, lo cual es normal para la configuración de este laboratorio.
Para ver los registros en tiempo real, de forma similar a tail -f, ejecute este comando:
journalctl -f
Esto mostrará continuamente las nuevas entradas de registro. Presione Ctrl + C para detener la monitorización y volver al prompt de la terminal.
Este paso le ayuda a comprender cómo utilizar journalctl para visualizar los registros, lo cual es más avanzado que la visualización básica de archivos. En el siguiente paso, aprenderá a filtrar estos registros para servicios específicos.
Filtrado de Registros por Servicio con journalctl
Basándonos en su capacidad para visualizar los registros con journalctl, este paso se centra en filtrar los registros para mostrar las entradas relacionadas con un servicio específico. Como principiante, el filtrado es una habilidad clave porque los registros del sistema a menudo contienen una mezcla de mensajes de varios procesos, y aislar la información relevante ayuda a solucionar problemas específicos.
Todavía está trabajando dentro del shell del contenedor Kali Linux, al que entró automáticamente al abrir la terminal. No se necesita navegación manual ni inicio del contenedor. Usaremos journalctl para filtrar los registros de un servicio en particular, como cron, que gestiona las tareas programadas en Linux. Esto le permite centrarse en los registros relacionados con un solo componente sin verse abrumado por datos no relacionados.
Para filtrar los registros del servicio cron, ejecute el siguiente comando:
journalctl -u cron
La opción -u especifica la unidad (servicio) por la que filtrar, en este caso, cron. La salida mostrará los registros específicamente relacionados con el servicio cron, con un aspecto similar a este, dependiendo de la actividad del sistema:
Oct 15 10:30:01 kali-container cron[1234]: (CRON) INFO (pidfile fd = 3)
Oct 15 10:30:02 kali-container cron[1235]: (CRON) STARTUP (fork ok)
...
Esta salida muestra solo las entradas relacionadas con cron, incluyendo marcas de tiempo y detalles del evento. Si no aparece ninguna salida, podría significar que el servicio cron no ha generado registros recientes en este contenedor, lo cual es aceptable para fines de aprendizaje.
Si los registros de cron no están disponibles o desea explorar otro servicio, puede intentar filtrar por sshd (si está instalado), que gestiona las conexiones SSH. Primero, asegúrese de que openssh-server esté instalado ejecutando:
apt install -y openssh-server
Espere a que se complete la instalación. Luego, filtre los registros de sshd con este comando:
journalctl -u ssh
La salida podría mostrar eventos relacionados con SSH si el servicio está activo. Si no aparece ninguna salida, está bien para este laboratorio, ya que el enfoque está en aprender el proceso de filtrado.
Este paso le enseña cómo reducir los datos de registro a servicios específicos utilizando journalctl. En el siguiente paso, aprenderá a buscar errores dentro de estos registros para identificar posibles problemas.
Búsqueda de Errores en Registros con journalctl
Habiendo aprendido a filtrar los registros por servicio, este paso le guiará a través de la búsqueda de errores en los registros del sistema utilizando journalctl. Como principiante, identificar errores en los registros es crucial para la solución de problemas, ya que los registros a menudo contienen mensajes que indican problemas con los servicios o aplicaciones. Esta habilidad le ayuda a identificar rápidamente los problemas que necesitan atención.
Todavía está operando dentro del shell del contenedor Kali Linux, al que se accede automáticamente al abrir la terminal. No se requiere configuración o navegación adicional. Usaremos journalctl para buscar mensajes de error filtrando los registros en función de los niveles de prioridad, donde los errores se registran típicamente en una gravedad específica.
En journalctl, las entradas de registro se clasifican por niveles de prioridad, con 3 representando errores (problemas críticos) y 4 representando advertencias. Para buscar mensajes de error en todos los registros, ejecute este comando:
journalctl -p 3
La opción -p 3 filtra los registros para mostrar solo las entradas en el nivel de prioridad 3 (errores). La salida podría verse así, dependiendo de la actividad de su sistema:
Oct 15 10:35:10 kali-container some-service[5678]: error: failed to initialize module
...
Esta salida muestra mensajes de error con marcas de tiempo y detalles. Si no aparece ninguna salida, significa que no hay errores recientes en este nivel de prioridad en los registros, lo cual es común en un entorno de contenedor controlado.
Para incluir advertencias junto con los errores, puede buscar los niveles de prioridad 3 y 4 ejecutando:
journalctl -p 3..4
Este comando muestra tanto errores como advertencias. La salida podría incluir líneas adicionales como:
Oct 15 10:36:15 kali-container another-service[7890]: warning: connection timeout
...
Si no aparece ninguna salida, es aceptable para este laboratorio, ya que el objetivo es aprender el proceso de búsqueda. Este paso le proporciona la capacidad de identificar problemas críticos en los registros utilizando journalctl. En el siguiente paso, aprenderá a exportar estos registros para un análisis más profundo.
Exportación de Registros para Análisis con journalctl
En este paso, aprenderá a exportar los registros del sistema para un análisis más profundo utilizando journalctl. Basándonos en los pasos anteriores donde visualizó, filtró y buscó registros, la exportación le permite guardar datos de registro específicos en un archivo. Esto es útil para un examen detallado o para compartir con otros con fines de solución de problemas. Como principiante, esta habilidad le ayuda a documentar los hallazgos sin acceder repetidamente a los registros originales.
Todavía está trabajando dentro del shell del contenedor Kali Linux, al que entró automáticamente al abrir la terminal. No se necesita inicio ni navegación manual del contenedor. Usaremos journalctl para extraer los registros y redirigir la salida a archivos en el directorio /root para facilitar el acceso.
Exportemos todos los registros recientes a un archivo llamado system_logs.txt en el directorio /root. Ejecute este comando:
journalctl -n 50 > /root/system_logs.txt
La opción -n 50 limita la salida a las últimas 50 entradas de registro, y el símbolo > redirige la salida al archivo especificado. No verá la salida en la terminal porque se está guardando en el archivo. Para confirmar que el archivo se creó y contiene datos, ejecute:
cat /root/system_logs.txt
La salida mostrará las entradas de registro guardadas, de forma similar a lo que vio con journalctl -n 50, incluyendo marcas de tiempo y mensajes.
A continuación, exportemos los registros filtrados por un servicio específico, como cron, a un archivo llamado cron_logs.txt. Ejecute este comando:
journalctl -u cron > /root/cron_logs.txt
Esto guarda solo los registros relacionados con cron en /root/cron_logs.txt. Verifique el contenido ejecutando:
cat /root/cron_logs.txt
La salida mostrará los registros del servicio cron si están disponibles, confirmando que la exportación fue exitosa.
Finalmente, exportemos los registros de error a un archivo llamado error_logs.txt. Ejecute este comando:
journalctl -p 3 > /root/error_logs.txt
Esto guarda los mensajes de error en el archivo especificado. Verifique el contenido con:
cat /root/error_logs.txt
Esta salida mostrará los registros de error si existen. Al completar este paso, ha aprendido a guardar datos de registro para su posterior revisión, una habilidad práctica para la administración y depuración del sistema.
Resumen
En este laboratorio, ha aprendido los aspectos esenciales del análisis de registros en Kali Linux utilizando la herramienta journalctl y las utilidades básicas de la línea de comandos. Comenzó visualizando los registros del sistema en el directorio /var/log con comandos como tail, luego progresó a usar journalctl para un acceso más estructurado a los registros. A través de pasos prácticos, filtró los registros por servicio, buscó errores y exportó los registros para un análisis más profundo dentro de un contenedor Kali Linux en la máquina virtual LabEx. Estas habilidades fundamentales le equipan para una administración y depuración efectivas del sistema en entornos Linux.


