Capítulo 9. Auditoria y Logs

Tabla de contenidos

Usuarios presentes en el sistema
El comando who
El comando w
El comando users
El fichero /var/run/utmp
Usuarios que estuvieron en el sistema
El fichero /var/log/wtmp
El commando last
El fichero /var/log/btmp
El comando lastb
El fichero /var/log/lastlog
El comando lastlog
Permisos SUID y SGID
Peligros con estos permisos
Evitando la ejecución de ficheros con esos permisos
Localizando estos ficheros
El demonio syslogd
Las facilidades de syslogd
Los tipos de syslogd
El fichero /etc/syslog.conf
Rotado de logs
El fichero /etc/logrotate.conf
Ejecución de logrotate

Es necesario que en los sistemas quede auditado quien está, estuvo y que hizo en el sistema con el mayor detalle posible.

Usuarios presentes en el sistema

Existen varios comandos para comprobar la presencia de usuarios con sesiones abiertas en el sistema.

El comando who

Nos da información sobre quién está conectado en el sistema:

[root@sal]# who
bender :0           2007-04-11 08:06
bender pts/1        2007-04-11 12:50 (:0.0)
[root@sal]# 

Existen varios flags interesantes:

  • -H nos muestra las cabeceras de las columnas:

    [root@sal]# who -H
    NOMBRE   LINEA       TIEMPO           COMENTARIO
    bender :0           2007-04-11 08:06
    bender pts/1        2007-04-11 12:50 (:0.0)
    [root@sal]# 
    
  • -u nos muestra el tiempo que estuvo inactivo el terminal.

    [root@sal]# who -Hu
    NOMBRE   LINEA        TIEMPO       INACTIV        PID        PID COMENTARIO
    bender pts/0        Apr 11 08:11   .         15772 (192.168.32.60.64)
    bender pts/1        Apr 11 08:12 03:44       18528 (192.168.60.64)
    zoidberg  pts/3        Apr 11 14:36 01:09       25822 (192.168.60.14)
    [root@sal]# 
    
  • -q muestra el número total de usuarios conectados.

    [root@sal]# who -p
    bender bender zoidberg
    # users=2
    [root@sal]# 
    

El comando w

Este comando nos indica lo que está haciendo cada usuario:

[root@sal]# w
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
root :0       -                08:06   ?xdm?   5:58m  0.01s /bin/sh /usr/bin/x-session-manager
root pts/1    :0.0             12:50    1.00s  0.20s  0.00s w
[root@sal]# 

La información que aparece en las columnas es la siguiente:

  • USER usuario.

  • TTY terminal en el que está conectado el usuario.

  • FROM desde donde está conectado el usuario.

  • LOGIN@ hora en la que empezó la sesión.

  • IDLE tiempo que el usuario ha permanecido inactivo.

  • JCPU tiempo total de CPU para todos los procesos en el terminal.

  • PCPU tiempo total de CPU para todos los procesos activos en el terminal.

  • WHAT comando que está siendo ejecutado en el terminal.

Sugerencia

Si le especificamos como parámetro un usuario veremos únicamente la información referente a ese usuario.

El comando users

Este comando nos indica los usuarios que están conectados en el sistema.

[root@sal]# users
bender bender zoidberg lila fry fry
[root@sal]# 

El fichero /var/run/utmp

Este fichero contiene los usuarios que están presentes en el sistema en ese momento. Este fichero es utilizado por comandos como who, w, users, finger y write.