[Cloud] Systèmes de stockage de fichiers distribués installables et utilisables dans Ubuntu

Sous-titre

Auteur

Valentin Pourchet

Certains systèmes de stockage de fichiers fonctionnent selon le modèle pair-à-pair, ce qui a pour avantage de vous affranchir du contrôle d'une entreprise. Plutôt que de confier vos données à une seule entreprise qui gère un ensemble de fermes de stockage, celles-ci se retrouvent enregistrées en petites parties sur des milliers d'ordinateurs comme vous. Vos fichiers, toujours chiffrés, se retrouvent répliqués sur de très nombreux ordinateurs, ce qui garantit une accessibilité proche de 100%. Ce modèle est économique et avantageux : plus il y a de gens qui participent au stockage distribué, plus il y a d'espace disponible pour l'ensemble des usagers et moins il est nécessaire de maintenir d'énormes fermes de serveurs énergivores.

- Titre : [Cloud] Systèmes de stockage de fichiers distribués installables et utilisables dans Ubuntu

- Auteur : Valentin Pourchet

- Parution : 21 janvier 2014

- Licence : Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2014 Lana.Bauer. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. GNUnet

- I-A. Installation

- I-B. Configuration

- I-B-1. Pare Feu

- I-C. Références

- II. Le système de fichiers/stockage décentralisé Tahoe-lafs

- II-A. Présentation

- II-B. Installation

- II-B-1. Dépot ubuntu

- II-C. Tahoe-lafs anonymat avec I2P

- II-D. Utilisation

- II-E. Voir aussi

- III. Freenet : Réseau Anonyme

- III-A. Pré-requis

- III-A-1. Vérifier si Java est installé.

- III-B. Installation

- III-B-1. Installation automatique

- III-B-2. Installation manuelle

- III-C. Installation

- III-C-1. Installation automatique

- III-C-2. Installation manuelle

- III-C-3. Configuration

- III-D. Lancement

- III-D-1. Configurer le parefeu de votre machine (et/ou de votre box)

- III-D-2. Gestion des connexions au Darknet

- III-D-2-a. Connexion à des inconnus

- III-D-3. FROST

- III-D-3-a. Installation

- III-D-3-b. Si vous utilisez Beryl

- III-D-3-c. Si vous utilisez Beryl

- III-D-3-d. Lancer Frost

- III-E. Désactiver Freenet

- III-F. Désinstallation

- III-G. Voir aussi

I - GNUnet

GNUnet est le réseau P2P du projet GNU.

Créé pour résister à la censure, c'est historiquement le premier système de P2P sécurisé, il utilise surtout AES-256, un chiffrement très rapide et sécurisé. C'est le premier réseau à utiliser des nodes (de 1 à 4 noeuds) pour le transfert d'informations.

On peut noter parmi ses caractéristiques :

- la décentralisation (pas de serveur unique, ni de réseau de serveur) ;

- la sécurisation (les connexions sont chiffrées) ;

- l'anonymat (impossible de savoir si le message vient d'un pair ou si le pair route ; uniquement le message)

- le fonctionnement sous forme de démon (invisible).

I-A - Installation

Pour Ubuntu 8.04 LTS uniquement

Ajouter à vos sources de logiciels le PPA ppa:teamgnunet/ppa1, rechargez la liste de paquets puis installez le paquet gnunet pour installer la base du logiciel et son deamon, ainsi que gnunet-gtk pour l'interface graphique.

Lors de l'installation, vous pouvez choisir de démarrer le deamon au démarrage du système. Sinon, vous devrez le démarrer vous même.

Il faut savoir que Gnunet met du temps à se connecter et à devenir fonctionnel, ce qui inciterai à démarrer le deamon au démarrage. Par contre il est gourmand en ressources et pour ceux qui n'ont pas une machine très perfomante il est préférable de le démarrer uniquement lorsqu'on en a besoin…

I-B - Configuration

Après avoir installé GNUnet, il faut le configurer avec cette commande :

sudo gnunet-setup -d gconfig -c /etc/gnunetd.conf

Les valeurs par défaut sont communément admises.

Ensuite pour lancer le démon GNUnet:

sudo gnunetd

Pour lancer l'outil de configuration graphique, lancez la commande suivante dans un terminal :

sudo gnunet-setup -d wizard-gtk

Pour lancer la version graphique de GNUnet:

sudo gnunet-gtk

Pour partager automatiquement un répertoire:

sudo gnunet-auto-share /chemin.du.répertoire/

Après avoir démarré de cette manière, gnunet-auto-share se placera lui-même en tâche de fond (en tant que démon) et vérifiera régulièrement si de nouveaux fichiers ont été copiés dans les répertoires spécifiés. Exécuté en arrière plan, gnunet-auto-share s\′assurera que tous les fichiers du répertoire fourni sont disponibles pour gnunetd et par conséquent disponibles sur le réseau. Vous devrez redémarrer gnunet-auto-share à chaque fois que votre ordinateur est redémarré (de la même façon que vous devrez redémarrer gnunetd).

Pour effectuer une recherche sur GNUnet (mode console) :

sudo gnunet-search [-t TIMEOUT] KEYWORD [Mot Clé]

L'option -t spécifie que la requête devra s'arrêter après approximativement TIMEOUT secondes. Une valeur à zéro est interprétée comme pas de time out. Si plusieurs mots sont passés comme clé et ne sont pas séparés par un AND, gnunet-search les concaténera en un seul mot clé.

Exemple:

sudo gnunet-search -t 3600 KEYWORD Linux Ubuntu

→ Cherche les mots clés "Linux" & "Ubuntu" sur le réseau pendant 3600 secondes.

sudo gnunet-search -t 3600 KEYWORD Linux AND Ubuntu

→ Cherche un fichier contenant les 2 mots clés "Linux" et "Ubuntu" sur le réseau pendant 3600 secondes.

Pour récupérer un fichier sur le réseau (mode console) :

sudo gnunet-download -o FILENAME GNUNETURL

FILENAME specifie le nom du fichier ou GNUnet est supposé écrire les informations récupérées. Tout fichier déja existant est effacé.

Exemple:

sudo gnunet-download -o "/home/O'Reilly - Linux Device Drivers - 2nd Edition.pdf" gnunet://ecrs/chk/95CNQJ3BTNCK324UFNGPEEKB6C2RUJJGSANBE2S0D7Q8TUSKHMCJ4GOV8BG5FR52A68T6SU39R2PG159EP9P0AHDOB7EHLJKV8JQ0OO.3O6G8OJGNP45BEJMSSION53E0V9JCQKCECOAH79R1HB33G7NHTQI5ABBPOBBP8PHU0JOHSBFRBQKUMNR8EKD1SQM75EU3BOB2JOHD88.7718811

→ Télécharge le Livre d' O'Reilly dans mon /home.

I-B-1 - Pare Feu

Si vous utilisez un routeur ou un pare feu, il vous faudra ouvrir les ports 2086 et 1080 en TCP et UDP.

I-C - Références

Le site officiel

GNUnet sur wikipédia

II - Le système de fichiers/stockage décentralisé Tahoe-lafs

Le Tahoe-Least-Authority Filesystem(Tahoe-lafs) est système de stockage opensource, sécurisée, décentralisée, tolérant aux pannes, magasin de données distribué en peer-to-peer et système de fichiers distribué. Il est utilisé comme un système de sauvegarde en ligne par les entreprises. Il peut aussi servir comme un fichier hôte ou sur le Web similaire à Freenet, en fonction du front-end permet d'insérer et d'accéder à des fichiers dans le système de Tahoe. Tahoe peut également être utilisé d'une manière analogue au RAID afin d'utiliser plusieurs disques pour faire une seule grande copie de stockage de données fiable.

II-A - Présentation

Tahoe-lafs peut être vu comme un raid au niveau de réseau. Lorsque vous avez des disques durs en raid, vous pouvez perdre un disque, le second prend le relais. Il suffit de remplacer le disque dur défectueux et l'incident est fini. Les données se recopient sur le premier disque.

C'est la même chose avec Tahoe, les différents composants de la grille constituent un espace de stockage redondant. Si une partie de la grille est perdue, les fichiers sont encore présents sur d'autre machine. Un des points fort de Tahoe c'est que la sécurité de vos informations ne repose pas sur les composants de la grille. Si des nœuds sont corrompus, la personne qui les gère n'aura pas accès à vos documents. Vos données sont donc en sécurité dans la grille.

Les différents composants de la grille sont :

- l'introducer, la machine qui met en relation les différents storage server et les gateway ;

- les storage server, qui stockent des fragments de vos fichiers ;

- les gateway qui sont chargé de chiffrer/déchiffrer les fichiers avant de les uploader/downloader dans la grille ;

- les clients, qui utilisent les gateway pour stocker ou retrouver leur fichier dans la grille.

Un petit schéma :

Actuellement nous disposons d'un introducer et d'un storage server up 24/24. (Avec la prochaine release nous tenterons d'avoir deux ou trois introducer pour garantir une disponibilité 24/24 à la grille). Comme il s'agit d'une grille privée, avec de petits moyens technique (et financier, le but est d'utiliser le matériel existant), chaque participant devra mettre en place une gateway et un storage server pour accéder au ressource de la grille. Sa gateway garantira que ses informations restent personnelles. Comme chacun stockera des fichiers chez d'autre participant, il est normal qu'il partage un peu d'espace disque en échange (le storage sever). L'installation fera l'objet d'un prochain post.

II-B - Installation

II-B-1 - Dépot ubuntu

Installer tahoe-lafs

II-C - Tahoe-lafs anonymat avec I2P

- Ajoutez le PPA ppa:i2p.packages/i2p dans vos sources de logiciels ;

- Rechargez la liste des paquets ;

- Installez le paquet i2p.

II-D - Utilisation

II-E - Voir aussi

- Site officiel

- Principe et installation de TAHOE-LAFS

III - Freenet : Réseau Anonyme

III-A - Pré-requis

Java doit être installé pour faire fonctionner Freenet.

III-A-1 - Vérifier si Java est installé.

Dans un terminal taper :

java -version

La réponse doit ressembler à ça :

java version "1.6.0"
Java(TM) SE Runtime Environment (build 1.6.0-b105)
Java HotSpot(TM) Server VM (build 1.6.0-b105, mixed mode)

Pour changer sa version de Java (si plusieurs versions sont installées)

sudo update-alternatives --config java

Il est recommandé de ne pas choisir une version de java antérieure à Java 1.5 update 4 pour des raisons de sécurité.

III-B - Installation

III-B-1 - Installation automatique

Dans la plupart des cas vous pouvez lancer l'installation simplement en cliquant sur le lien : Lancer l'installation de freenet

Pour la dernière version qui fonctionne avec openjdk 6 et javaws

III-B-2 - Installation manuelle

Télécharger et lancer l'installeur :

wget -c -P /tmp https://freenet.googlecode.com/files/new_installer_offline_1440.jar -O new_installer_offline.jar

Puis :

sudo update-alternatives --config java

Il est recommandé de ne pas choisir une version de java antérieure à Java 1.5 update 4 pour des raisons de sécurité.

III-C - Installation

III-C-1 - Installation automatique

Dans la plupart des cas vous pouvez lancer l'installation simplement en cliquant sur le lien : Lancer l'installation de freenet

Pour la dernière version qui fonctionne avec openjdk 6 et javaws

III-C-2 - Installation manuelle

Télécharger et lancer l'installeur :

wget -c -P /tmp https://freenet.googlecode.com/files/new_installer_offline_1440.jar -O new_installer_offline.jar

Puis :

java -jar /tmp/new_installer_offline.jar

Laissez-vous guider pour l'installation qui se déroule ensuite de la même manière dans les deux cas.

Choisir un chemin d'installation (par défaut dans votre répertoire home). Choisir les paquetages à installer (laissez tout sélectionné par défaut).

III-C-3 - Configuration

Si tout se passe bien, un navigateur web a dû s'ouvrir sur une page d'accueil. Il faut se rendre sur l'assistant de démarrage Freenet en cliquant sur "Débuter sur Freenet" qui mène à http://127.0.0.1:8888/wizard/.

Répondre aux questions.

Se connecter à votre interface (node) : http://localhost:8888/

III-D - Lancement

Pour lancer Freenet :

bash /[chemin_du_dossier]/Freenet/run.sh start

Création du dossier pour y déplacer les fichiers de Freenet :

sudo mkdir /usr/local/freenet

Déplacez-y tous les fichiers du logiciel :

sudo mv /[chemein_du_dossier]/Freenet/* /usr/local/freenet/

Création du script de démarrage :

sudo ln -s /usr/local/freenet/run.sh /etc/init.d/freenet-new
sudo update-rc.d freenet-new defaults

Modification de ce script pour qu'il fonctionne avec l'utilisateur Freenet :

sudo nano /usr/local/freenet/run.sh

Modification de la ligne ~45 :

#RUN_AS_USER=

devient

RUN_AS_USER=freenet

Test & lancement du daemon freenet :

/etc/init.d/freenet-new start

III-D-1 - Configurer le parefeu de votre machine (et/ou de votre box)

Chaque node a un port différent. Pour connaître le port à ouvrir rendez-vous en bas de la page : http://127.0.0.1:8888/connectivity/ Vous trouverez la liste des ports utilisés par les différents services.

Exemple
: Ports utilisés par le noeud

- Darknet FNP : xxxxx/UDP (communication entre les noeuds ; vous voudrez sans doute ouvrir ce port dans votre firewall)

- Opennet FNP : xxxxx/UDP (communication entre les noeuds ; vous voudrez sans doute ouvrir ce port dans votre firewall)

- FProxy: 8888/TCP (cette interface web)

- FCP : 9481/TCP (pour les clients comme Frost et Thaw)

- TMCI: 2323/TCP (interface simple en ligne de commande, à la telnet)

Ouvrir le port udp correspondant (xxxxx dans l'exemple) et éventuellement le router vers votre machine.

III-D-2 - Gestion des connexions au Darknet

La gestion des connexions au Darknet se fait sur la page http://localhost:8888/darknet/ :

- Le bloc "Mes amis" liste tous les noeuds que le vôtre connaît ainsi que l'état de la connexion.

- Le bloc "Ma Référence" contient le bloc de texte qui identifie votre noeud et permettra à un autre de se connecter à lui. vous devez donner ce bloc de texte à la personne avec qui vous voulez vous connecter.

- Le bloc "Ajouter un noeud" permet d'ajouter à votre noeud la référence d'un autre soit en faisant un copier/coller, soit en donnant l'URL d'un fichier qui la contient, soit en lui donnant directement ce fichier.

Pour établir une connexion avec quelqu'un, vous devez lui donner votre référence et ajouter la sienne à votre noeud. Le plus simple est de faire un copier-coller de votre référence sur http://dark-code.bulix.org et de noter l'adresse de la page obtenue. Vous pourrez ainsi donner un lien simple plutôt qu'un bloc de code indigeste.

Faire un copier coller de « Ma référence » (dans l'onglet "Amis") sur http://dark-code.bulix.org

La référence doit être copiée TELLE QUELLE. Elle sera inutile si elle est modifiée.

Cliquer sur la référence type #xxxxxxxx et enregistrer l'adresse de la page que vous donnerez à vos amis.

III-D-2-a - Connexion à des inconnus

Si vous ne connaissez personne utilisant Freenet, le mode opennet se chargera de vous connecter à des inconnus. Il est inutile de se connecter Darknet à des inconnus : cela n'améliore ni la sécurité, ni les performances, et cela nuit au réseau.

III-D-3 - FROST

Frost est un logiciel qui utilise un nœud Freenet pour remplir deux fonctions : l'échange de fichiers et la discussion (forum).

III-D-3-a - Installation

Se placer dans le répertoire /Freenet/frost

cd /[chemin_du_dossier]/Freenet/frost

Rendre exécutable les fichiers .sh

chmod +x *.sh

III-D-3-b - Si vous utilisez Beryl

III-D-3-c - Si vous utilisez Beryl

Vous devez ajouter une ligne dans le fichier frost.sh situé dans votre repertoire /Freenet/frost :

Éditer le fichier: /[chemein_du_dossier/Freenet/frost/frost.sh.

Ajouter :

export AWT_TOOLKIT="MToolkit" avant la ligne java -jar frost.jar "$@"

Votre fichier frost.sh devrait ressembler à ceci :

[...]
cd $PROGDIR
export AWT_TOOLKIT="MToolkit"
java -jar frost.jar "$@"
[...]

III-D-3-d - Lancer Frost

Lorsque vous lancez Frost pour la première fois, il ne connaît qu'un nombre limité de "Boards" (forums de discussion) et aucun fichier. La liste des boards est publiée régulièrement et viendra s'ajouter automatiquement à la liste des boards que vous pouvez consulter.

Il existe un certain nombre de boards francophones où vous pourrez discuter, demander de l'aide, annoncer vos insertions (fichiers ou freesites), etc. Si aucune board ne traite du sujet que vous souhaitez aborder, il vous est bien sûr possible de la créer.

Pour lancer Frost :

bash /[chemin_du_dossier]/Freenet/frost/frost.sh

III-E - Désactiver Freenet

Il suffit de lancer la commande :

bash /[chemin_du_dossier]/Freenet/run.sh stop

Pour le réactiver :

bash /[chemin_du_dossier]/Freenet/run.sh start

III-F - Désinstallation

Dans un terminal saisissez :

bash /[chemin_du_dossier]/Freenet/run.sh stop
sudo update-rc.d freenet-new remove

*Vérifiez le chemin d'installation de Freenet

Éditez la crontab :

crontab -e

et supprimez la ligne liée à Freenet qui commence par :

@reboot "/home/islesv/Freenet/run.sh" start 2>&1 >/dev/null #FREENET AUTOSTAR$

Par défaut l'éditeur crontab est nano, quittez en faisant CTRL+O (lettre O), puis CTRL+X.

Il ne vous reste plus qu'à supprimer le dossier Freenet dans votre répertoire personnel (~$) en ayant pris soin de récupérer d'éventuels fichiers (comme dans
downloads
par exemple)

III-G - Voir aussi

- Site officiel de Freenet (en)

- Freenet Doc (fr)

- Forum de support de Freenet Doc (fr)

- La discussion sur le Forum

- Wiki officiel de Freenet (en)(fr)

- Freenet Doc (fr)