¿Cómo obtener una notificación por correo electrónico cuando se inserta un dispositivo de almacenamiento USB?

27

Estamos ejecutando más de 600 sistemas Ubuntu en nuestra empresa. Es un centro de datos, por lo que tenemos ciertas políticas. Hemos desactivado el uso de dispositivos de almacenamiento en todos los sistemas Ubuntu. Sin embargo, nos gustaría configurar alertas por correo electrónico. Si alguien inserta dispositivos de almacenamiento, deberíamos recibir una alerta por correo electrónico con el asunto de la siguiente manera,

Alerta de correo:

STORAGE DEVICE FOUND on IP: 172.29.35.18

Nota:

  • En cuanto al sistema de Windows, tenemos ciertas políticas aplicadas en nuestro DC. Entonces no hay problema con el sistema Windows.
  • Necesitamos recibir alertas para el sistema Ubuntu también. Cualquier forma de lograr la tarea anterior sería genial.

Actualizar:

  • ¿Algunas cosas que me gustaría aclarar, si el usuario desconecta el cable de red y si utiliza el usb para la transferencia de datos? Sé que no tendré ninguna idea, pero luego, si conectan la red, ¿es posible obtener esas notificaciones pendientes?
  • Algunos usan usb para cargar sus teléfonos móviles, ¿es posible recibir notificaciones por correo electrónico para eso también?
karthick87
fuente
Creo que deberías ir a ver esta publicación en superuser: superuser.com/questions/305723/… Ben
Ben

Respuestas:

25

La forma de hacerlo es utilizar una regla udev que se aplicará a todos los dispositivos de almacenamiento USB de cualquier fabricante. Para la parte de correo electrónico, tenga en cuenta que Ubuntu Desktop NO incluye ningún cliente de correo electrónico de línea de comandos, por lo que a menos que desee instalar uno, el script de notificación debe comunicarse directamente a través de comandos SMTP sin procesar a su servidor de correo local.

ish
fuente
Esto es genial +1 de mi parte: D
karthick87
Gran respuesta, y dio toda la necesidad de salida, tanto de correo electrónico como de ip
LnxSlck
@izx le solicita que eche un vistazo a mi pregunta para obtener una actualización ..
karthick87
Quizás, el script /etc/udev/rules.d/usbnotif.sh debería almacenarse en otro lugar para evitar confusiones con los archivos de reglas. Aunque técnicamente puede quedarse allí.
elomage
@ karthick87: gracias, miraré la actualización del teléfono / red en unas horas. La notificación del teléfono no debería ser un problema, pero el retraso de la notificación de la red puede requerir tener un servidor / cliente SMTP adecuado en cada máquina que pueda poner en cola el correo hasta que se entregue. Pero veré qué puedo hacer :)
ish
18

¡Puedes usar Cuttlefish ( https://apps.ubuntu.com/cat/applications/cuttlefish/ )!

Cuttlefish es un programa que puede realizar acciones cuando ocurren eventos. Por ejemplo, puede ejecutar un comando cuando se conecta un USB: ingrese la descripción de la imagen aquí

Cómo trabajar con sepia:

  1. Haga un nuevo reflejo desde la esquina superior izquierda: ingrese la descripción de la imagen aquí
  2. Déle el nombre de su preferencia, habilítelo Activated by stimulusy haga clic en Nonepara seleccionar un estímulo: ingrese la descripción de la imagen aquí
  3. Haga clic a la izquierda Hardwarey a la derecha USB device plugged in. Luego haga clic en Aceptar. ingrese la descripción de la imagen aquí
  4. Haga clic en la pestaña de reacción y haga clic en el signo más en la parte inferior izquierda: ingrese la descripción de la imagen aquí
  5. Dirígete a Aplicaciones-> Iniciar aplicación (modo avanzado). Luego haga clic en Aceptar. ingrese la descripción de la imagen aquí
  6. Ahora, a la derecha, puede ver que puede seleccionar un ejecutable para ejecutar con los parámetros que desee, por lo tanto, debe dejar que Cuttlefish se ejecute en la bandeja del sistema y ejecutará su comando cada vez que se conecte un dispositivo USB: ingrese la descripción de la imagen aquí

Supongo que conoce un comando que puede usar para enviar su correo electrónico. Si no es así, publíquelo como un comentario para incluirlo en mi respuesta.

hytromo
fuente
¿Quieres que instale sepia y lo configure en los 600 sistemas ubuntu? Entonces es una tarea grande y difícil ..
karthick87
77
Después de configurar la sepia en uno de los sistemas, puede clonar fácilmente ~/.cuttlefish. Además, si marca el inicio automático en la configuración de inicio de sesión de sepia (puede encontrarlo en las preferencias), puede configurar el inicio automático en cada máquina clonando ~/.config/autostart/cuttlefish.desktop.
Alex
@ karthick87, lo que dijo Alex. Hasta donde sé, no hay algo que pueda hacer de manera predeterminada. Entonces, de todos modos deberías hacer algo en todos los 600 sistemas ...
hytromo
¿Eso significa que al final te parece lo suficientemente cómodo, después de todo?
hytromo
3

Según esta respuesta , agregue este código a/etc/udev/rules.d/90-local.rules

ACTION=="add", SUBSYSTEM=="block", KERNEL=="sd[a-z]1", ATTRS{vendor}=="SanDisk ", RUN+="/usr/local/bin/usb.sh"

y en el usb.sharchivo, agregue este código

#!/bin/bash
ifconfig | grep ip >>/tmp/usb.log

echo “USB inserted.” | mutt -a /tmp/usb.log -s “attachment” [email protected]

fuente


Ahora voy a intentar automatizarlo, para que pueda agregar esta regla / script en 600 sistemas Ubuntu.

    sudo echo " ACTION=="add", SUBSYSTEM=="block", KERNEL=="sd[a-z]1", ATTRS{vendor}=="SanDisk ", RUN+="/usr/local/bin/usb.sh" ">>/etc/udev/rules.d/90-local.rules

 #then the `usb.sh`

    sudo echo "     #!/bin/bash
        ifconfig | grep ip >>/tmp/usb.log

        echo “USB inserted.” | mutt -a /tmp/usb.log -s “attachment” [email protected] " >>/usr/local/bin/usb.sh

Este script no se prueba y se mejorará el proceso de automatización.
Tan pronto como configuré algunas PC de prueba.

cuchilla19899
fuente
Esto parece ser bueno para mí, por favor, pruébalo y avísame el estado de trabajo. Para que pueda aplicarlo en todos los sistemas ubuntu ..
karthick87
¿Esto detectará dispositivos USB que no sean fabricados por "SanDisk"?
Takkat
44
No, esto solo funcionará para dispositivos fabricados por Sandisk. Además, muttno está instalado de forma predeterminada en el escritorio de Ubuntu y ifconfig | grep ipproporciona una salida nula.
ish
1

Podrá ver cualquier dispositivo usb nuevo que no solo tome el poder del servidor (que normalmente incluye los teléfonos)

Para la parte USB: ¿Cómo puedo escuchar los eventos de 'dispositivo USB insertado' en Linux, en Python?

Enviar un correo electrónico en python: correo electrónico - Python - ¿Cómo enviar un correo electrónico utf-8?

Para ethernet, use netplugd y use las declaraciones arriba o abajo:
Ubuntu Manpage: netplugd - demonio de administración de hotplug de cable de red

Antoine Rodriguez
fuente