PROJET AUTOBLOG


Planet-Libre

source: Planet-Libre

⇐ retour index

Marty : Sécuriser ses DNS : dnscrypt et cache local avec bind

samedi 1 août 2015 à 18:00

On va jouer les cow-boys aujourd'hui : on chiffre ses DNS avec DNSCrypt, puis on se fait un petit cache local avec Bind pour améliorer les perfs.

Les DNS font régulièrement la une des news numériques, pour la simple et bonne raison que c'est souvent via une méthode de DNS menteur que les sites webs controversés sont bloqués. Et par site controversé on entend surtout les sites de partage, en particulier Bittorrent. D'ailleurs si vous ne l'avez pas encore fait, commencez déjà par changer vos DNS pour ne plus utiliser ceux de votre FAI, par exemple ceux de Google. Il existe une chiée de tutoriels un peu partout, on va pas revenir là-dessus.

Quels DNS choisir m'sieur?

C'est bien cool de changer ses DNS, mais si on se préoccupe un peu de sa vie privée, utiliser les DNS de Google, ça pue franchement. Google connaît déjà le contenu de ma boîte mail et de mon agenda, manquerait plus qu'il trace aussi tous les sites web auxquels j'accède. Une initiative intéressante est celle d'OpenNIC, qui vous propose une liste des DNS accessibles les plus proches de chez vous. Tant qu'à faire, configurez aussi les DNS en IPv6, y'a des convertisseurs.

Chiffrer ses requêtes DNS : DNSCrypt

Changer ses DNS, c'est bien joli, mais les requêtes passent toujours en clair par votre FAI. Et ce même si vous vous connectez en HTTPS, voire que vous utilisez un VPN. Bref, ça fait un peu chier. On va chiffrer tout ça grâce à DNSCrypt. C'est un petit soft qui a pour but de chiffrer les communications DNS entre le client (vous) et le serveur DNS. Double avantage : votre FAI ne peut plus lorgner sur vos requêtes DNS, et en plus de ça ça évite les attaques type MITM.

Installation

Sur Ubuntu et dérivés, il existe un PPA qu'il est bien : PPA DNSCrypt. Pour installer, rien de bien sorcier :

sudo add-apt-repository ppa:xuzhen666/dnscrypt
sudo apt-get update && sudo apt-get install dnscrypt-proxy

Par défaut, le service va écouter sur l'adresse 127.0.2.1, port 53. Il suffit donc de paramétrer cette adresse dans vos DNS (aussi en IPv6), et le tour est joué.

Configuration de base : choisir un autre serveur

Par défaut, DNSCrypt passe par OpenDNS. Niveau neutralité, c'est pas ce qu'il y a de mieux... Mais c'est cool, on peut le changer facilement. DNSCrypt est livré avec un beau fichier qui contient toute une série de DNS alternatifs compatibles :

/usr/share/dnscrypt-proxy/dnscrypt-resolvers.csv

C'est pas très joli à lire dans le terminal, le plus facile est peut-être de l'ouvrir avec LibreOffice Calc :

dns.png

Il suffit de faire son marché là-dedans, et copier le nom dans le fichier /etc/default/dnscrypt-proxy, variable DNSCRYPT_PROXY_RESOLVER_NAME. Par exemple ipredator:

...
# Remote DNS(Crypt) resolver.
# You can find a list of resolvers at
# /usr/share/dnscrypt-proxy/dnscrypt-resolvers.csv.
DNSCRYPT_PROXY_RESOLVER_NAME=ipredator
...

Il faut bien sûr redémarrer le service dnscrypt-proxy.

Configuration avancée : serveur DNS aléatoire

Juste parce qu'on a envie de faire les malins, on va ajouter un autre serveur. Pour ça, il suffit d'ajouter une ligne dans le CSV. On peut on trouver à ces endroits : https://dns.d0wn.biz/ ou http://meo.ws/dnsrec.php/. Comme je suis un vrai cow-boy de l'Internet, mon œil torve a été attiré par cette petite note, dans le premier lien :

[DNSCrypt Randomizer]

DNS-Server:	ns1.random.dns.d0wn.biz
IPv4:		178.17.170.133
Location:	Moldova
Provider-Key:	9970:E22D:7F6C:967F:8AED:CEEB:FBC1:94B9:AF54:376E:2BF7:39F1:F466:CBC9:AFDB:2A62
Provider-Name:	2.dnscrypt-cert.d0wn.biz
Ports:		54 80 443 1053 5353 27015

Our randomizer randomize your dns queries through our and the ovpn.to DNSCrypt servers (currently 18!).
This randomizer is only useable with DNSCrypt and still in BETA testing.
All traffic between you and the randomizer is encrypted. Also all traffic between our randomizer and the dns resolver is encrypted.
The dns resolver never get your own IP.

Ouais, on n'a pas peur, on va ajouter le randomizer. En gros, chaque requête va être envoyée à un serveur DNS différent, parmi un choix de 18 serveurs. C'est pas très compliqué, on ajoute cette ligne au fichier dnscrypt-resolvers.csv :

d0wn-md-rnd1,Randomizer d0wn server in Moldova,Server provided by Martin 'd0wn' Albus,Moldova,,https://dns.d0wn.biz,1,no,yes,yes,178.17.170.133:54,2.dnscrypt-cert.d0wn.biz,9970:E22D:7F6C:967F:8AED:CEEB:FBC1:94B9:AF54:376E:2BF7:39F1:F466:CBC9:AFDB:2A62,

Et puis on change la variable DNSCRYPT_PROXY_RESOLVER_NAME dans /etc/default/dnscrypt-proxy :

DNSCRYPT_PROXY_RESOLVER_NAME=d0wn-md-rnd1

On redémarre, et on peut tester sur cette page : https://www.dnsleaktest.com/. Choisissez Extended test, et vous devriez voir apparaître une bonne dizaine de serveurs DNS différents. Yeah baby!

Configuration de ouf : empêcher DNSCrypt de pourrir resolv.conf

Notez que DNSCrypt est un vicieux petit enculé, parce qu'il va automatiquement s'ajouter comme serveur DNS sans que vous n'ayez rien à faire dans /etc/resolv.conf. Ça se passe dans /etc/init.d/dnscrypt-proxy :

...
            if [ -x /sbin/resolvconf ]; then
                echo "nameserver ${DNSCRYPT_PROXY_LOCAL_ADDRESS}" \\
                    | cut -d ':' -f 1 \\
                    | /sbin/resolvconf -a lo.dnscrypt-proxy
            fi
...

C'est pratique, mais c'est pas très cool, parce que ça va écraser la configuration que vous pourriez faire via Network Manager par exemple. Un conseil : on va commenter ces lignes.

Cache DNS : Bind

Utiliser un randomizer situé en Moldavie pour dispatcher ses requêtes à d'autres serveurs situés partout dans le monde, c'est bien. Mais ça a un putain de coût en terme de performance.

Si je fais 10 requêtes DNS en passant par le DNS de Google, le temps par requête est environ 25 ms :

for i in {1..10}; do dig @8.8.8.8 youporn.com | grep time ; done
;; Query time: 27 msec
;; Query time: 26 msec
;; Query time: 25 msec
;; Query time: 25 msec
;; Query time: 33 msec
;; Query time: 24 msec
;; Query time: 26 msec
;; Query time: 28 msec
;; Query time: 21 msec
;; Query time: 26 msec

La même chose avec ma configuration DNSCypt :

for i in {1..10}; do dig @127.0.2.1 youporn.com | grep time ; done
;; Query time: 153 msec
;; Query time: 325 msec
;; Query time: 778 msec
;; Query time: 628 msec
;; Query time: 241 msec
;; Query time: 1768 msec
;; Query time: 86 msec
;; Query time: 201 msec
;; Query time: 217 msec
;; Query time: 173 msec

C'est moche... Très moche. Parfois plus d'une seconde et demi pour résoudre un nom de domaine, ça sent la crevette moisie. On va s'installer un petit cache DNS pour améliorer tout ça, et on va faire ça avec Bind.

Installation

Là c'est du gâteau :

apt-get install bind9

Par défaut, le service va écouter sur l'adresse 127.0.0.1, port 53. Là aussi il suffit donc de paramétrer cette adresse dans vos DNS (aussi en IPv6), et le tour est joué.

Attention : si vous utilisez Bind, il faut vraiment empêcher DNSCrypt de pourrir resolv.conf, sinon ça va merder.

Configuration

L'idée est que Bind va passer par DNSCrypt pour résoudre les adresses. Pour ça, on enfile ses santiags et on va configurer /etc/bind/named.conf.options :

        forwarders {
                127.0.2.1;
        };

En clair, Bind va interroger DNSCrypt lorsqu'il ne connaît pas le nom de domaine à résoudre. Une fois le nom résolu, il va utiliser son cache local. Et là, on va avoir une putain d'amélioration des performances :

for i in {1..10}; do dig @127.0.0.1 youporn.com | grep time ; done
;; Query time: 3302 msec
;; Query time: 0 msec
;; Query time: 0 msec
;; Query time: 0 msec
;; Query time: 0 msec
;; Query time: 0 msec
;; Query time: 0 msec
;; Query time: 0 msec
;; Query time: 0 msec
;; Query time: 0 msec

La première requête est assez longue car on passe par Bind, qui appelle ensuite DNSCrypt. Mais ensuite, ça passe comme dans du beurre car on utilise le cache local.

Gravatar de Marty
Original post of Marty.Votez pour ce billet sur Planet Libre.

Articles similaires

Dimitri Robert : Windows 10 : et si vous passiez à Linux ?

samedi 1 août 2015 à 09:09

Je ne cacherai pas ma méconnaissance du monde Windows, elle est décrite dans cette interview. Je ne cacherai pas non plus mon aversion pour les logiciels propriétaires en général, ceux de Microsoft en particulier. Il parait qu’en ce premier jour du mois d’août 2015 sort la version 10 du fameux système de Microsoft : Windows. Et il paraît même qu’il est gratuit !

Un Windows gratuit ?

Oui, en apparence, mais pas tout à fait en réalité.

La mise à jour depuis une version 7, 8 ou 8.1 vers la version 10 sera gratuite si vous la faîtes dans les douze prochains mois. Après ce sera payant.

De plus, seule la mise à jour est gratuite, l’installation d’un système neuf est payante. Or, lorsque vous achetez un ordinateur neuf, vous payez également une licence de Windows. Pire, lorsque votre ordinateur plante et que vous demandez de l’aide à votre revendeur informatique, ce dernier vous facturera une licence de Windows pour vous le réinstaller.

Lire : Windows 10 sera gratuit mais si votre PC plante il faudra payer !

Un Windows validé par les services de renseignements ?

Edward SnowdenDonc ce nouveau Windows apporte son lot de nouveautés que vous retrouverez sur les sites de Microsoft, dans la presse spécialisée, sur vos blogs préférés, etc. Mais certaines fonctionnalités, pas forcément nouvelles, reçoivent moins de publicités. Il s’agit des fonctionnalités demandées par la NSA (National Security Agency) agence étatsunienne aujourd’hui bien connue grâce, entre-autres, aux révélations d’Edward Snowden.

Nous savons donc que la NSA espionne les citoyens dans le monde entier et nous apprenons (pour ceux qui ne le savaient déjà) que la NSA demande à Microsoft d’inclure des portes dérobées et des portes d’entrées pour la NSA dans Windows 10 (voici une version traduite en français par Jean Elchinger). Donc, si vous utilisez Windows 10, vous êtes susceptibles de subir des intrusions par la NSA (il est fort probable que les versions précédentes de Windows présentent les mêmes travers).

Ajoutons à cela que l’Assemblée nationale française a voté la loi « Renseignements » qui autorise la surveillance de tous les citoyens. Il n’y a pas forcément de lien avéré entre la NSA et les services français, pas encore.

Vous vous dites peut-être que vous n’avez rien à cacher ? C’est plus simple en effet.

Je n’ai rien à cacher. En fait si, et vous également !

Abandonner Windows pour un système libre !

Quitte à s’adapter et se former à un nouvel environnement pourquoi choisir une cage ? Optez pour une distribution Linux (LinuxMint, Ubuntu, Xubuntu, Mageia, Fedora, etc.) et vous disposerez de l’environnement de bureau de votre choix, avec les logiciels de votre choix (du moment que les logiciels sont prévus pour la plate-forme PC / Linux).

De plus, vous n’avez pas de licence à payer pour avoir le droit de les utiliser, pour avoir accès aux mises à jour.

Distribution Linux

Une distribution est un ensemble comprenant le système GNU / Linux et tous les logiciels vous permettant de travailler (suite bureautique, navigateur Web, traitement d’images, publication assistée par ordinateur, montage vidéo, etc.) Et surtout un gestionnaire d’installation de logiciels qui vous permet de « faire votre marché » en quelques clics et de vous proposer automatiquement les mises à jour lorsqu’elles surviennent.

Trop de distributions ! Vous ne savez laquelle choisir ? Avantage du monde du libre, la plupart des distributions existent en version « live ». Vous la téléchargez (sous la forme d’une image ISO), vous la gravez sur CD (ou clé USB), vous démarrez votre ordinateur depuis le CD ou la clé et vous pouvez ensuite utiliser la distribution, sans installation. Et, si la distribution et son environnement vous plaisent, il ne vous reste qu’à l’installer (ou vous faire aider lors d’une install party).

Quelques conseils pour faire votre choix :

Bien sûr, la liste n’est pas exhaustive.

Je n’utilise que des logiciels libres dont le système GNU/Linux depuis 2002. Aussi je vous propose mon expertise via une formation pour utiliser Linux au quotidien, à destination des utilisateurs non-informaticiens pour permettre de s’approprier ce nouvel environnement.

Pour conclure et pour vous permettre d’avoir un autre avis sur la question, lisez l’article de David Larousserie, journaliste au Monde, expliquant pourquoi choisir GNU/Linux ? (plutôt que Windows ou Mac OS).

Cet article Windows 10 : et si vous passiez à Linux ? est apparu en premier sur Formation logiciel libre.

Gravatar de Dimitri Robert
Original post of Dimitri Robert.Votez pour ce billet sur Planet Libre.

Framablog : Aménager son igloo avec Sweet Home 3D

vendredi 31 juillet 2015 à 23:55

L’été c’est le moment des vacances, le farniente, les apéros, la plage… Mais c’est également la période où l’on profite des longues journées et du beau temps pour faire des travaux dans la maison.
Notre pinchot se sentant l’âme d’un bricoleur a choisi de réorganiser son igloo. Mais avant de tout casser, il aimerait bien voir ce que ces aménagements pourraient donner. C’est là qu’il tombe sur ce superbe logiciel Sweet Home 3D qui va lui permettre de visualiser les agencements prévus.

Rencontre avec Emmanuel Puybaret, son concepteur, et Véronique, sa community manager.

Bonjour, pouvez-vous nous présenter le logiciel Sweet Home 3D ?

Abri de jardin

Emmanuel : Sweet Home 3D est un logiciel libre d’aménagement intérieur qui permet de dessiner des plans de logements, d’y placer des meubles et de visiter le résultat en 3D. Il est très complet et facile d’utilisation. C’est un peu la 3D pour les nuls ! Sa première version date de 2006 et correspond à une étude de cas décrite dans Les cahiers du programmeur Swing que j’avais écrit pour les éditions Eyrolles. Cet ouvrage faisait lui-même suite à mon Cahier du programmeur Java dont la première édition date de 2003. Tout ça pour dire que Sweet Home 3D est développé en Java et que toute cette expérience acquise avec le temps m’a bien aidé pour obtenir un programme stable et performant.

 

La version 5 vient de sortir ce mois-ci, quelles sont les nouveautés les plus remarquables ?
Emmanuel : Depuis presque 10 ans – et notamment depuis votre dernier article qui regrettait l’absence de niveaux, ajoutés depuis ;-), le logiciel s’est vraiment beaucoup enrichi. La version 5 permet des rendus toujours plus réalistes (ajout de plinthes, intégration de portes arrondies ou de fenêtres triangulaires…) mais aussi la conception d’aménagements plus détaillés (dessin de flèches et de schémas de toutes sortes, ajout de textes libres en 3D…).
Véronique : Outre l’aménagement, on sent de plus en plus un besoin d’utilisation du logiciel dans des pré-projets de construction : avant de faire appel à un architecte, de nombreuses personnes, partout dans le monde, ont envie de « rêver » leur maison. C’est chouette.

 

J’ai envie d’aménager un igloo, c’est possible ?
Emmanuel : Zut, là, vous me posez une colle car, dans Sweet Home 3D, les murs ne peuvent être que verticaux ! On peut faire des murs arrondis, des murs en sous-pentes, mais, pour des igloos ou des coupoles, il faudra que vous passiez par une astuce… par exemple, en important un igloo de la bibliothèque 3D Warehouse au format KMZ / Collada. C’est étonnant d’ailleurs comment les utilisateurs de Sweet Home 3D arrivent à trouver des tas d’astuces pour arriver à leurs fins. Et puis, si vous voulez programmer des fonctionnalités plus complexes, vous pouvez essayer de développer un plug-in, tout est expliqué sur le site du logiciel.

 

Exemple de plan

Sweet Home 3D, cela a une consonance anglaise, mais ce ne serait pas un projet français ?
Emmanuel : 100 % français, oui, mais à visée 100 % mondiale.
Véronique : …et au-delà !
Emmanuel : Maintenant le logiciel est disponible dans 25 langues ! C’est un des trucs formidables du logiciel libre : nous avons régulièrement des propositions de traduction du logiciel et on trouve même des tas de tutoriels sur YouTube dans différentes langues. De même, le forum est très réactif, très sympathique. L’aménagement ou l’architecture semblent être des sujets sans fond et, si jamais je manquais d’idées pour améliorer ce logiciel, les propositions des utilisateurs fourmillent. Merci à eux !

 

Quel est le lien entre Sweet Home 3D et eTeks ?
Emmanuel : C’est le nom de ma boite, tout simplement. Comme Sweet Home 3D, ça sonne anglais, mais ce n’est pas non plus trop dépaysant pour un public français.

 

Vous pouvez nous présenter les différentes personnes qui interviennent autour de ce projet ?
Emmanuel : Euh… moi, essentiellement, pour le développement en tout cas. Mais il y a aussi les créateurs de meubles en 3D, les participants les plus actifs du forum, les traducteurs comme je l’ai dit… Et depuis 5 mois, il y a Véronique qui m’aide pour la communication. J’ai senti que c’était nécessaire pour mieux animer cette communauté que je ne prenais pas assez de temps de connaitre et de faire reconnaitre.
Véronique : J’ai mis notamment en place une série d’articles sur le blog sur les différentes utilisations du logiciel qui s’intitulent : « Et vous, vous faites quoi de votre Sweet Home 3D ? ». Je viens de commencer, mais il y a de quoi faire une véritable saga, vous verrez !

 

Dans les utilisations « détournées » de Sweet Home 3d, saviez-vous que notre ami Gee, utilise le logiciel comme support pour les décors dans sa BD « Superflu » ? Avez-vous eu d’autres retours atypiques d’utilisation ?

Emmanuel : Oui, on aime bien ce qu’il fait et Véronique projette de faire un entretien avec lui à la rentrée (s’il veut bien !). Dans le genre atypique, il faut aller voir aussi sur le blog de Sweet Home 3D ou sur notre page facebook la reconstitution du Château de Rochecorbon, le vaisseau spatial de Star Trek ou le projet de ferme écologique en Afrique. Ce sont des super projets !

 

Modélisation d’une chambre pour la BD Superflu de Gee.

Pourquoi le choix du libre ?
Emmanuel : C’était dans les gènes de Sweet Home3D. Il devait forcément être open source puisque publié dans un livre. Alors, quitte à ouvrir son code source, autant le faire sous une licence libre. Sans être super militant, j’avais bien perçu les avantages d’une licence comme la GNU GPL dans des projets précédents : le partage des connaissances, l’ouverture au monde, l’aide des contributeurs, l’accès à des référentiels comme SourceForge.net, mais aussi la possibilité, avec cette même licence, d’opter pour un modèle de licences multiples. C’est justement ce modèle qui nous permet de vivre de ce projet : ventes de licences propriétaires à des sociétés qui veulent étendre les fonctionnalités du logiciel sans publier le code source de leurs modifications, mais aussi ventes sur l’Amazon Store et le Mac App Store d’une version intégrant tous les meubles sous licence libre disponibles pour le logiciel.

 

Avez-vous besoin d’aide ? Si oui, comment peut-on faire ?
Véronique : Ce n’est pas toujours facile de savoir ce qui motive une communauté : sur Facebook, on avait fait un « jeu des 7 différences », mais personne n’a joué ! Plus sérieusement, toutes les contributions sont bienvenues : documentation, participation au forum, création de meubles en 3D libres avec Blender ou Art of Illusion, par exemple. Pour les designers 3D en quête de reconnaissance, sachez que les pages consacrées aux modèles 3D sont désormais très bien référencées dans Google.
Emmanuel : Quand on pense aux débuts de Sweet Home 3D où j’ai été obligé de concevoir les premiers meubles en 3D moi-même, je suis très content d’avoir contribué aussi à l’émergence de bibliothèques de modèles 3D libres, 10 ans après.

 

Envie de réagencer son salon ?

Un dernier mot pour conclure cet entretien ?
E & V : Merci beaucoup, Framasoft, de votre travail en général et, en ce qui nous concerne, de nous avoir référencés dès nos débuts et de continuer à nous donner la parole. À bientôt !

 

Gravatar de Framablog
Original post of Framablog.Votez pour ce billet sur Planet Libre.

Yopland : Sauvegarder ses données avec Duplicity

vendredi 31 juillet 2015 à 22:37

tux-161379_1280Je vous épargnerai le couplet sur la nécessité de mettre en œuvre des sauvegardes régulières et je vous propose d’entrer directement dans le vif du sujet.

Toutes mes données sont stockées sur un NAS maison (basé sur la distribution Open Media Vault). L’objectif est dans un premier temps de mettre en œuvre sur un disque externe des sauvegardes régulières. Dans un second temps, pour plus de sécurité, j’aurai souhaité réaliser une sauvegarde complémentaire sur un serveur distant (il faut encore que je regarde les services appropriés). Toutefois, pour cela, un minimum de sécurité s’impose et si une donnée quitte mon environnement elle ne le fera que cryptée.

Toujours dans l’idée de garder sous le coude un petit aide mémoire, j’ai donc décidé d’écrire quelques billets sur le sujet. Ceux-ci aborderont donc les points suivants :

J’ai choisi de ne pas mettre en œuvre une solution de sauvegarde graphique. La première raison est que je n’ai pas d’écran sur mon NAS. Bien qu’il soit toujours possible d’utiliser un serveur X distant, je pars du principe qu’en cas de problème il y a une probabilité non nulle pour que tout termine en ligne de commande !

Installation de duplicity

Le NAS fonctionne H24, c’est donc sur cette machine que sera installée les différents logiciels permettant de sauvegarder mes données. Open Media Vault est une distribution basée sur Debian. L’installation de duplicity se fait donc très simplement avec la commande « apt-get ».

apt-get install duplicity

Périodicité des sauvegardes

Réaliser des sauvegardes régulières permet d’une part de palier les problèmes matériels qui ne manqueront pas d’arriver un jour et d’autre part de s’offrir un minimum de sécurité en cas de fausse manipulation. Je pars sur une durée de rétention de deux mois, cela signifie que je peux revenir en arrière durant cette période

Pour mettre en œuvre ce type de sauvegarde, je mets en place une sauvegarde totale tous les moins et une incrémentale tous les jours. Certes, en cas de problèmes le 29 du mois, les manipulations à réaliser seront nombreuses (restauration de la sauvegarde totale et restauration des 28 sauvegardes journalières). Certains me diront qu’il serait bien plus facile de réaliser une sauvegarde totale par jour. L’intérêt de duplicity est notamment de cacher cette complexité. Ce point n’est donc pas un vrai problème.

Par contre, en cas de problème sur ma sauvegarde totale, je risque de perdre un mois de données. Effectivement, c’est bien le cas, mais la capacité disque à ma disposition ne me permet pas de faire de sauvegardes totales plus régulièrement (le NAS est quand même en RAID 5, cela devrait tout de même limiter les risques en cas de problème matériel).

Dans mon cas, mes données contiennent plus de 300 Go de photos (oui, je sais, passer un peu plus de temps à les trier ne ferait pas de mal…). Le disque externe que je souhaite utiliser a une capacité de 1To, la solution est donc vite trouvée : deux sauvegardes totales sur le disque. Le reste en incrémental. Avant de réaliser la troisième sauvegarde totale, il faut donc effacer la plus ancienne.

Mise en œuvre des sauvegardes

La commande suivante sauvegardera le dossier « home » dans le dossier « /mnt/svg ». Si la dernière sauvegarde totale date de plus d’un moins, alors duplicity réalisera une nouvelle sauvegarde totale. Si ce n’est pas le cas, ce sera une sauvegarde incrémentale.

Dans le cadre d’une sauvegarde « locale » je ne souhaite pas utiliser de cryptage, d’ou l’option « –no-encryption ».

LISTE_SAUVEGARDE="/home"
BACKUP_DIR="/mnt/sauvegardeUSB/duplicity/"
duplicity --no-encryption --full-if-older-than 1M $LISTE_SAUVEGARDE file://$BACKUP_DIR

Le « M » désigne ici une période correspondant à un mois. Il est possible de substituer cette information avec les entrées suivantes :

Suite à cette commande, le dossier de sauvegarde contient les trois fichiers suivants :

En relançant la sauvegarde, on ajoute 3 fichiers supplémentaires correspondant à la période entre la dernière sauvegarde.

Bien entendu, tous ces fichiers sont directement consultable avec l’outil que vous utilisez habituellement pour gérer vos archives.

Comme mentionné dans ma politique de sauvegarde, je ne souhaite avoir que deux mois de rétention. Là encore duplicity peut se charger du travail. Il suffit d’utiliser la commande « remove-older-than « .

La commande suivante effacera les sauvegardes ayant plus de 70 jours :

LISTE_SAUVEGARDE="/home";
BACKUP_DIR="/mnt/sauvegardeUSB/duplicity/"
duplicity --no-encryption --full-if-older-than 1M remove-older-than 70D file://$BACKUP_DIR

Tester la validité de la sauvegarde

Afin d’être sur de pouvoir compter sur la sauvegarde, il est oprtain de s’assurer que cette dernière n’est pas corompue. La commande suivante vérifie les données présentes dans les archives présentes sans « /mnt/svg » avec les données présentes dans « /home ».

LISTE_SAUVEGARDE="/home";
BACKUP_DIR="/mnt/sauvegardeUSB/duplicity/"
duplicity verify -v4 --no-encryption --compare-data file://$BACKUP_DIR $LISTE_SAUVEGARDE;

La vérification se fait fichier par fichier. La place nécessaire à cette vérification est donc limitée.

Il existe une option « –compare-data » qui permet de vérifier aussi le contenu de chaque fichier.

En lançant la commande ci-dessus après avoir modifier un fichier dans « /home », duplicity me retourne la ligne suivante :

Vérification complète : 4 files compared, 1 difference found.

La sauvegarde n’est donc pas conforme à ce qui à été sauvegardé. En mettant en place ce type de vérification, on part du principe que les données ne sont pas accèdées durant la fenêtre de sauvegarde.

Restauration des données

Soit la situation initiale suivante sur mon dossier « home » :

On réalise une sauvegarde avec la commande suivante :

LISTE_SAUVEGARDE="/home";
BACKUP_DIR="/mnt/sauvegardeUSB/duplicity/"
duplicity --no-encryption --full-if-older-than 1M $LISTE_SAUVEGARDE file://$BACKUP_DIR

Lister les données présentes dans une sauvegarde

Pour obtenir la liste des fichiers contenus dans une sauvegarde, lancer la commande suivante :

LISTE_SAUVEGARDE="/home";
BACKUP_DIR="/mnt/sauvegardeUSB/duplicity/"
duplicity list-current-file --no-encryption file://$BACKUP_DIR

Comparer le backup avec le dossier source

La commande suivante vous permet d’effectuer uen comparaison avec la souvegarde et son dossier source. Les différences seront ainsi facilement mise en évidence.

LISTE_SAUVEGARDE="/home";
BACKUP_DIR="/mnt/sauvegardeUSB/duplicity/"
duplicity verify --no-encryption file://$BACKUP_DIR $LISTE_SAUVEGARDE

Restauration complète

Suite à la sauvegarde, on restaure les données dans la foulée. La commande suivante permet de restaurer les fichers présents dans le dossier « /mnt/svg » vers le dossier « /home ».

Dans notre cas, les fichiers sauvegardés existent déjà dans « /home ». Par défaut « duplicity » n’écrase jamais de fichier. Il faut donc ajouter l’option « –force » pour forcer la restauration.

LISTE_SAUVEGARDE="/home";
BACKUP_DIR="/mnt/sauvegardeUSB/duplicity/"
duplicity restore --force --no-encryption file://$BACKUP_DIR $LISTE_SAUVEGARDE

Il est aussi possible de spécifier la version que l’on souhaite restaurer avec l’option « –time ». Pour cela, il faut passer en paramètre la date relative ou absolue du fichier que l’on souhaite restaurer.

La commande suivante effectuera une restauration afin de retrouver les fichiers présent sur le disque il y a une semaine.

LISTE_SAUVEGARDE="/home";
BACKUP_DIR="/mnt/sauvegardeUSB/duplicity/"
duplicity restore --force --no-encryption --time 1W file://$BACKUP_DIR $LISTE_SAUVEGARDE

Au passage ce test permet de constater que « duplicity » gère tout seul le fait qu’il faille éventuellement retaurer plusieures sauvegarde pour arrivé au résultat voulu. Réaliser des sauvegardes incrémentales n’augmente pas la complexité de restauration par rapport à des sauvegarde totales.

Restaurer un fichier particulier

L’option  » –file-to-restore » permet de spécifier les fichiers à retaurer. Pour cela, il faut donner le nom du fichier à restaurer (nom relatif par rapport à la racine de l’archive) ainsi que le nom sous lequel le fichier doit être restauré.

LISTE_SAUVEGARDE="/home";
BACKUP_DIR="/mnt/sauvegardeUSB/duplicity/"
duplicity --no-encryption --force --file-to-restore fichier1.txt file://$BACKUP_DIR $LISTE_SAUVEGARDE/fichier1.txt

 Le chemin relatif du fichier à restauré paut être obtenu avec la commande « list-current-file ».

Gestion du périférique de stockage USB

Lorsque l’on branche un périphérique USB, udev se charge de créer une entrée dans « /dev ». Toutefois, cette entrée de la forme « /dev/sdx » varie en fonction des périfiériques déjà branché à la machine. Pour palier ce problème, il suffit de modifier les règles « udev » afin d’affecter au périphérique en question toujours la même entrée dans « /dev ». Ce point fait l’objet d’un billet.

Et concrétement, que faut-il faire ?

Je souhaite effectuer une sauvegarde ayant les caractéristiques suivantes :

Avant d’effectuer ma sauvegarde, il est nécessaire de monter mon périférique USB et de vérifier que ce dernier est bien disponible. Ce dernier sera démonté en fin de sauvegarde.

Pour garder une trace de toutes les actions, je souhaite garder les sorties « duplicity » sous forme de log (1 fichier par jour).

Pour remplir ce cahier des charges j’obtiens le script suivant :

#!/bin/bash
 
LISTE_SAUVEGARDE="/media/6c3b39d4-b1f4-4854-9ca9-0b1e068b8aba/Donnees/";
BACKUP_DIR="/mnt/sauvegardeUSB/duplicity/donnees/"
LOG_DIR="/var/log/duplicity"
LOG_FILE=`date +%Y-%m-%d-duplicity.log`
LOG=$LOG_DIR/$LOG_FILE
 
# Création du dossier de LOG
mkdir --parent $LOG_DIR
 
# Monte le disque de sauvegarde
mount /mnt/sauvegardeUSB
 
if mount | grep sauvegardeUSB; then
    # Création du dossier destination
    mkdir --parent $BACKUP_DIR;
    # Supprime les sauvegarde de plus de 2 mois
    duplicity remove-older-than 2M --force file://$LISTE_SAUVEGARDE >> $LOG;
    # Réalisation de la sauvegarde
    duplicity --no-encryption --full-if-older-than 1M $LISTE_SAUVEGARDE file://$BACKUP_DIR >> $LOG;
    # réinitialise les variables d'environnement
    unset LISTE_SAUVEGARDE;
    unset BACKUP_DIR;
    # stop le disque
    umount /mnt/sauvegardeUSB
    sdparm --command=eject /dev/sauvegardeUSB
else
    echo "Le disque de sauvegarde n'est pas présent"  >> $LOG;
    # réinitialise les variables d'environnement
    unset LISTE_SAUVEGARDE;
    unset BACKUP_DIR;
fi

Il ne reste plus qu’a l’ajouter dans la « cron table » pour une exécution journalière. Afin d’être sur que tous les dossiers soient sauvegardés, il est nécessaire de lancer le script avec l’utilisateur « root ».

sudo crontab -e

Et ajouter la ligne suivante :

30 0 * * * /root/bin/sauvegarde-donnees.sh

Améliorations

Voici une liste d’améliorations qui je mettrait en place la journée que j’aurai un peu de temps :

Références

Cet article Sauvegarder ses données avec Duplicity est apparu en premier sur Carnet de vol.

Gravatar de Yopland
Original post of Yopland.Votez pour ce billet sur Planet Libre.

Dimitri Robert : Conférence ‑ Montage vidéo avec KDenlive

vendredi 31 juillet 2015 à 19:18

Comme chaque année au mois de juillet ont lieu les rencontres mondiales du logiciel libre. Cette année elles avaient lieu à Beauvais. Ce fut pour moi l’occasion de présenter KDenlive, un logiciel libre de montage vidéo performant et facile d’accès. C’est le logiciel que j’utilise notamment pour monter les tutoriels vidéo que vous pouvez voir sur ce site ou sur ma chaîne DailyMotion.

Le monde du libre est riche de logiciels de montage vidéo. KDenlive a fait bien des progrès depuis l’époque où il plantait régulièrement.
Au cours de cette conférence nous réaliserons un montage vidéo simple en mêlant images animés et fixes, musique et titres.
Le but est de produire un rendu en fin de séance.

Et voici la vidéo qui servit d’exemple lors de cette présentation.

Cet article Conférence ‑ Montage vidéo avec KDenlive est apparu en premier sur Formation logiciel libre.

Gravatar de Dimitri Robert
Original post of Dimitri Robert.Votez pour ce billet sur Planet Libre.