Test du client linux pour le NAS MyDitto
MyDitto est un NAS amélioré, auto-configuré autant pour une utilisation locale que distante et dans une optique « foolproof »: donc très orienté grand public. J’ai participé à la présentation de ce produit le 2 décembre dernier et l’intrigue portait pour moi sur quatre axes:
- quel procédé permet d’accéder à son NAS de l’extérieur sans s’occuper de paramétrage du routeur, des règles NAT ou du firewall?
- qu’apporte concrètement cette clef USB fournie avec le NAS?
- Y-a-t-il des possibilités d’intégration d’applications?
- et le fameux support Linux annoncé, qu’en est-il réellement?

Pour la description publi-rédactionnelle de ce produit, les specs et le fonctionnement général je vous laisse aller lire ça chez les blogueurs invétérés, ils le feront mieux que moi. Mais bon, allez hop en vrac, vite-fait: 1 ou 2 baies (donc possibilité de RAID), un co-processeur pour appuyer le processeur ARM dans les transferts de fichiers via le réseau (vitesse de transfert accrue), fonctionnalité DLNA, accès via protocole Samba depuis le réseau local (il doit y avoir à mon avis Avahi-Zeroconf qui tourne aussi), et une application qui vous permet d’y accéder de façon sécurisée, transparente et auto-adaptée niveau réseau(=versatile, mais dans le sens anglais) depuis l’extérieur sur l’internet, ce depuis Win/MacOS/Linux/IOS et bientôt Android. Accès en direct depuis votre machine à votre myDitto chez vous (en P2P), ou bien de façon relayée si pas d’autre possibilité.
On nous a donné lors de la présentation des clefs USB nous permettant d’accéder pendant un certain laps de temps à des MyDitto distants (localisés dans les locaux de Dane-Elec), donc je ne parlerais ici que de la partie client, dans une utilisation distante et sur Linux.
Quel procédé utilise-t-il pour accéder au NAS depuis l’extérieur?
Pas trop de détail sur les technologies et procédés utilisés… « Cela a demandé beaucoup de développements et de brevets ». Néanmoins pour que le MyDitto puisse être accessible depuis l’extérieur et de manière sécurisée, on devine vite que c’est le MyDitto qui en fait initie la connexion, l’autre solution aurait été qu’il utilise l’ouverture de ports et la génération des règles NAT à la volée via la fonctionnalité UPnP des routeurs (mais ils ne en sont pas tous équipés).
Pour pouvoir fonctionner partout et se de passer de règles NAT, il doit ouvirir la connexion de son côté, et pour cela le MyDitto doit logiquement être connecté à un serveur d’intermédiation distant, qui lui déclenche l’ordre.
Côté client il faut que la personne connectée puisse être identifiée comme l’utilisateur autorisé et qu’il puisse accéder au MyDitto sans en connaitre son IP, donc passage aussi par un serveur d’intermédiation. Les échanges sont ensuite réalisés en direct de paire à paire (P2P) si la connexion de votre client (PC/Smartphone) le permet ou bien relayée via les serveurs de Dane-Elec si votre connexion internet est insuffisante ou limitée. Je l’ai testé avec succès depuis un pauvre Hotspot NeufWiFi où les ports sont complétement bridés et le débit y est limité.

Bon OK, une technologie de pointe, des brevets… mais ça ressemble énormément à la façon dont procède Hamachi depuis un bon nombre d’années (et racheté depuis un moment par LogMeIn): l’intermédiation, l’authentification centralisée, la traversée des routeurs et NAT sans aucune configuration, l’accès direct en P2P et même l’éventuel recours au relais! Oui ça se ressemble beaucoup même si les deux ne font pas le même usage applicatif, l’un est un VPN l’autre un NAS.
Néanmoins que les procédés et technologie soit nouveaux ou pas, cette méthode de fonctionnement est assez efficace pour permettre une connectivité quasi universelle à n’importe quel néophyte et/ou réfractaire aux problématiques réseau.
Il faut juste ne pas avoir peur de dépendre entièrement d’une « black-box » chez un tiers (ici Dane-Elec), certains stallmaniens vont en frémir, et avoir conscience que cette fonctionnalité durera le temps que le tiers voudra bien la faire fonctionner: donc une grande partie des fonctions pour le matériel que vous aurez acheté, son éventuelle obsolescence ou inutilité seront décidée non pas par vous mais par le bon vouloir, les préoccupations du moment ou la santé financière du constructeur…. Ce n’est pas du tout orienté contre Dane-Elec, c’est juste le regret de cette tendance où les produits hardware deviennent de plus en plus dépendants dans leur continuité de fonctionnement chez l’utilisateur, après achat, du bon vouloir des constructeurs… et puis il y a des exemple qui refroidissent: la tablette Archos 5 by SFR, les livres numériques achetés et effacés à distance après coup sur les Kindles des clients par Amazon, etc… combien de gens ont connu un constructeur qui les a laissés en plan avec leur matériel par arrêt du service distant dont il dépendait, par un abandon du support ou du développement d’un firmware ultra-buggué? Et bien désormais les constructeurs peuvent aussi potentiellement vous réduire ou couper les fonctionnalités de votre matériel, réviser vos données, etc…
Ce qu’apporte concrètement la clef USB
La clef permet d’identifier l’utilisateur via son hardware/vendor ID inscrit dans la ROM de la clef.
Lorsque vous appareillez votre clef au NAS MyDitto, ce dernier identifie l’ID de la clef comme un nouvel utilisateur, il informe le serveur central (d’authentification) de Dane-Elec que cet ID est associé à ce NAS précis.
Ensuite côté client lorsque vous voulez vous connecter de façon distante à votre NAS, l’application myDitto lit l’ID de votre clef et l’envoie au serveur d’authentification qui repère à quel NAS vous êtes associé, puis fait la médiation. Voilà, la clef (par son ID) n’est qu’un identifiant, il vous faudra bien-sûr saisir votre mot de passe, mais nul besoin de connaître l’IP de votre NAS si vous êtes en IP dynamique, et puis cela permet de gérer assez facilement les espaces utilisateurs de votre disque dur.
C’est plutôt intéressant l’utilisation de l’ID hardware de la clef USB, j’en avais déjà vu des implémentations sur le forum FR d’Ubuntu où selon l’ID d’un matériel USB branché cela permet de déclencher des évènements: du simple évènement comme lancer une tache ou une application, jusqu’à l’autorisation ou bien interdire telle ou telle chose si une clef avec un ID précis n’est pas branché sur la machine. Mais je n’avais pas encore vu d’implémentation à large échelle comme moyen d’identification.
Possibilités d’intégration d’applications et de fonctionnalités
Pas pour l’instant, hélas. Des API ou un SDK verront peut-être le jour pour développer des applications côté client.
Par contre côté serveur, il n’est pas prévu de pouvoir développer et y ajouter des fonctionnalités et services sous forme de modules comme c’est possible sur le Pogoplug ou sur d’autres NAS évolués comme les Synology ou bien ceux qui ont été ouverts à (ou par) la communauté (ex: NSLU2 et autres).
Dommage, car le MyDitto a du potentiel pour ça. Je pense que cela est dû à plusieurs motivations:
- les processeurs ARM sont vraiment excellents et amènent un peu de fraicheur par rapport au vieux monde du x86 et ses lourdeurs antiques, néanmoins s’ils sont redoutables pour certaines tâches, ils ont quelques faiblesses pour d’autres (les calculs en virgules flottantes notamment). Aussi si Dane-Elec laisse la porte ouverte à toutes application sur son MyDitto, il n’en maitrisera plus l’optimisation des performances et des ralentissements pourront se faire au détriment de certaines tâches vitales.
- En informatique la source majeure de problèmes se situe en général entre la chaise et le clavier. Et pour un matériel, si on laisse l’utilisateur la possibilité de pouvoir transformer ses applications logicielles cela augmente de façon exponentiel les possibilités de problèmes, donc l’insatisfaction du client et surtout le coût en terme de support. Rappelons que la cible commerciale ici c’est le grand public (un joli terme pour « noobies ») et pas forcément les geeks hackeurs.
- Justement pour que cela prenne commercialement, il faut que le produit soit simple d’utilisation, avec une bonne couche d’abstraction pour rendre pas mal de fonctionnalités transparentes. Stratégiquement la multitude d’options en induisant une notion (même imaginaire) de complexité d’utilisation pourrait refroidir ou déconcerter beaucoup d’acquéreurs… C’est bien sur la simplicité et souvent sur le « one app, one task » que les appliances créent leur niche.
- Je ne connais pas du tout la politique de Dane-Elec à ce sujet pour m’avancer à leur sujet, mais il existe encore chez pas mal de constructeurs une haine ou une peur viscérale que la lie des utilisateurs puisse utiliser son matériel autrement que ce qu’il a défini du haut de sa tour d’ivoire.
Le client Linux
Rentrons dans le vif du sujet!
Lorsque l’on apparie la clef USB sur le NAS, ce dernier transfère aussi sur la clef l’application MyDitto, avec ses versions Windows, MacOS et Linux. Il s’agit d’une application de type « portable », qui n’a pas besoin d’être installée depuis le système et peut-être lancé depuis la clef.
Lors de la présentation on m’annonce qu’elle a été testée et est certifiée fonctionnelle sur Ubuntu 10.04 seulement… Arf, on va bien voir.
Bon, je me lance dans un essai de l’application depuis Ubuntu 10.10: il y a le fichier myDitto.sh (qui n’est qu’un simple script bash qui exporte les librairies et lance le binaire « myDitto » situé dans le sous dossier « myDitto.app/Contents/LnxOS ». Le double-clic sur ce fichier ne lance rien, puisqu’il n’est pas associé comme exécutable, passage en mode console un « ./myDitto.sh » ou « sh myDitto.sh » n’y font rien: problème de droit, même constat en utilisant « sudo » ou « sudo » su pour l’exécuter en mode root: problème de droits.
Un essai pour lancé directement myDitto.app/Contents/LnxOS/myDitto, rien… enfin si des erreurs.
Donc je rends les fichiers exécutables via un « sudo chmod +x »… ça ne marche toujours pas.
Et là, mais ouais c’est con comme la lune! Il n’y a pas de gestion des droits sur une partition FAT!! Donc pas de notion qu’un fichier soit un exécutable ou pas, donc les fichiers exécutables situés sur la partiton FAT ne sont tout simplement pas exécutables!!!
Un petit coup dans GParted pour voir ce qu’il en ressort: mince une partition FAT16! Ça existe encore ça?? Wow! Rétro-projection instantanée dans le siècle précédent… ça me donne aussitôt envie d’écouter des vieux tubes des années 90, tiens un petit « Fight The Power » de Public Enemy, suivi de « Brother James » de Sonic Youth, ça fait toujours du bien. Fermons la parenthèse musicale et regardons s’il est possible d’utiliser MyDitto sur un bureau Linux.
Je transfère le contenu de la clef USB sur une partition Linux (ext3) de mon laptop, et tente de lancer l’application: elle se lance bien (donc c’est bien une simple question de type de partition), néanmoins l’application refuse de m’identifier: « Your myDitto key was removed ».

Un essai en lançant l’application myDitto pour windows depuis Wine, même résultat: « Your myDitto key was removed ».
Un essai sur une des machines en spare chez moi et qui dispose encore de Windows pour l’instant: tout fonctionne bien, je ne suis pas black-listé. Conclusion: l’application doit vérifier l’ID matériel uniquement du lecteur depuis lequel elle est lancée et l’utiliser comme « identifiant d’authentification », ce qui veut dire impossible de lancer l’application depuis autre chose que la clef USB… et dans l’état c’est donc inutilisable sur Linux. C’est ballot!
Mais il y-a-t-il un espoir de l’utiliser sur Linux, une solution?
Je vous rassure: oui! Mais il va falloir procéder de manière un peu barbare et faire du ménage.
D’abord copiez quelque part tout le contenu de la clef associée à votre MyDitto.
Puis rendez-vous dans GParted pour aller gérer les partitions de votre clef USB. On va réduire la partition FAT pour y ajouter une partition de type EXT2 à la suite, en seconde position (et surtout pas en première position car au cas où vous seriez amené à utiliser cette clef aussi sur un système windows, ce dernier ne sait détecter que la première partition présente sur une clef USB et donc s’il ne détecte que la EXT2 autant dire qu’il ne verra rien et même la FAT derrière ne lui sera pas visible).
Impossible de réduire la FAT16 présente sur la clef car elle est à un format invalide (nombre de secteurs invalide par rapport à la taille du volume). On va tout simplement dégager cette partition de m…. purement et simplement, en créer une nouvelle en FAT32 à la place mais qui ne fait pas tout la taille disponible de la clef, et créer derrière une partition au format EXT2 (avec assez d’espace, donc au moins 100Mo).
Voici ce que cela donne:

Il ne reste plus qu’à copier l’ancien contenu de la clef (dont vous avez fait une sauvegarde préalable) sur la partition EXT2.
Un petit clic-droit sur le fichier myDitto.sh > propriétés > Permissions > et cocher « Autorisez l’exécution du fichier comme un programme » (ou passer par un « sudo chmod +x myDitto.sh » pour les amoureux de la console, afin de pouvoir ensuite lancer l’application depuis la clef USB d’un simple double-clic.
Il est désormais possible de lancer l’application qui vous authentifie correctement et vous permet d’accèder à vos fichier distants. Enfin… ![]()


Évidemment en raison d’un développement assez statique de l’application, on se retrouve limité à une simple interface de transfert de fichier depuis le panel.
Un essai de drag’n'drop hors de l’appli vers le bureau:

Un aperçu sur les erreurs dans le terminal:

Quelques critiques à propos du client Linux
Même si j’apprécie grandement l’effort de consacrer du temps à une version Linux, je pense franchement que le développement pour Linux a été fait dans une mauvaise approche en voulant calquer telle quelle la logique du client pour Windows. Je vais étayer mon avis:
1. Pour rappel, Linux utilise des Environnements de Bureau (Gnome, KDE, etc…) et donc que l’utilisateur se choisisse un thème au design absolument étonnant ou bien horrible (chacun ses gouts), ce qui prime c’est homogénéité et l’harmonie: toutes les applications s’intègrent visuellement et fonctionnellement de la même façon à l’environnement de bureau. Autant pour les utilisateurs Windows l’interface de MyDitto (à la Spotify) pourra sembler innovante et visuellement attrayante, pour les utilisateurs Linux, elle fera tâche et sera limitante: donc une application frustrante!
2. Intégrer des fonctionnalités de lecture de média (audio/vidéo) en pseudo-streaming, de génération des vignettes à la volée pour les images, etc… non mais tout cela existe déjà en standard sur Linux. Donc un effort de développement pour rien. En plus pour faire cela vous intégrez quelques outils qui dépendent de la version dans laquelle il ont été compilés, sachant l’évolution rapide du noyau et des outils GNU/Linux votre application sera toujours obsolète et jamais pleinement fonctionnelle. Au mieux elle ne sera à jour et complétement utilisable que pendant quelques semaines après que vous en sortiez une nouvelle version, au-delà elle ne se résumera seulement qu’à une simple interface de transfert de fichiers dont je ne vois même pas l’intérêt (open/copy/rename/cut/delete), même avec Filezilla on fait plus de choses. -> c’est complétement gâcher votre effort (donc vos ressources, votre temps, votre budget) de développement!
3. Il y a un truc génial sur Linux qui s’appelle FUSE (File System in Userspace) et des choses merveilleuses pour l’abstraction des volumes comme Gvfs… Allez voir ce que font comme client Linux Dropbox, SpiderOak ou encore Ubuntu One pour leur stockage dans le Cloud: un simple client pour la connexion/authentification et gérer les transfert intelligemment en backend (le coeur applicatif et la valeur ajoutée de votre appli), tout le reste c’est FUSE, Gvfs et leurs copains qui s’en chargent. C’est plus souple, plus léger, plus élégant. Mes dossiers et fichiers distants sont complétement intégrés à mon bureau et mon système de fichier. Ainsi toutes mes applications peuvent utiliser naturellement les fichiers et dossiers en remote: mes notes Tomeboy, mes bookmarks Firefox s’y synchronisent, mon calendrier Thunderbird, mes backup automatiques (et avec versionning si je veux,monsieur) et même si je veux je peux utiliser une couche d’encryption à la volée avec EncFS ou Truecrypt… Et évidemment Totem et VLC n’ont pas besoin d’attendre que le fichier vidéo ou audio soit complétement transféré pour le lire, c’est naturel pour eux.
En plus udev permet d’interroger n’importe quel matériel, donc toutes clefs USB présentes et d’en obtenir l’ID matériel. Donc il est aisément possible de s’affranchir du fait de devoir lancer l’application uniquement depuis LA clef USB, du moment que la clef « appareillée » au MyDitto est simplement branchée sur l’un des ports USB de la machine cliente ça suffit pour l’identifier.
Donc autant utiliser ce qui existe déjà, qui se fait de bien, finalement coute beaucoup moins cher à développer et en plus ne vous rend pas dépendant de l’obsolescence des versions des autres couches logicielles.
Voilà ceci un plaidoyer, messieurs et dames de Dane-Elec, pour revoir votre approche, sinon vous allez directement dans le mur pour conquérir les utilisateurs Linux et vous allez en conclure qu’il n’y a pas de possibilité de marché pour un service ou une application avec technologie propriétaire sur Linux, que ce c’est un cout de développement trop important pour un retour commercial qui n’en vaut pas la peine. Je pense qu’il est encore temps de changer de cap…
Juste comme ça au passage, l’appli cliente de MyDitto est développée en QT… c’est le framework de prédilection de Meego (dans les véhicules, sur tablette, smartphone, netbook, télévision, etc…)
Conclusion personnelle, recommandation
Mon intérêt primaire pour ce matériel (dans une optique purement personnelle) était de seconder mon fidèle Dockstar (bidouillé à ma sauce). Mais aussi pour en placer un second, cette fois-ci un chez un ami qui dispose aussi de la fibre optique, ce qui me permettrait ainsi avec un backup externalisé de palier à ce qu’on appelle « le risque feu » en informatique, et ce sans devoir requérir à des services privés de stockage « dans le cloud ». Les aspects sécurité, gestion et identification utilisateurs, accès distant « tout-terrain » et aucune configuration réseau sont très intéressants. En plus cela revient moins cher qu’une solution Cloud « à-la Dropbox » pour du stockage/backup redondant de masse (jusqu’à 2To).
Ben en l’état, dans l’optique d’une utilisation sur Linux, et en bon geek, le client est trop pauvre et limitant pour moi (je sais, je suis exigeant et pas forcément l’utilisateur lamdba ciblé, par exemple: madame Michu sous Windows et/ou iPhone et qui l’achètera chez Auchan). Finalement pour l’instant mon « bricolage maison » sur le Dockstar est beaucoup plus utilisable pour moi, car complétement sécurisé, pas besoin d’une application cliente et d’une clef USB, donc plus portable, la méthode d’authentification c’est mon compte Facebook (je me suis concocté un truc perso bien tordu à base d’une utilisation de fail2ban inversée, d’un bot xmpp comme trigger et facteur d’intermédiation ainsi qu’une appli Facebook en php), ça passe partout et j’y ai accès en natif dans mon environnement de bureau et mon filesystem. Le fonctionnement du MyDitto va surement me donner des idées pour améliorer encore mon système.
Si vous êtes un utilisateur Linux lambda, ben déjà le client ne marche pas tel quel out-of-the-box depuis la clef USB, à moins d’y faire les modifications de partitions que j’ai indiquées plus haut.
Par contre si vous êtes dans la vraie cible de clientèle de masse (Windows et/ou iPhone, donc), je pense que c’est une solution très intéressante.
about 2 years ago
Bonjour,
Après reformatage de la clé et l’autorisation (sudo chmod +x myDitto.sh), j’ai toujours le même message Your myDitto key was removed. Alors que manque-t-il???
Cordialement
about 2 years ago
Deux possibilités, soit tu n’as pas formaté correctement en EXT2, EXT3 ou EXT4 (mais EXT2 est mieux pour une clef USB), soit tu utilises une clef USB chinoise générique qui ne communique pas correctement sont ID matériel (cela arrive souvent avec le matériel générique).
Après le MyDitto je l’ai testé il y a 6 mois de cela, juste en test et je l’ai zappé ensuite: c’est pas pour moi mais pour un autre type de public…
about 2 years ago
Bonjour,
J’ai reformater la clé d’origine en Fat16, recopier des fichiers originaux suivant le procédure avec le bouton copie, puis dans le terminal:
# sudo umount /dev/sdc1
# sudo mkdir /media/CA23-AC62
# sudo mount -t vfat -o uid=1000 -o umask=000 /dev/sdc1 /media/CA23-AC62
J’ai maintenant les droits, mais même avec sudo j’ai toujours le même message.
Cordialement