Glosario
lastlog
El archivo /var/log/lastlog: una ranura de tamaño fijo por UID con la hora, el terminal y el host remoto del inicio de sesión más reciente de esa cuenta.
/var/log/lastlog registra el inicio de sesión más reciente de cada cuenta. Es un array de struct lastlog indexado por UID: la ranura del UID N está en el desplazamiento N × 292 bytes en x86_64, y cada ranura contiene una hora de 32 bits, un nombre de terminal de 32 bytes y un host remoto de 256 bytes. En aarch64 la ranura ocupa 296 bytes. El comando lastlog la muestra usando el /etc/passwd local.
Como el desplazamiento depende del UID, un solo inicio de sesión de un UID alto (por ejemplo 100000) hace que el archivo parezca enorme. Es un archivo disperso: solo unos pocos bloques se usan de verdad, así que hay que recopilarlo con tar --sparse para no copiar gigabytes de ceros.
Por qué importa en una investigación
Cada inicio de sesión sobrescribe la ranura, así que lastlog solo conoce el último inicio de sesión de cada cuenta, pero lo conserva indefinidamente, mucho después de que wtmp haya rotado. Sobre todo, se escribe de forma independiente de wtmp. Una hora de lastlog sin sesión correspondiente en wtmp, cuando wtmp cubre ese periodo, es una señal clara de que se eliminó o se puso a cero un registro de wtmp. También revela cuentas que iniciaron sesión una vez, hace años, y que nunca deberían haberlo hecho.
Ejemplo
La ranura de svc_backup (UID 1001) empieza en el byte 1001 × 292 = 292292:
dd if=lastlog bs=292 skip=1001 count=1 2>/dev/null | xxd
Tras el inicio de sesión del caso práctico del sitio, esa ranura contiene la hora, pts/1 y 203.0.113.45. Las distribuciones recientes sustituyen este archivo por lastlog2, una base de datos SQLite en /var/lib/lastlog/lastlog2.db cuya tabla Lastlog2 guarda Time en segundos.
Términos relacionados
- wtmp y btmp: el historial completo con el que comparar.
- utmp: las sesiones abiertas en este momento.
- wtmpdb: el sucesor de wtmp en SQLite.
Linux Log Parser lee los dos tamaños de ranura y lastlog2. Más detalles en el análisis forense de wtmp, btmp y lastlog.