Glosario
Número de secuencia del journal (seqnum)
El contador que journald asigna a cada entrada, compartido por todos los archivos de journal de una máquina; los números que faltan revelan entradas perdidas.
Cada entrada de un archivo del journal de systemd lleva un número de secuencia (seqnum). journald mantiene un único contador por máquina, identificado por el seqnum_id guardado en la cabecera de cada archivo, y lo incrementa con cada entrada que escribe, sea cual sea el archivo de destino: system.journal, los archivos rotados o los archivos por usuario user-<UID>.journal. Cada cabecera guarda además head_entry_seqnum y tail_entry_seqnum, el primer y el último número que debería contener el archivo.
Por qué importa en una investigación
Ordenadas por seqnum dentro de un mismo seqnum_id, las entradas de una recopilación completa forman una serie continua. Un rango que falta significa que existieron entradas que no están en los archivos que tienes. Por eso el seqnum es una prueba de manipulación integrada: borrar un archivo de journal entero, o reescribirlo sin algunas entradas, deja un hueco que sigue siendo visible cuando las entradas ya no están.
Descarta primero las causas benignas:
- Journals de usuario no recopilados. Las entradas escritas en
user-1001.journaltambién consumen números; si solo se recogiósystem.journal, cada una aparece como un hueco. - Archivos eliminados por vacuum. La retención y
journalctl --vacuum-*borran archivos antiguos, así que el hueco queda al principio del rango. - Recopilación en vivo. Un hueco justo al final puede corresponder a entradas escritas mientras copiabas.
Un hueco en mitad de la ventana del incidente, con los journals de usuario presentes, o que coincide con un rm de un archivo de journal en audit.log, es un hallazgo.
Ejemplo
journalctl -D /mnt/evidence/var/log/journal --header
Para cada archivo, este comando muestra el ID de secuencia y los números de secuencia inicial y final. Si system.journal salta de un número a otro mucho mayor durante el incidente y no se encontró ningún user-1001.journal, las entradas que faltan estaban probablemente en ese archivo de usuario. Un reloj atrasado a propósito se ve cuando la hora real baja mientras el seqnum sigue subiendo.
Términos relacionados
- Journal de systemd: el formato de archivo que lleva el contador.
- wtmp y btmp: donde la manipulación aparece como registros puestos a cero.
Linux Log Parser señala los huecos de seqnum y avisa cuando no se cargó ningún journal de usuario. Consulta cómo detectar la manipulación de logs.