Autor
|
Tema: Notificar de que alguien se a conectado al sistema mediante ssh (Leído 3,407 veces)
|
Sergiolocuelo
Desconectado
Mensajes: 51
Somos ignorantes, pero no todos ignoramos lo mismo
|
Hola, me gustaría hacer un script que me avise cuando alguien se conecte a mi sistema mediante ssh, la cuestión es ¿como puedo hacerlo? ¿Haría falta hacer un script con un bucle?
|
|
|
En línea
|
|
|
|
engel lex
|
si, un bucle
la forma facil de hacerlo y como muchos programas implementan sistemas, es leer el log de ssh, si hay nuevas lineas, entonces algo pasó, solo tienes que leer la linea y dice que pasó y cual ip lo causó
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
Slava_TZD
Wiki
Desconectado
Mensajes: 1.466
♪ [8675309] ♪
|
si, un bucle
la forma facil de hacerlo y como muchos programas implementan sistemas, es leer el log de ssh, si hay nuevas lineas, entonces algo pasó, solo tienes que leer la linea y dice que pasó y cual ip lo causó
#!/bin/bash if [ "$EUID" -ne 0 ] then echo "run as root" exit fi LOG="/var/log/sshd_log" PATTERN="[sshd] Starting session: shell on" tail -F -n0 ${LOG} |\ while read LINE; do if echo "${LINE}" | grep -F "${PATTERN}" >/dev/null; then MSG=$(echo "${LINE}"|cut -d' ' -f10-) xmessage -center "New session ${MSG}" & fi done
xmessage es solo de ejemplo, si quieres una notificación necesitas alguna pijada estilo libnotify+zenity. Suerte
|
|
« Última modificación: 20 Agosto 2018, 04:52 am por Slava_TZD »
|
En línea
|
The fact is, even if you were to stop bombing us, imprisoning us, torturing us, vilifying us, and usurping our lands, we would continue to hate you because our primary reason for hating you will not cease to exist until you embrace Islam.
|
|
|
animanegra
Desconectado
Mensajes: 287
|
Tambien podrías poner en el bashrc una linea que mande el mensaje. Creo recordar que la variable display muestra ":0" si estas en local asi que cuando no valga eso mandas un mensaje (Tengo mala memoria así que igual no es esa variable la que indica desde donde conectas, haciendo env es facil de ver cual es). De esta manera no tienes que estar todo el rato mirando el archivo de log de ssh.
Yo hice en su dia un programa que hacía un wget a un servidor con un php muy básico (metia el nombre del ordenador, usuario y hora de login) y tenia un cliente en movil que se conectaba para decirme cuando hacia login alguien en alguno de mis equipos. Tambien se podía hacer algo parecido con el autorun del windows y en mac. De esta manera sabías a que hora esta entrando alguien y si eres tu.
Saludos.
|
|
|
En línea
|
42 No contesto mensajes por privado, si tienes alguna pregunta, consulta o petición plantéala en el foro para que se aproveche toda la comunidad.
|
|
|
Sergiolocuelo
Desconectado
Mensajes: 51
Somos ignorantes, pero no todos ignoramos lo mismo
|
#!/bin/bash if [ "$EUID" -ne 0 ] then echo "run as root" exit fi LOG="/var/log/sshd_log" PATTERN="[sshd] Starting session: shell on" tail -F -n0 ${LOG} |\ while read LINE; do if echo "${LINE}" | grep -F "${PATTERN}" >/dev/null; then MSG=$(echo "${LINE}"|cut -d' ' -f10-) xmessage -center "New session ${MSG}" & fi done
xmessage es solo de ejemplo, si quieres una notificación necesitas alguna pijada estilo libnotify+zenity. Suerte No comprendo muy bien tu código ya que sé lo básico de shell script, este es mi código: #! /bin/bash conectados=`w|wc -l`
for conex in $conectados; do if [ $conex -gt 3 ]; then zenity --info --text "Alguien se a conectado" fi done
Como veréis lo e hecho de manera sencilla, el problema es que solo me avisa de que hay alugien conectado solo cuando abro la terminal, ¿Tengo mal el bucle for?
|
|
« Última modificación: 20 Agosto 2018, 20:30 pm por Sergiolocuelo »
|
En línea
|
|
|
|
Slava_TZD
Wiki
Desconectado
Mensajes: 1.466
♪ [8675309] ♪
|
w no te muestra exactamente si a se han conectado por SSH. La forma de hacerlo es como comentó el otro compañero y te muestro en el script. No tiene misterio, hace un tail al log y cada línea es evaluada en busca de una pattern que indique que una nueva sesión se abrió.
Si quieres hacer funcionar tu script tienes que meter todo eso dentro de un bucle.
Suerte
|
|
|
En línea
|
The fact is, even if you were to stop bombing us, imprisoning us, torturing us, vilifying us, and usurping our lands, we would continue to hate you because our primary reason for hating you will not cease to exist until you embrace Islam.
|
|
|
Sergiolocuelo
Desconectado
Mensajes: 51
Somos ignorantes, pero no todos ignoramos lo mismo
|
w no te muestra exactamente si a se han conectado por SSH. La forma de hacerlo es como comentó el otro compañero y te muestro en el script. No tiene misterio, hace un tail al log y cada línea es evaluada en busca de una pattern que indique que una nueva sesión se abrió.
Si quieres hacer funcionar tu script tienes que meter todo eso dentro de un bucle.
Suerte
El script que pasó no me funciona, no tengo el archivo sshd_log
|
|
|
En línea
|
|
|
|
Slava_TZD
Wiki
Desconectado
Mensajes: 1.466
♪ [8675309] ♪
|
Era un path de ejemplo, el fichero no es el mismo ni tiene porque estar en el mismo lugar dependiendo del logger que tengas y de como esté configurado... Si te conectas por SSH y luego haces un grep -r "shell on" en /var/log te dirá donde está logueando. Ejemplo # cd /var/log # grep -r "shell on" sshd/current:Aug 20 00:00:01 [sshd] Starting session: shell on pts/12 for root from 10.0.55.154 port 37238 id 0 Puede que la pattern no te coincida...eg te sale el pid del servidor en log 'sshd[8321]' o tiene un formato distinto, simplemente te fijas en el mensaje que se genera al loguearte y creas otra. Suerte
|
|
|
En línea
|
The fact is, even if you were to stop bombing us, imprisoning us, torturing us, vilifying us, and usurping our lands, we would continue to hate you because our primary reason for hating you will not cease to exist until you embrace Islam.
|
|
|
Sergiolocuelo
Desconectado
Mensajes: 51
Somos ignorantes, pero no todos ignoramos lo mismo
|
Era un path de ejemplo, el fichero no es el mismo ni tiene porque estar en el mismo lugar dependiendo del logger que tengas y de como esté configurado... Si te conectas por SSH y luego haces un grep -r "shell on" en /var/log te dirá donde está logueando. Puede que la pattern no te coincida...eg te sale el pid del servidor en log 'sshd[8321]' o tiene un formato distinto, simplemente te fijas en el mensaje que se genera al loguearte y creas otra.
Suerte
Gracias por la información!! Al final como no sabía como hacer el bucle en linux, le e hecho con python: #! /usr/bin/python3
import subprocess def bucle(): a=subprocess.check_output("who|wc -l", shell=True) if a[0]>2:
subprocess.run("zenity --info --text 'Alguien se a conectado'", shell=True) subprocess.run("espeak -ves 'Alguien se a conectado al sistema'", shell=True)
while True: bucle() subprocess.run("sleep 30", shell=True)
¿El bucle que e hecho con python se hace igual que en Linux o es de otra forma diferente? Si me lo demostrases te estaría muy agradecido También voy a intentar a hacerlo como me indicáis
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Acceder a pc conectado a la misma red (mismo router) mediante wifi
Hacking
|
albertiko
|
6
|
101,758
|
1 Agosto 2012, 19:44 pm
por cyberboom99
|
|
|
Componentes de un sistema de cámaras conectado a Internet
Redes
|
sora_ori
|
3
|
2,483
|
20 Mayo 2011, 15:50 pm
por sora_ori
|
|
|
Teléfono conectado, casa conectada, coche conectado… ¿cuerpo conectado? ......
Noticias
|
wolfbcn
|
2
|
3,075
|
23 Marzo 2015, 20:51 pm
por DavEmmanuel
|
|
|
Salida al Sistema Siin notificar error.
Programación C/C++
|
CBFD
|
1
|
1,931
|
25 Mayo 2016, 15:01 pm
por AlbertoBSD
|
|
|
Un iPhone 6 Plus explota conectado a la red eléctrica mediante el cargador ...
Noticias
|
wolfbcn
|
0
|
1,182
|
9 Octubre 2016, 21:32 pm
por wolfbcn
|
|