Comment recevoir une notification par e-mail lorsqu'un périphérique de stockage USB est inséré?

27

Nous utilisons plus de 600 systèmes Ubuntu dans notre entreprise. C'est un centre de données, nous avons donc certaines politiques. Nous avons désactivé l'utilisation des périphériques de stockage dans tous les systèmes Ubuntu. Cependant, nous aimerions configurer des alertes par e-mail. Si quelqu'un insère des périphériques de stockage, nous devrions recevoir une alerte par e-mail avec le sujet ci-dessous,

Alerte email:

STORAGE DEVICE FOUND on IP: 172.29.35.18

Remarque:

  • Où, comme pour le système Windows, nous avons certaines politiques appliquées dans notre DC. Il n'y a donc aucun problème avec le système Windows.
  • Nous devons également recevoir des alertes pour le système Ubuntu. Tout moyen d'accomplir la tâche ci-dessus serait formidable.

Mise à jour:

  • Peu de choses que je voudrais clarifier, si l'utilisateur déconnecte le câble réseau et si l'utilisateur utilise USB pour le transfert de données? Je sais que je n'aurai pas d'intimations mais plus tard, s'ils se connectent au réseau, est-il possible d'obtenir ces notifications en attente ??
  • Certains utilisent USB pour charger leurs téléphones mobiles, est-il possible d'obtenir des notifications par e-mail pour cela aussi ??
karthick87
la source
Je pense que vous devriez aller voir ce post sur superutilisateur: superuser.com/questions/305723/… Ben
Ben

Réponses:

25

Pour ce faire, vous devez utiliser une règle udev qui s'appliquera à tous les périphériques de stockage USB de n'importe quel fabricant. Pour la partie e-mail, notez qu'Ubuntu Desktop n'inclut aucun client de messagerie en ligne de commande, donc à moins que vous ne souhaitiez en installer un, le script de notification devrait communiquer directement via des commandes SMTP brutes à votre serveur de messagerie local.

ish
la source
C'est génial +1 de ma part: D
karthick87
Excellente réponse, et cela a donné tout le besoin de sortie, à la fois par e-mail et IP
LnxSlck
@izx vous demande de jeter un œil à ma question pour une mise à jour ..
karthick87
Le script /etc/udev/rules.d/usbnotif.sh devrait peut-être être stocké ailleurs pour éviter toute confusion avec les fichiers de règles. Bien que techniquement, il puisse y rester.
elomage
@ karthick87: merci, je vais regarder la mise à jour du téléphone / réseau dans quelques heures. La notification téléphonique ne devrait pas être un problème, mais le délai de notification réseau peut nécessiter la présence d'un serveur / client SMTP approprié sur chaque machine pouvant mettre en file d'attente les messages jusqu'à leur livraison. Mais je vais voir ce que je peux faire :)
ish
18

Vous pouvez utiliser la seiche ( https://apps.ubuntu.com/cat/applications/cuttlefish/ )!

La seiche est un programme qui peut effectuer des actions lorsque des événements se produisent. Par exemple, vous pouvez exécuter une commande lorsqu'un périphérique USB est branché: entrez la description de l'image ici

Comment travailler avec la seiche:

  1. Faites un nouveau réflexe dans le coin supérieur gauche: entrez la description de l'image ici
  2. Donnez-lui le nom de votre préférence, activez Activated by stimulus-le et cliquez dessus Nonepour sélectionner un stimulus: entrez la description de l'image ici
  3. Cliquez à gauche Hardwareet à droite USB device plugged in. Cliquez ensuite sur OK. entrez la description de l'image ici
  4. Cliquez sur l'onglet réaction et cliquez sur le signe plus en bas à gauche: entrez la description de l'image ici
  5. Dirigez-vous vers Applications-> Démarrer l'application (mode avancé). Cliquez ensuite sur OK. entrez la description de l'image ici
  6. Maintenant, à droite, vous pouvez voir que vous pouvez sélectionner un exécutable à exécuter avec tous les paramètres que vous souhaitez, vous devez donc laisser Cuttlefish s'exécuter sur la barre d'état système et il exécutera votre commande chaque fois qu'un périphérique USB est branché: entrez la description de l'image ici

Je suppose que vous connaissez une commande que vous pouvez utiliser pour envoyer votre e-mail. Sinon, veuillez le poster en tant que commentaire afin de l'inclure dans ma réponse.

hytromo
la source
Voulez-vous que j'installe la seiche et que je la configure dans les 600 systèmes ubuntu? Alors c'est une tâche grande et difficile ..
karthick87
7
Après avoir configuré la seiche sur l'un des systèmes, vous pouvez facilement cloner ~/.cuttlefish. De plus, si vous cochez le démarrage automatique au paramètre de connexion de seiche (vous pouvez le trouver dans les préférences), vous pouvez configurer le démarrage automatique sur chaque machine en clonant ~/.config/autostart/cuttlefish.desktop.
Alex
@ karthick87, ce qu'a dit Alex. Pour autant que je sache, il n'y a rien que vous puissiez faire par défaut. Donc, vous devriez de toute façon faire quelque chose sur tous les 600 systèmes ...
hytromo
Cela signifie-t-il qu'en fin de compte vous trouvez cette façon assez confortable?
hytromo
3

Selon cette réponse , ajoutez ce code à/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"

et dans le usb.shfichier, ajoutez ce code

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

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

la source


Maintenant, je vais essayer de l'automatiser, vous pouvez donc ajouter cette règle / script dans 600 systèmes 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

Ce script n'est pas testé et le processus d'automatisation sera amélioré.
Dès que j'ai installé des PC de test.

blade19899
la source
Cela semble être un bon +1 de ma part, veuillez le tester et me faire savoir le statut de travail. Pour que je puisse l'appliquer dans tous les systèmes Ubuntu ..
karthick87
Cela détectera-t-il des périphériques USB autres que ceux fabriqués par "SanDisk"?
Takkat
4
Non, cela ne fonctionnera que pour les appareils fabriqués par Sandisk. De plus, muttn'est pas installé par défaut sur Ubuntu Desktop et ifconfig | grep ipdonne une sortie nulle.
ish
1

Vous pourrez voir n'importe quel nouvel appareil USB qui n'utilise pas seulement la puissance du serveur (qui inclut normalement les téléphones)

Pour la partie USB: Comment puis-je écouter les événements «périphérique USB inséré» sous Linux, en Python?

Envoi d'un e-mail en python: email - Python - Comment envoyer un e-mail utf-8?

Pour Ethernet, utilisez netplugd et utilisez les instructions up ou down:
Ubuntu Manpage: netplugd - démon de gestion de hotplug de câble réseau

Antoine Rodriguez
la source