Ir al contenido

RegistrosActividad del usuarioRed

auth.log, secure y syslog: logs de texto de Linux

Logs de texto de rsyslog en Linux: auth.log y syslog en Debian/Ubuntu, secure y messages en RHEL, con las trampas de rotación y formato de fecha.

Ubicación
/var/log/auth.log, /var/log/secure
Prueba
Quién se autenticó, desde dónde y con qué método, y qué notificaron los servicios y el kernel, en texto plano
Marcas de tiempo
Tradicional: hora local, sin año ni zona. RFC 3339: hora local con desfase y microsegundos
Acceso
root o grupo adm (Debian/Ubuntu); root (RHEL)
Retención
logrotate: semanal, 4 generaciones en la configuración por defecto de Debian/Ubuntu y RHEL
Adquisición
UAC, Velociraptor, cp -a, tar

Qué es

Un demonio syslog (rsyslog en casi todas las distribuciones principales, a veces syslog-ng) recibe mensajes de los programas y del kernel y los escribe en archivos de texto según reglas de facility y prioridad. En los hosts con systemd, rsyslog suele leer de journald, así que los archivos de texto y el journal contienen copias solapadas de los mismos eventos, almacenadas y rotadas de forma independiente.

El archivo de autenticación es la columna vertebral de la mayoría de las cronologías de intrusión: los inicios de sesión y fallos de sshd, el uso de sudo y su, la apertura y cierre de sesiones PAM, la creación de cuentas y los cambios de contraseña llegan ahí a través de las facilities auth y authpriv.

Dónde se encuentra

ContenidoDebian / UbuntuRHEL / Rocky / Alma / Fedora (con rsyslog instalado)
Autenticación (auth, authpriv)/var/log/auth.log/var/log/secure
Mensajes generales/var/log/syslog/var/log/messages
Kernel/var/log/kern.logen /var/log/messages
Cronen /var/log/syslog/var/log/cron
Correo/var/log/mail.log/var/log/maillog
Reglas/etc/rsyslog.conf, /etc/rsyslog.d/50-default.conf (Ubuntu)/etc/rsyslog.conf, /etc/rsyslog.d/
Rotación/etc/logrotate.d/rsyslog/etc/logrotate.conf, /etc/logrotate.d/rsyslog (versiones antiguas: syslog)

La configuración por defecto de RHEL envía authpriv.* a secure y *.info;mail.none;authpriv.none;cron.none a messages. El 50-default.conf de Ubuntu envía auth,authpriv.* a auth.log y todo lo que no es auth a syslog.

No todos los hosts tienen estos archivos. Debian 12 ya no instala rsyslog por defecto y Fedora dejó de hacerlo en Fedora 20, así que una instalación nueva puede registrar solo en el journal. Los sistemas actualizados conservan rsyslog. Compruebe si existen /etc/rsyslog.conf y el paquete rsyslog antes de interpretar la ausencia de un archivo como un borrado.

Qué prueba

  • Autenticaciones SSH correctas y fallidas, con usuario, IP de origen, puerto y método (Accepted password, Accepted publickey ... SHA256:<fingerprint>, Failed password, Invalid user).
  • Uso de privilegios: líneas de comando sudo:, sesiones su:, pam_unix(...:session): session opened for user.
  • Cambios de cuentas: mensajes de useradd, usermod, groupadd, passwd y chpasswd.
  • Eventos de servicios y del kernel en syslog/messages/kern.log: reinicios de servicios, conexión de USB, líneas LOG del cortafuegos.
  • No prueba lo que hizo un usuario después de iniciar sesión, y todo lo que un usuario local escriba con logger parece una línea normal. El nombre del programa y el PID de la línea los proporciona el emisor y no se verifican.

Campos clave

Una línea tradicional (estilo RFC 3164):

Sep 20 03:14:07 web-prod-03 sshd[4190]: Accepted password for deploy from 203.0.113.50 port 40318 ssh2

La misma línea en el formato de alta precisión por defecto de rsyslog (marca de tiempo RFC 3339):

2026-09-20T03:14:07.512345+02:00 web-prod-03 sshd[4190]: Accepted password for deploy from 203.0.113.50 port 40318 ssh2
ParteSignificado
Marca de tiempoMomento en que el demonio syslog escribió la línea (ver más abajo)
Nombre de hostHost que generó el mensaje (importante en servidores de logs centralizados)
Etiqueta program[pid]Nombre y PID del emisor tal como los proporciona el emisor
MensajeTexto libre; los patrones dependen de cada programa

Patrones de mensaje útiles: Accepted, Failed password, Invalid user, Connection closed by authenticating user, session opened, session closed, COMMAND=, new user:, new group:, password changed for. OpenSSH 9.8 y posteriores separan el proceso por conexión en sshd-session, así que busque con grep ambos nombres.

Marcas de tiempo

Hay dos formatos habituales, y es imprescindible identificar cuál usaba el host:

  • Tradicional (RSYSLOG_TraditionalFileFormat): Mmm dd HH:MM:SS, hora local, sin año ni zona horaria. El rsyslog.conf de la familia RHEL fija esta plantilla de forma explícita.
  • Alta precisión (el formato integrado por defecto de rsyslog, RSYSLOG_FileFormat): RFC 3339 con microsegundos y desfase respecto a UTC. Debian lo activó a partir de bookworm (12) al dejar de forzar la plantilla tradicional, y Ubuntu 24.04 también registra así.

Con el formato tradicional, recupere la zona de /etc/localtime (o /etc/timezone en Debian) en la imagen y deduzca el año a partir de los metadatos de los archivos y del orden de rotación. Tenga cuidado con los cambios de año dentro de un mismo archivo y con los cambios de horario de verano que duplican o saltan una hora.

ls -l /mnt/evidence/etc/localtime        # symlink target names the zone
TZ=Europe/Paris date -u -d '2026-09-20 03:14:07'   # local -> UTC

Retención

logrotate controla la vida útil. El /etc/logrotate.d/rsyslog de Debian rota semanalmente, conserva 4 generaciones y comprime con delaycompress (auth.log, auth.log.1, auth.log.2.gz ...). En RHEL, los valores por defecto son semanal, rotate 4 y dateext (secure-20260920). Cuente con aproximadamente un mes de historial de texto salvo que se haya cambiado la configuración. El journal puede conservar más o menos, así que compare siempre ambos.

Adquisición

# Dead box, from a read-only mount
tar -C /mnt/evidence -cpf /cases/2026-017/varlog.tar var/log etc/rsyslog.conf etc/rsyslog.d etc/logrotate.conf etc/logrotate.d etc/localtime

# Live, as root: copy, do not tail or edit in place
tar -C / -cpf /media/ir/varlog.tar var/log etc/rsyslog.conf etc/rsyslog.d etc/logrotate.d etc/localtime

El artefacto var_log de UAC recoge todo /var/log; Velociraptor puede recoger las mismas rutas con sus artefactos de recogida de archivos. Llévese también las generaciones rotadas y comprimidas, y anote la hora de adquisición: logrotate puede ejecutarse mientras trabaja.

Análisis

Las herramientas de texto plano llegan muy lejos; la clave es leer todas las generaciones en orden.

cd /mnt/evidence/var/log
zgrep -hE 'Accepted|Failed password|Invalid user' auth.log* secure* 2>/dev/null
zgrep -h 'sudo:' auth.log* secure* 2>/dev/null
zgrep -hE 'new user|new group|password changed' auth.log* secure* 2>/dev/null

Para las cronologías, Plaso incluye los plugins de parser text/syslog y text/syslog_traditional; pase --timezone con los archivos en formato tradicional para que las horas locales se conviertan correctamente. lnav resulta práctico para recorrer de forma interactiva muchos archivos rotados. Linux Log Parser lee en el navegador auth.log / secure, syslog, los archivos del journal, audit.log y wtmp / btmp / lastlog, y los combina en una sola cronología con las sesiones de inicio reconstruidas; no se sube nada.

Consejos para la investigación

  • Un número de líneas que cae a mitad del día, un archivo actual mucho más pequeño que sus hermanos rotados o un archivo cuyo mtime es anterior a actividad conocida son indicios de edición o truncado. Compare con el journal y con wtmp.
  • Cada línea Accepted debería tener su sesión en wtmp y, si auditd está activo, un registro USER_LOGIN en audit.log. Si falta la pareja, hay que explicarlo.
  • Asocie las huellas de Accepted publickey con las entradas de authorized_keys (ver artefactos SSH) para identificar la clave utilizada.
  • Revise /etc/rsyslog.conf y /etc/rsyslog.d/ en busca de destinos de reenvío (@host, @@host, omfwd): un colector remoto puede conservar logs eliminados en local, y una regla stop o de descarte añadida recientemente es en sí misma una manipulación.
  • La parada de rsyslog.service aparece en el journal; un hueco en el log de texto mientras el journal sigue funcionando apunta directamente al demonio syslog.
  • En los servidores de logs centralizados, recuerde que la marca de tiempo puede ser la del receptor y no la del emisor, según la plantilla.

Ver también