Backup chiffré avec duplicity sur HubiC

EDIT 24/02/2015 : ‘Il n’est plus nécessaire d’utiliser cloudfiles comme backend pour duplicity. À la place, il faut utiliser un backend spécial hubic intégré à duplicity récemment » voir le commentaire de blankoworld

EDIT 02/2015 : suppression du « DeprecationWarning » dans le log.

EDIT 17/02/2014 : suite à des changements sur Hubic.com, Gu1 à mis à jour python-cloudfiles-hubic. J’ai donc mis à jour mon script en conséquence

Hubic GUI avec duplicityMon ADSL est depuis peut chez OVH. De ce fait je bénéficie d’un compte hubiC avec un espace de stockage d’1To. Quelle aubaine pour des sauvegardes ! Mais bon donner mes mails, mes sites, mes documents administratifs à un tiers… bof bof. Il faudrait un minimum de chiffrage !

Et bien comme disait les autres nuls : « Hassan Cehef c’est possible » avec duplicity et python-cloudfiles-hubic !

python-cloudfiles-hubic est nécessaire car duplicity n’intègre pas nativement le service cloud « HubiC » pour une sombre histoire de protocole d’authentification non standard de la part d’OVH (détail par l’auteur)

Installation

On commence par le plus simple (duplicity) :

Maintenant python-cloudfiles-hubic :

Utilisation

Dans vos paramètre sur hubic.com dans votre menu « Vos application » il va falloir ajouter une application :

  • Nom : cequevousvoulez
  • Domaine de redirection : http://localhost/

Quand l’application est créer récupérer le « client id » ainsi que le « client secret » dans l’interface

screenshot.62

Quelques petits tests pour la prise en main :

Rendez-vous ensuite dans votre interface hubiC. Et là normalement il y a plein de fichier duplicity-BLABLA-blabla.bla ! On supprime tout ! (c’était juste pour les tests)

Il ne semble pas possible d’écrire dans un sous répertoire. Mais, comme je l’ai signalé dans mon commentaire, il semble possible d’écrire dans un autre « container » sur hubiC (autre que default). Il ne sera visible qu’après modification de l’URL. Exemple si vous avez écrit dans le conteneur backup rendez vous sur l’URL : https://hubic.com/home/browser/#backup

Le script

Voici mon script :

A noter que mes bases de données sont dumpées à plat de façon indépendante du script de backup distant (par mysql_dump.sh)

Exemple de fichier filelist :

Attention : les fichiers et répertoires à exclure doivent apparaître avant l’inclusion d’un répertoire parent. En effet, duplicity s’arrête à la première règle qui matche un chemin donné pour déterminer s’il doit l’inclure ou l’exclure. (sources)

Il n’y a plus qu’a le lancer en tâche cron :

Ressources

18 thoughts on “Backup chiffré avec duplicity sur HubiC”

  1. Merci pour ce tuto!! backup depuis le petit kimsufi 2G, parfait!

    Ca manque juste un peu la possibilités des sous dossiers.. (pouvoir segmenter, www, docs perso, système, …)

    Quand est-ce qu’on te paye une bière ? :):):)

  2. Bonsoir,

    Une petite correction/note pour ce script:

    PASSPHRASE=’MonPassPhraseAMoi’

    ==> on met des ‘, car avec des  » j’ai eu quelques soucis (ma passphrase contenait des $ qui étaient interprétés….)

  3. Bon article, mais le problème du cloud, même avec un chiffrement, on donne à un tiers nos données, et si il les conserve, disons 20 ans, pas sûr que le chiffrement soit encore fiable 🙁

    Faudrait rajouter un peu de difficulté, scinder les données en deux avec un xor, et les envoyer sur deux services de cloud différents par exemple.

  4. OVH aurait-il changé certaines partie de l’infrastructure d’HubiC récemment (suite à leur changements d’offres/tarifs début février 2014) ?

    La commande duplicity ./files cf+http://default me retourne :

    Connection failed, please check your credentials: TypeError ‘NoneType’ object has no attribute ‘__getitem__’

    J’ai vérifié mes credentials et ait même retiré tout caractères « exotique » pour éviter tout problème dans le script :p

  5. Merci pour la réponse rapide : du coup mes tentatives avec https://github.com/Toorop/HubicSwiftGateway.git, https://github.com/Gu1/python-cloudfiles-hubic.git et https://github.com/guyou/python-cloudfiles-debian.git allaient rester vaines 🙂

    J’ai voulu tester le wrapper conseillé par @Gu1 mais je dois être malchanceux car la page d’ajout d’application sur hubiC (https://hubic.com/home/browser/developers/) semble HS pour le moment : j’ai pu saisir un nom et une URL pour une nouvelle application mais ensuite la page reste grisée avec une liste vide (erreur JS « Uncaught ReferenceError: valkey is not defined« ) 🙁

    On verra demain…

  6. Autre précision, la librairie python-cloudfiles a été déprécié par rackspace en faveur de pyrax. duplicity permet depuis la v0.6.23 d’utiliser pyrax.

    Plutôt que d’implémenter le support de l’auth hubic oauth dans python-cloudfiles, il faudrait le faire dans pyrax.

    Je compte m’en occuper, dès que j’aurais le temps…

    1. Super Gu1 !

      Merci pour toutes ces précisions ! Je n’aurais pas les compétences de t’aider mais n’hésite pas à nous tenir informé si tu avance sur le sujet !

      David

  7. Merci pour les pécisions Gu1.

    La page des applications répondant à nouveau, j’ai pu tester le wrapper pour Swift qui gère l’authentification via l’API que tu as conseillé (https://github.com/puzzle1536/hubic-wrapper-to-swift) : ça fonctionne bien, j’ai accès à mes données hubiC avec le client swift.

    En revanche, je ne vois pas comment utiliser ce proxy avec duplicity pour faire mes backup.

    La librairie pyrax est une très bonne chose : devrait uniformiser (et simplifier) le tout (bon, par contre Duplicity 0.6.23 n’est même pas dans Debian Jessie :-/).

  8. J’ai mis à jour mon fork de python-cloudfiles avec le support de l’API OAuth: https://github.com/Gu1/python-cloudfiles-hubic
    J’ai pas encore eu l’occasion de le tester avec duplicity, mais à priori, ça s’utilise pareil qu’avant.
    La seule différence c’est qu’anciennement il fallait mettre juste « hubic » dans l’AUTHURL et maintenant il faut aussi fournir le client_id, client_secret et redirect_url après:
    export CLOUDFILES_AUTHURL='hubic|YOUR_CLIENT_ID|YOUR_CLIENT_SECRET|YOUR_REDIRECT_URL'
    Si des gens se sentent de tester…
    Le code d’auth HubiC pour pyrax est lui aussi quasi prêt, mais il faudrait un changement dans la librairie pyrax elle même pour que je puisse le distribuer:
    https://github.com/rackspace/pyrax/pull/292

    1. Bonjour gnutux,

      Aucune idée !
      Seulement si tu as accès a tes données « en claire » c’est qu’ils doivent avoir la clef de déchiffrement… Donc je préfère re-crypter et posséder la clef de chiffrement !

      David

  9. Bonjour,

    Tout d’abord un grand merci pour votre script qui vient répondre à un réel besoin. J’ai mis la bière au frais.

    J’ai suivi vos instructions mais depuis que je me suis risqué à installer la librairie pyrax avec la commande « pip install git+git://github.com/rackspace/pyrax.git », j’ai l’erreur suivante : « Connection failed, please check your credentials: AuthenticationFailed Incorrect/unauthorized credentials received ».

    La commande duplicity ./files cf+http://default me retourne : « BackendException: CLOUDFILES_USERNAME environment variablenot set. »

    Je suis sous Ubuntu 12.04.3 et je crois que j’ai voulu bidouillé au dessus de mes (très maigres) compétences… mais enfin s’amuser avec son nunux n’est pas un des moindre plaisirs de l’existence.

    PS : très sympa votre lampe d’ambiance.

     

    Jean-Yves

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *