Glosario
Journal de systemd
El log binario de systemd-journald: entradas CAMPO=valor con campos de remitente de confianza y horas UTC en microsegundos; a menudo, el único log del sistema.
El journal de systemd es el log binario que escribe systemd-journald. Recoge mensajes del kernel, de los programas que usan la API de syslog o la API nativa del journal, de la salida estándar de cada servicio y del subsistema de auditoría, y los guarda como entradas formadas por pares CAMPO=valor. Los archivos persistentes están en /var/log/journal/<machine-id>/; los volátiles, en /run/log/journal/<machine-id>/, desaparecen al reiniciar. Cuál se usa depende de Storage= en journald.conf.
Cada archivo empieza con la firma LPKSHHRH y una cabecera, seguidas de objetos: cargas DATA deduplicadas, objetos ENTRY, tablas hash y arrays. Las cargas grandes pueden comprimirse con XZ, LZ4 o ZSTD, y desde systemd 252 los archivos pueden usar una disposición compacta con desplazamientos de 32 bits.
Por qué importa en una investigación
Los campos que empiezan por guion bajo los añade journald a partir de lo que el kernel sabe del remitente, y este no puede falsificarlos: _PID, _UID, _COMM, _EXE, _CMDLINE, _SYSTEMD_UNIT, _BOOT_ID, _AUDIT_LOGINUID, _AUDIT_SESSION. Una línea sshd falsa escrita con logger sigue mostrando _COMM=logger y el UID real. Las marcas de tiempo son microsegundos desde el epoch en UTC, y cada entrada tiene un número de secuencia que delata las entradas borradas. En Debian 12 y algunas instalaciones de Fedora, el journal es el único log del sistema.
Ejemplo
Un inicio de sesión SSH tal como lo muestra journalctl -o verbose (resumido):
_TRANSPORT=syslog
_PID=3071
_UID=0
_COMM=sshd
_SYSTEMD_UNIT=ssh.service
SYSLOG_IDENTIFIER=sshd
MESSAGE=Accepted password for svc_backup from 203.0.113.45 port 51544 ssh2
Pasa siempre -D al leer evidencias, por ejemplo journalctl -D /mnt/evidence/var/log/journal; si no, journalctl lee el journal de la propia máquina de análisis. Conserva los archivos .journal~: se renombraron tras una parada no limpia y a menudo cubren los últimos minutos antes de un fallo.
Términos relacionados
- Número de secuencia del journal: el contador que delata la manipulación.
- rsyslog: escribe copias en texto de los mismos mensajes.
- systemd-logind: registra la creación de sesiones en el journal.
Linux Log Parser analiza archivos de journal en bruto, compactos y comprimidos. Consulta el análisis forense del journal de systemd.