Hola,

> Tengo una pequeña duda, para ver los accesos de un
> usuario a un sistema, ocupo el comando
>
> last -i usuario
>
> y me proporciona lo que espero, pero cuando abro el
> archivo que usa last para generar el informe, veo solo
> caracteres raros.
>
> Mi pregunta es, ¿como es el formato del archivo para
> poderlo leer desde una aplicación, o existe alguna
> otra aplicación que me permita manipular ese archivo,
> digamos para generar reportes de accesos de los
> usuarios al sistema, duración de la conexión entre
> otras cosas?

Que yo sepa no hay ninguna aplicación para manipular el fichero, aunque sí
que hay los llamados zappers para borrar un acceso ilegal, pero creo que lo
que hacen el sobreescribir con ceros el fichero.

El fichero en cuestión que utiliza last es "/var/log/wtmp" que es binario.
La estructura de los datos se encuentra en utmp.h.

$ man utmp

Así que si tienes ganas y tiempo, ale, a programar... :-)


Permíteme que te haga un copy-paste de un documentillo que hice por ahí...
:-)

Saludos.

--------


1.1.1    wtmp

Este archivo es un fichero binario, lo que significa que no se puede leer su
contenido directamente volcándolo con la orden cat por ejemplo. Almacena
información relativa a cada conexión y desconexión al sistema. Normalmente
se ubica en /var/log o /var/adm. El contenido se puede visualizar con la
orden last, de tal manera, que el último registro aparecerá en primer lugar.
Además, con el comando ac se pueden seleccionar el orden en el que se quiere
que aparezcan los datos, por fecha, por usuario, etc. También se puede
determinar el tiempo que ha estado un usuario en el sistema.
Los registros guardados en este archivo (y los de utmp) tienen el formato de
la estructura utmp, que contiene información como el nombre de usuario, la
línea por la que accede, el lugar desde donde lo hace y la hora de entrada y
salida del sistema. Se puede consultar la página de man relacionada para ver
la estructura concreta del clon de Unix con el que se trabaje. Algunas
versiones como Solaris o IRIX, utilizan un fichero wtmp extendido denominado
wtmpx, con campos adicionales que proporcionan más información sobre la
conexión.
En este fichero guardan información distintos procesos de autentificación
como login, ftpd, etc., X-Windows cuando da acceso a un terminal y el
proceso de reinicio/apagado del sistema.
Cada vez que un usuario entra o sale del sistema, el fichero aumenta de
tamaño. Si un intruso quiere borrar el registro, generalmente lo
sobrescribirá con ceros, con lo que conviene vigilar el tamaño. Las copias
de seguridad de este fichero son de gran importancia, sobretodo si tenemos
en cuenta que también graba el cierre y la puesta en marcha del sistema.
Este fichero es de gran importancia pues puede detectar si alguien ha
utilizado la cuenta de un usuario para acceder al sistema. Esto es fácil de
detectar si el propietario de la cuenta tiene costumbre de acceder al
sistema en horas específicas, por el tiempo de estancia en el sistema o si
la conexión se produce en horas en las que nunca se accede o, simplemente,
el origen de la máquina cliente es desconocido.




1.1.2    utmp

El archivo utmp es también un fichero binario con la información de cada
usuario que está conectado en un momento dado en el sistema. Así pues, es un
registro dinámico y no guarda información histórica. Utiliza la misma
estructura de datos que wtmp. El programa login genera un registro en este
fichero cuando un usuario se conecta al sistema e init lo elimina cuando
desconecta. Normalmente se ubica en /var/log o en /var/adm aunque puede
estar también en /etc. Para visualizar su contenido se puede utilizar last
indicándole la ruta del archivo, w o who.
Algunas versiones utilizan una versión extendida de utmp (xutmp) con campos
adicionales.


1.1.3    lastlog

El fichero lastlog es un fichero binario guardado generalmente en /var/log o
/var/adm. Contiene un registro para cada usuario con la fecha y hora de su
última conexión. Se pueden visualizar sus datos con la orden lastlog y
finger.
Cuando un usuario se registra en el sistema, el programa de registro tratará
de identificarlo buscando su identificador en el fichero lastlog. Cuando lo
encuentra, el programa muestra la última entrada al sistema. Los usuarios
del sistema pueden utilizar este método para averiguar si alguien ha
utilizado su cuenta. El programa login actualiza el registro renovando la
información sobre el puerto a través del cual accedió al sistema y la hora
en que tuvo lugar el acceso.


1.1.4    faillog

Este fichero es equivalente a lastlog, pero el lugar de guardar información
sobre la fecha y hora del último acceso al sistema, lo hace del último
intento de acceso de cada usuario. Una conexión es fallida si alguien teclea
incorrectamente su contraseña. Esta información se muestra la siguiente vez
que dicho usuario entra correctamente a la máquina.


1.1.5    loginlog

Si en algunas versiones de Unix como Solaris se crea el archivo
/var/adm/loginlog (que originalmente no existe), se registrarán en él  los
intentos fallidos de login, siempre y cuando se produzcan más de cuatro
seguidos.




1.1.6    btmp

En algunos clones de Unix como Linux o HP-UX, el fichero btmp se utiliza
para registrar las conexiones fallidas al sistema, con un formato similar al
que utiliza wtmp para las conexiones exitosas.


1.1.7    sulog

Este es un fichero de texto donde se registran las ejecuciones de la orden
su, indicando fecha, hora, usuario que lanza el programa y usuario cuya
identidad adopta, terminal asociado y éxito (+) o fracaso (-) de la
operación. Todo intento de acceder a la cuenta de root quedará registrado
aquí, por lo que puede detectar intentos fallidos de convertirse en root.
Además, queda registrado el intercambio de identidades que existen entre
usuarios, cosa que se debe vigilar porque la contraseña de un usuario no la
debe conocer nadie más que él. Si hay un intercambio de identidad entre
usuarios debemos sospechar que algún intruso ha conseguido varias
contraseñas del sistema.



_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com


Responder a