Nunca se han preguntado …¿cómo es posible saber quién se ha logueado en tu PC, ya sea por iniciar sesión en el equipo o al conectarse por SSH o por Samba?
Lo primero que vamos a ver, es sencillamente quien ha realizado los últimos inicios de sesión en nuestro equipo, es decir, quien se ha logueado. Para ello en la terminal tecleamos:
last
Aquí nos indica quien esta logueado ahora mismo (logged in) y quien se ha logueado y desconectado, indicándonos el tiempo total que ha durado la sesión.
Pero no nos vamos a quedar aquí. Generalmente en nuestro equipo podemos controlar quien se ha logueado y quien no con relativa facilidad. Lo difícil es quien lo hace por SSH. Para ello en la terminal ejecutamos el siguiente comando:
sudo cat /var/log/auth.log | grep sshd
Actualizado
Para saber los usuarios que se han conectados por samba a nuestra PC ejecutamos el siguiente comando:
sudo cat /var/log/samba/log.smbd | grep initially
Y una parte interesante es ver quien no puede acceder. Puede que el Failed haya sido porque su contraseña este caduca, que la haya olvidado ¡o que estén tratando de acceder sin permiso! 🙂
sudo cat /var/log/auth.log | grep Failed
Si se quieren saber los de samba es solo cambiar el fichero, queda de la siguiente manera:
sudo cat /var/log/samba/log.smbd | grep failed
Nada, que el mundo de Linux y la consola son infinitos y siempre es bueno tener algunos comandos bajo la manga para cuando hagan falta. ¿Conoces otro modo de hacer lo mismo? ¿Te sabes otro truco para linux que nos pueda servir? …esperamos tu comentario!!
Comentarios ( 21 )
lastlog tambien devuelve algo al respecto
Y alguien sabe algun truco de estos para windows.
Saludos
Muy interesante el artículo. Para el caso del samba, para saber quién está actualmente conectado y a que recurso yo uso smbstatus 😉
Good +5
Muy bueno eso, pero en Windows saben como hacerlo, hay lectores que les gusta Linux pero estan obligados a usar windows. Como se hace en Windows?
Para Windows pueden hacerlo utilizando programas como Network Share Monitor.
En Windows en el administrar del equipo en compartir van a archivos abiertos y ahí te sale el usuario que está conectado y desde que PC está logeado.
Bueno ahora mismo intenté hacer una conexión fallida por ssh a la propia pc y no salió nada de nada y con smbstatus me arroja resultados y con los del post no hace nada. ¿Solo eso me ha pasado a mi?
lo que se quiere de Windows es ver el historial de las conexiones que han existido a la nuestra PC
Corregí los comandos para los accesos/fallos por samba
@engel
a mi si me sale la conexión fallida por ssh …estas escribiendo la “F” con mayúscula …para el caso del ssh es con mayúscula la F y en caso de samba es con minúscula.
Hace un tiempo estuve analizando el Auth.log y tenia muchos Failed, desde un mismo ip que era en el edificio 118 o algo asi, recuerdo que era un edificio de profesores, eso me hizo pensar que alguien estaba haciendo un ataque de fuerza bruta, pero no segui analizando…. hasta ahora no he tenido problemas.
estos accesos se pueden constatar en el momento de el acceso mediante este script (mientras está en ejecución):
inotifywait es un módulo del kernel que se añadió a partir de la versión 2.algo, permite monitorizar carpetas y lanzar alertas cuando estas se modifican (se crean objetos o se modifican los archivos) en este caso se está monitoriando la carpeta de los logs de samba y al crearse un nuevo log (cada log pertenece a una IP o usuario) se lanza un notify y se escucha un texto. Las acciones dependen de los paquetes instalados.
Con esta técnica el navegador de archivos actualiza al instante la carpeta que está mostrando si desde un terminal se crea un nuevo objeto en ella.
En internet hay múltiples ejemplos en C, Vala,y hasta PHP.
Para el caso del ssh podemos monitoriar el acceso al archivo del log, y lanzar una alerta cuando se modifica:
Bueno, casi escribo un post, a ver si alguien se embuya
@rojas
en /var/log/samba se puede ver claramente cuales IP se dedican a escanear la red 🙂 y los que intentan acceder a tu PC de algún modo
Para saber las sesiones abiertas actualmente también se puede usar el comando who :
$ who
dariemp tty7 2013-11-26 18:43
Para conocer los usuarios conectados en windows solo tienes que escribir en la consola
netstat session
netstat files #devuelve las carpetas en las que están
Muy útil estas técnicas.
Un punto, estás aconsejando una mala práctica al hacer cat | grep, grep busca al especificarle un fichero como 2do parámetro.
# grep sshd /var/log/secure
+10
En Windows se puede usar el comando “net”, por ejemplo, “net files” te dice quien esta conectado, el ip y las direcciones en el disco a las que esta accediendo el usuario.
el comando last yo lo estuve probando un tiempo atras para este mismo tema que estan hablando.. pero tenia sus dificultades, en referencia de q habian sesiones que no aparecian.. ya fueran porque se iniciaban por una tty diferente o a la hora de apagar la maquina se hacia por el boton.. y no recuerdo que sucede cuando se inicia sesion por la uci. el lunes lo pruebo de nuevo..
si alguien conoce otra alternativa.. se lo agradeceria…
Excelente artículo,gracias kceres.
@kceres
¿Cómo accedo?