Rbatimus Posté(e) le 16 novembre 2022 Posté(e) le 16 novembre 2022 (modifié) Bonjour à tous je cherche à créer un script afin d'automatiser le montage de mon disque USB de backup local. Ceci afin qu'il ne soit pas monté en permanence sur le NAS mais uniquement au moment de la sauvegarde et de m'éviter de fastidieuses connexion et reconnexion manuelle. Première question cela fait-il du sens de le faire (je laisse les experts en débattre)? De prime à bord, je tiens à préciser que ce disque de backup local n'est pas mon unique point de backup de mon NAS. Je vois donc déjà les "experts" me dire alors à quoi bon, surtout si les accès du NAS on été sécurisé, par exemple en suivant l'excellent tuto de fenrir sur le sujet... De mon point de vue, je vois cela comme une précaution supplémentaire ou une bonne pratique à mettre en place. En effet de cette manière je pourrais possiblement me rendre compte de l'attaque avant que mon disque usb de backup soit monté automatiquement et donc le déconnecter physiquement afin qu'il ne soit pas affecté par l'attaque. Je dis également moins sensibles car il y aura toujours moyen qu'on puisse y accéder. Mais cela complique la tâche de l'attaquant. Passons à la mise en pratique : Pour cela je compte utiliser la fonction d'éjection après la sauvegarde de hyper backup. Il ne me reste donc plus qu'à créer un script qui monte automatiquement mon disque dans le planificateur des tâches pour qu'il le monte 5 minutes avant la tâche de sauvegarde par exemple. Je me suis donc connecté en SSH via Putty à mon NAS (DSM7.1) avec 2 disques USB connectés dont l'un éjecté mais encore connecté. Ceci afin de localiser les répertoires des montages. Les répertoires d'intérêts localisés : /volume1 (c'est le volume de donnée du NAS ou sont sauver les dossiers partager par exemple) /volumeUSB1 (c'est le répertoire principal du disque USB connecté mais éjecté) /volumeUSB1/@eaDir /volumeUSB2 (c'est le répertoire principal du disque USB connecté et monter) /volumeUSB2/@eaDir /volumeUSB2/usbshare (répertoire de montage du disque USB) j'ai ensuite utilisé la commande lsusb pour détecter le matériel connecter en USB sur mon NAS 1d6b:0002:0404 09 2.00 480MBit/s 0mA 1IF (Linux 4.4.180+ xhci-hcd xHCI Host Controller 0000:00:15.0) hub |__1-1 xxxx:xxxx:xxxx xx 2.10 480MBit/s 100mA 1IF (Seagate Backup+ Hub xxxxxxxxx) hub |__1-2 xxxx:xxxx:xxxx xxx 1.10 12MBit/s 20mA 1IF (EATON Eaton 5SC xxxxxxxxx) |__1-4 xxxx:xxxx:xxxx xx 2.00 480MBit/s 200mA 1IF (Synology Diskstation xxxxxxxxxx) |__usb2 xxxx:xxxx:xxxx xx 3.00 5000MBit/s 0mA 1IF (Linux 4.4.180+ xhci-hcd xHCI Host Controller 0000:00:15.0) hub |__2-1 xxxx:xxxx:xxxx xx 3.00 5000MBit/s 0mA 1IF (Seagate Backup+ Hub xxxxxxxxxxx) hub |__2-1.1 xxxx:xxxx:xxxx xx 3.10 5000MBit/s 0mA 1IF (Seagate Backup+ Hub xxxxxxxxxxxx) |__2-1.2 xxxx:xxxx:xxxx xx 3.00 5000MBit/s 896mA 1IF (Intenso External USB 3.0 xxxxxxxxxxx) On voit ici que mes deux disques usb sont visibles sur les deux dernière lignes 2-1.1 (Disque monté), 2-1.2 (disque éjecté) On les retrouve également sous /sys/bus/usb/devices: 1-0:1.0 1-1 1-1:1.0 1-2 1-2:1.0 1-4 1-4:1.0 2-0:1.0 2-1 2-1.1 2-1:1.0 2-1.1:1.0 2-1.2 2-1.2:1.0 usb1 usb2 La commande sudo fdisk -l donnera plus de détails concernant les périphériques USB. Je ne vais pas afficher ici l'entier du retour mais uniquement les devices qui m’intéresse : USB 2-1.1: Disk /dev/usb1: 7.3 TiB, 8001563221504 bytes, 15628053167 sectors Disk model: Backup+ Hub BK Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disklabel type: gpt Disk identifier: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxx Device Start End Sectors Size Type /dev/usb1p1 256 15628048064 15628047809 7.3T Linux filesystem USB 2-1.2: Disk /dev/usb3: 3.7 TiB, 4000787030016 bytes, 976754646 sectors Disk model: External USB 3.0 Units: sectors of 1 * 4096 = 4096 bytes Sector size (logical/physical): 4096 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disklabel type: gpt Disk identifier: xxxxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx Device Start End Sectors Size Type /dev/usb3p1 32 976751999 976751968 3.7T Linux filesystem Ces identifiant sont également visibles sous /dev Avec ces différentes commandes on a donc bien pu vérifier que mon disque éjecté mais connecté physiquement au NAS est bien visible dans le system d'exploitation bien que son contenu ne soit pas accessible. Pour le rendre accessible, il va falloir le monter dans /volumeUSB1 de la même manière que son homologue /volumeUSB2 Je vais donc créer un dossier usbshare dans volumeUSB1 avec la commande mkdir. sudo mkdir usbshare On peut aussi le supprimer avec la commande rmdir. sudo rmdir usbshare Puis le monter avec mount. sudo mount /dev/usb3p1 /volumeUSB1/usbshare Ou le démonter avec la commande umount. sudo umount usbshare Après cette commande le contenu de mon disque précédemment éjecté et disponible sous /volumeUSB1/usbshare le disque est donc monté... En revanche le disque n'est pas détecté comme monté dans DSM... J’ai essayé également de créer un dossier partager depuis DSM et de l'utiliser comme destination de montage pour mon disque USB et cela fonctionne (je peux voir le contenu du disque depuis le web GUI de DSM)... mais impossible de le sélectionner comme destination dans hyperbackup malheureusement. J’imagine donc qu'il faudra modifier un fichier quelque part afin de déclarer ce disque comme monter pour DSM. Mais je n'ai pas encore trouvé la solution. Du reste si quelque à cette information je la prends volontiers avec tous mes remerciements. P.S: j'ai également esssayer la commande: echo "2-1.2" > /sys/bus/usb/drivers/usb/bind -ash: echo: write error: No such device bien que 2-1.2 soit bien visible sous /sys/bus/usb/drivers/usb ... Modifié le 16 novembre 2022 par Rbatimus 0 Citer
Rbatimus Posté(e) le 16 novembre 2022 Auteur Posté(e) le 16 novembre 2022 (modifié) Ok problème résolu: pour monter les disques depuis ssh ils doivent être démonter en ssh aussi avant, cela même si ils on été éjecté proprement depuis DSM. sinon le montage ne fonctionne pas toujours... Ce qui implique d'avoir deux Scripts: l'un qui monte les diques: #!/bin/bash echo "2-1" > /sys/bus/usb/drivers/usb/bind et un autre qui les démontes: #!/bin/bash echo "2-1" > /sys/bus/usb/drivers/usb/unbind Je programme l' execution du script de démontage de mes disques 5 minutes avant l'execution du script de montage automatique. Le montage s'éxecute également 5 minutes avant leur utilisation par Hyper backup. Hyper backup se charge de les éjecter à la fin de la tâche de backup... ce qui fait que les disques sont monté uniquement durant leur temps d'utilisation +5 minutes... c'est pas très propre mais ça fait le job. Si quelqu'un à une meilleur idée je suis prenneur ;). Modifié le 16 novembre 2022 par Rbatimus 0 Citer
telenaze Posté(e) le 16 décembre 2022 Posté(e) le 16 décembre 2022 Salut @Rbatimus, je cherche à faire exactement comme toi afin de sécurisé les sauvegardes. Je trouve bien dommage que cette fonction ne soit intégré directement dans les menus avec programmation, alors que cela me semble essentiel avec les ransomwares qui pullules actuellement. J'aimerai intégrer ces scripts dans le planificateur de taches, et comme je suis vraiment pas doué en script, peux tu me dire je que dois écrire dans le champ "script défini par l'utilisateur". Merci d'avance, 0 Citer
telenaze Posté(e) le 16 décembre 2022 Posté(e) le 16 décembre 2022 (modifié) Je viens de faire plusieurs tests et les résultats sont mitigés. Pour l'usb de la face avant (usb2-1) cela fonctionne , mais pour l'usb à l'arrière (usb1-4) nada. Voici les infos usb que j'ai en SSH. |__usb1 1d6b:0002:0404 09 2.00 480MBit/s 0mA 1IF (Linux 4.4.180+ xhci-hcd xHCI Host Controller 0000:00:15.0) hub |__1-4 f400:f400:0100 00 2.00 480MBit/s 200mA 1IF (Synology DiskStation 7F0004189F13F212) |__usb2 1d6b:0003:0404 09 3.00 5000MBit/s 0mA 1IF (Linux 4.4.180+ xhci-hcd xHCI Host Controller 0000:00:15.0) hub |__2-1 174c:55aa:0100 00 3.00 5000MBit/s 0mA 1IF (asmedia 1153 1234567897B5) |__2-2 174c:1153:0100 00 3.00 5000MBit/s 0mA 1IF (Ugreen Ugreen Storage Device 26A1EE835F6F) et voici le script pour l'usb arrière, démontage: #!/bin/bash echo "1-4" > /sys/bus/usb/drivers/usb/unbind montage: #!/bin/bash echo "1-4" > /sys/bus/usb/drivers/usb/bind Ton aide serait la bienvenue,🤕 Modifié le 16 décembre 2022 par telenaze 0 Citer
telenaze Posté(e) le 16 décembre 2022 Posté(e) le 16 décembre 2022 En fin de compte j'ai réussi, voici donc les scripts pour l'usb arrière, Démontage: #!/bin/bash echo "1-2" > /sys/bus/usb/drivers/usb/unbind Montage: #!/bin/bash echo "1-2" > /sys/bus/usb/drivers/usb/bind Merci à toi pour ce post sans qui je n'aurais surement pas réussi à réaliser des sauvegardes protégées contre les spamwares. 😉 0 Citer
telenaze Posté(e) le 16 décembre 2022 Posté(e) le 16 décembre 2022 (modifié) Après avoir programmé tout cela , je me demandais s'il n'était pas possible d'avoir un script qui fasse le démontage suivi du montage après un délais de 30secondes par exemple. nous aurions ainsi qu’un seul script avant le lancement d'hyper backup. A suivre... Modifié le 16 décembre 2022 par telenaze 0 Citer
telenaze Posté(e) le 16 décembre 2022 Posté(e) le 16 décembre 2022 Après quelques recherches, j'ai trouvé une solution qui permet d'avoir un seul script pour démonter et remonter le disque: #!/bin/bash echo "1-2" > /sys/bus/usb/drivers/usb/unbind sleep 20 echo "1-2" > /sys/bus/usb/drivers/usb/bind sleep 20 : l'unité prise en compte est la seconde. Si nous voulons passer en minute il faut ajouter un "m" à la fin de l'unité de "sleep". De même pour les heures ("h") ou encore pour les jours ("d"). ex: sleep 10m pour 10minutes 😉 0 Citer
telenaze Posté(e) le 17 décembre 2022 Posté(e) le 17 décembre 2022 Je viens d'envoyer un message à synology pour leur proposer d’intégrer dans le menu d'hyper backup la fonction: Monter le disque externe avant la sauvegarde. On verra bien ! 0 Citer
telenaze Posté(e) le 19 décembre 2022 Posté(e) le 19 décembre 2022 (modifié) Synology vient de me répondre, Reste plus qu'a attendre et croiser les doigts.😉 Citation Bonjour, Merci d'avoir pris le temps de nous transmettre vos retours. Nous attachons une grande importance à ces retours et aux suggestions de nos utilisateurs, qui nous permettent d'améliorer constamment nos produits. Nous prenons note de votre suggestion et allons la transmettre à nos équipes de développement afin qu'elles en étudient la faisabilité. Pour recevoir les actualités des produits Synology, nous vous invitons à créer un compte Synology et à vous inscrire à notre newsletter en suivant le lien ci-dessous : Cordialement, L'équipe Synology Modifié le 19 décembre 2022 par telenaze 0 Citer
Rbatimus Posté(e) le 4 janvier 2023 Auteur Posté(e) le 4 janvier 2023 (modifié) Salut @telenaze, Navré pour le délais de réponse, cela faisait un moment que je n'était pas repassé par le forum avec les fêtes. Je vois que dans l'intervalle tu as bien pu progresser sur ton script, bravo & merci pour tes retours qui seront utiles à d'autres! En effet, c'est bien vu de l'avoir signalé à l'équipe de dev Synology. Modifié le 4 janvier 2023 par Rbatimus 0 Citer
Rbatimus Posté(e) le 4 janvier 2023 Auteur Posté(e) le 4 janvier 2023 Le 16/12/2022 à 13:55, telenaze a dit : En fin de compte j'ai réussi, voici donc les scripts pour l'usb arrière, Démontage: #!/bin/bash echo "1-2" > /sys/bus/usb/drivers/usb/unbind Montage: #!/bin/bash echo "1-2" > /sys/bus/usb/drivers/usb/bind Merci à toi pour ce post sans qui je n'aurais surement pas réussi à réaliser des sauvegardes protégées contre les spamwares. 😉 @telenaze, Je ne dirais pas que ta sauvegarde est maintenant protégée contre les ransomware. Ce serait faux de le dire car un attaquant qui se procurerais tes accès root du NAS serait capabale de remonter et d'infecter ta sauvgarde local. mais ce genre d'attaques à large échelle sont automatisés et ce qui sort d'un configuration généraliste sera plus difficilement attaquable... donc tant que ton disque n'est pas monté il sera théoriquement mieux protégé... 0 Citer
Rbatimus Posté(e) le 21 février 2023 Auteur Posté(e) le 21 février 2023 Petit addendum qui pourra s'avérer utile: la commande echo "1-2" > /sys/bus/usb/drivers/usb/unbind équivaut à retirer le câble USB du disque dure du NAS... ce qui nous vaut un joli message du system "le dique xxx n'a pas été éjecté correctement". Si on veut faire les choses proprement il faut alors démonter la partition système du disque avant de l'éjecter. Pour se faire il faut identifier le nom de la partition avec la commande: df -h par exemple: /dev/usb1p1 ce qui nous donne le scripte suivant pour éjecter proprement le disque: umount /dev/usb1p1 #démontage de la partition du disque sleep 10 #une pause de 10 secondes laisse le temps au système de finir le démontage de la partition echo "1-2" > /sys/bus/usb/drivers/usb/unbind #éjection du disque Après execution de ce script le message "le dique xxx n'a pas été éjecté correctement", n'apparaitra plus ce qui soulagera notre file de notification. 0 Citer
telenaze Posté(e) le 21 février 2023 Posté(e) le 21 février 2023 Je viens d'essayer et j'ai toujours le message d'erreur 🤔 0 Citer
Rbatimus Posté(e) le 22 février 2023 Auteur Posté(e) le 22 février 2023 (modifié) @telenaze chez moi cela fonctionne parfaitement en tout cas. Es-tu certain d'avoir démonter la bonne partition? qu'es-ce que la commande df -h te retourne? Sinon tu peux essayer peut-être d'augmenter le temps entre le démontage de la partition et l'éjection du disque... Modifié le 22 février 2023 par Rbatimus 0 Citer
telenaze Posté(e) le 22 février 2023 Posté(e) le 22 février 2023 Salut, Je viens de refaire un test et j'ai le message d'erreur. voici le résultat de df -h /dev/usb1p1 7.3T 5.2T 2.1T 72% /volumeUSB2/usbshare et voici le script umount /dev/usb1p1 #démontage de la partition du disque sleep 20 #une pause de 20 secondes laisse le temps au système de finir le démontage de la partition echo "1-2" > /sys/bus/usb/drivers/usb/unbind #éjection du disque 0 Citer
Rbatimus Posté(e) le 23 février 2023 Auteur Posté(e) le 23 février 2023 Oui ton script semble correct... Voici le mien: #!/bin/bash umount /dev/usb1p1 sleep 10 echo "2-1.3" > /sys/bus/usb/drivers/usb/unbind je vois que tu as fais un copier-coller depuis le forum. Tu peux encore essayer d'effacer ton script et de le taper manuellement (Sans les commentaires) pour écarter l'ajout d'un caractère spécial dans le script... 0 Citer
telenaze Posté(e) le 23 février 2023 Posté(e) le 23 février 2023 Rien à faire, j'ai toujours le message d'erreur. Cela ne me gêne pas trop pour l'instant puisque hyperbackup démonte lui même le disque à la fin de la sauvegarde. 0 Citer
Triphenix Posté(e) le 16 mars 2023 Posté(e) le 16 mars 2023 Bonjour à tous, Tout d'abords merci beaucoup pour vos questions / réponses. Je suis un gros débutant et il y a énormément de topics et d'infos qui sont incroyable d’utilité et de pédagogie ici. j'ai eu exactement comme vous la problématique de monté/démonté un hdd externe de manière automatisé J'ai également eu le même problème que telenaze concernant le message d'erreur malgré le "umount /dev/usb1p1" dans les log de la tache j'ai trouver le pourquoi du comment : umount: /volumeUSB1/usbshare: target is busy. Du coup j'ai simplement rajouter un "-l" à ma commande umount, sur les conseil d'ici : https://linuxhint.com/umount-target-busy/ (dsl les modos si j'ai pas le droit) ce qui me donne chez moi : #!/bin/bash umount -l /dev/usb1p1 sleep 10 echo "1-1" > /sys/bus/usb/drivers/usb/unbind et tout marche niquel pour le démontage. en espérant avoir apporter ma pierre, Très belle journée à vous =) 2 Citer
telenaze Posté(e) le 16 mars 2023 Posté(e) le 16 mars 2023 Merci @Triphenix, effectivement cela fonctionne parfaitement. L'union fait la force 💪😉 1 Citer
Rbatimus Posté(e) le 29 mars 2023 Auteur Posté(e) le 29 mars 2023 Bravo les gars content que vous ayez une solution qui fonctionne 😉 0 Citer
chov Posté(e) le 6 novembre 2023 Posté(e) le 6 novembre 2023 Merci à vour tous pour ce beau boulot.. Cela fait déjà 2 ou 3 ans que je me re-penche occasionnellement sur ce problème qui ne se manifestait uniquement après une mise à jour DSM ou u redémarrage du NAS. Et je comprends pourquoi maintenant: Lorsque le démontage était effectué par Hyperbackup, il était fait proprement. (démontage avant eject) Bonne journée à tous. 0 Citer
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.