Hace unos días descubrí por casualidad un interesante proyecto, snoopy, que no es más que un pequeño wrapper que se encarga de 'loguear' todos aquellos comandos que un usuario ejecuta en la shell en los ficheros de log. Gracias a ello, podemos saber en todo momento qué fue lo que se ejecutó y sobre todo, quién lo ejecutó. snoopy es por lo tanto un comando muy interesante, ya que de forma muy simple, permite depurar responsabilidades.
Para instalar snoopy puedes hacerlo desde repositorios o desde código fuente, descargable desde aquí.
shell> apt-get install snoopyo bien,
shell> wget snoopy shell> tar zxvf snoopy-1.8.0.tar.gz shelL> cd snoopy-1.8.0 shell> ./configure shell> make shell> make install shell> echo "/usr/local/lib/snoopy.so" >> /etc/ld.so.preload
Tras tenerlo instalado, lo único que será necesario será reiniciar la sesión de usuario y ya cargará la nueva directiva de logueo. Tras ello, en /var/log/auth.log quedará un registro de todo aquello que se está ejecutando en el sistema y quién lo ha ejecutado.
shell> tail -f /var/log/auth.log Sep 6 13:03:24 server_5 snoopy[7890]: [uid:0 sid:7707 tty:/dev/pts/2 cwd:/root filename:/usr/bin/tail]: tail -f /var/log/auth.log Sep 6 13:03:29 server_5 snoopy[7904]: [uid:1002 sid:7830 tty:/dev/pts/0 cwd:/home/javier filename:/bin/su]: su Sep 6 13:04:36 server_5 snoopy[7970]: [uid:1002 sid:7918 tty:/dev/pts/4 cwd:/home/javier filename:/bin/ls]: ls --color=auto -l
Como se puede observar, queda la sesión (tty) de la persona que lo ha ejecutado, no el nombre, así que habrá que emplear el comando who para saber quién la tenía. Para ello,
shell> who /var/log/wtmp
A partir de ahora siempre podréis saber quién ejecutó qué comando.
No hay comentarios :
Publicar un comentario