Duniter sur Yunohost derrière une box privatrice (type livebox)

Ce tutoriel vient en complément de celui de Moul, Installation d’un nœud Duniter à l’aide de YunoHost, pour répondre au problème spécifique apporté par l’utilisation d’un modem privateur tel que la livebox.

Lisez les deux tutoriels avant de vous lancer.

Si pour une raison ou une autre vous n’avez guère le choix de votre FAI (Fournisseurs d’Accès à Internet), parce que vous vous situez en zone blanche par exemple et que vous devez composer avec un modem privateur, mais souhaitez tout de même auto-héberger un noeud Duniter à l’aide de Yunohost, vous pourriez trouver des éléments d’aide dans le tutoriel suivant.
Si vous avez le choix, c’est peut être l’occasion de changer de FAI et de se poser la question des FAI membres de la Fédération French Data Network qui ont une politique favorable à l’auto-hébergement : https://yunohost.org/#/isp_fr

Ce tutoriel est écrit suite à mon expérience d’installation d’un noeud Duniter dans Yunohost 2.5 sur un Raspberry Pi 3 (RPi) sur lequel est installé Raspbian Jessie Lite qui se trouve derrière une Livebox 3 (Play) qui ressemble à ça…
https://upload.wikimedia.org/wikipedia/commons/thumb/b/b9/Livebox_Play_en_exposition.jpg/220px-Livebox_Play_en_exposition.jpg

Avant même d’installer Yunohost, comme indiqué ici https://yunohost.org/#/isp_box_config_fr ,vous devez ouvrir les ports suivant de votre livebox :
TCP :

Web : 80 (HTTP), 443 (HTTPS)
SSH : 22
XMPP : 5222 (clients), 5269 (serveurs)
Courriel : 25, 465 (SMTP), 587 (SMTP avec chiffrement), 993 (IMAP)
DNS : 53

UDP:

DNS : 53

Il faut que votre RPi soit allumé et connecté à votre livebox. La livebox lui attribut une adresse IP qu’il va falloir trouver.
Accédez à votre livebox en tapant son adresse IP dans votre navigateur, par défaut c’est http://192.168.1.1/ .
Trouvez l’adresse IP de votre RPi sur l’interface de votre livebox. Dans l’image ci dessous, j’ai déjà identifié et renommé mon RPi en Yunohost (le votre n’aura sans doute pas encore ce nom là).


[Vous pouvez aussi brancher un écran sur votre RPi, vous identifier et taper ifconfig.]

Ensuite, pour accéder à l’interface administrateur de votre livebox, entrez le mot de passe qui, par défaut, se compose des 8 premiers caractères de la clé de sécurité (celle que vous utilisez pour le wifi).

Rendez-vous d’abord dans configuration avancée/DHCP.
Descendez sur « Baux DHCP statiques » et sélectionnez dans le menu déroulant votre RPi. Les champs « adresse IP » et « adresse MAC » vont se compléter automatiquement. Cliquez sur ajouter. Ainsi, votre RPi aura toujours la même adresse IP en local, même après un reboot du RPi ou de la livebox.

Rendez-vous dans le second onglet, configuration avancée / NAT/PAT.
Vous allez devoir entrer une règle pour chaque port.
Donné un nom à cette règle, inscrivez le port qui correspond dans « port internet » et « port externe », puis sélectionnez votre RPi dans le menu déroulant « appareil » et cliquez enfin sur ajouter. Ça doit ressembler à ça :


Ensuite, à gauche, rendez-vous dans « Configuration pare-feu ». Cochez « faible » et cliquez sur « enregistrer ».

Redémarrez votre livebox et vous pouvez installer Yunohost.

Si vous cherchez comment installer Yunohost, tout est expliqué très simplement ici en français : https://yunohost.org/#/install_on_raspberry_fr . Cependant, avant de vous lancer dans l’étape 4 de post-installation (https://yunohost.org/#/postinstall_fr), que vous ayez un nom de domaine à vous ou que vous profitiez des noms de domaine offert par Yunohost, vous allez devoir résoudre le problème d’adresse IP dynamique. Orange ne propose pas d’adresse IP fixe sur Internet.
Si vous possédez un nom de domaine chez OVH, vous pouvez suivre ce tutoriel pour profiter de leur service Dynhost : https://docs.ovh.com/fr/fr/web/domains/utilisation-dynhost/ (je ne cautionne pas leur choix de « Les outils à utiliser » non libre, je vous propose un autre outil libre ci-après).
Si vous souhaitez profiter des noms de domaine offert par Yunohost ou que vous possédez un nom de domaine chez un concurrent d’OVH, vous pouvez suivre ce tutoriel : https://yunohost.org/#/dns_dynamicip_fr
Pour le choix du client de DNS dynamique, tout comme dans la documentation de Yunohost, je vous conseille d’installer « ddclient » dans votre RPi. Je vous propose ce dont j’ai moi eu besoin mais vous pouvez vous aider de ce tutoriel si besoin : https://blog.developpez.com/brutus/p6316/ubuntu/configurer_dynhost_ovh_avec_ddclient .

sudo apt-get install ddclient

Répondez aux questions sans trop vous attardez car vous allez modifier le fichier de configuration de ddlclient en tappant ensuite :

sudo nano /etc/ddclient.conf

Voici comment est configuré mon fichier ddclient.conf (j’utilise le DynHost de OVH) :

# Configuration file for ddclient generated by debconf
#
# /etc/ddclient.conf

daemon=300
pid=/var/run/ddclient.pid
ssl=yes
protocol=dyndns2
use=web, web=checkip.dyndns.com/, web-skip='IP Address'
server=www.ovh.com
login=votre login
password='votre mot de passe'
votre.nom.de.domaine.fr

daemon=300
pid=/var/run/ddclient.pid
ssl=yes
protocol=dyndns2
use=web, web=checkip.dyndns.com/, web-skip='IP Address'
server=www.ovh.com
login=votre login
password='votre mot de passe'
duniter.votre.nom.de.domaine.fr

Vous devez bien sûr adapter les éléments suivants à votre situation :
server=www.ovh.com (cela dépendra de votre fournisseur de DynDNS)
login=votre login
password=‹ votre mot de passe ›
votre.nom.de.domaine.fr

Si vous souhaitez utiliser votre Yunohost pour autre chose que Duniter, vous avez besoin de deux noms de domaine, un spécifique pour Duniter et un pour les autres applications. J’ai choisi l’option du sous domaine, d’où
votre.nom.de.domaine.fr et duniter.votre.nom.de.domaine.fr
mais vous pourriez très bien avoir deux nom de domaine très différents
votre.nom.de.domaine.pour.autres.apps.fr et votre.nom.de.domaine.pour.duniter.fr

CTRL+O pour enregistrer
CTRL+X pour quitter nano

tapez enfin

sudo reboot

Si votre FAI vous offre une adresse IP fixe (autre qu’orange) et que vous possédez un nom de domaine, vous allez devoir configurer la zone DNS de votre/vos (sous)nom de domaine pour rediriger vos noms de domaines vers votre adresse IP fixe à l’aide des tutoriels suivants :
https://yunohost.org/#/dns_config_fr
https://yunohost.org/#/dns_subdomains_fr
avec l’exemple de OVH : https://yunohost.org/#/OVH_fr

Vous pouvez passer à la post installation de Yunohost en précisant votre nom de domaine principal.
N’oubliez pas d’ajouter ensuite le nom de domaine spécifique à Duniter dans l’interface admin de Yunohost avant d’installer Duniter soit par l’interface graphique soit en ligne de commande comme l’explique Moul dans son tutoriel : Installation d’un nœud Duniter à l’aide de YunoHost
N’oubliez pas que les mises à jour se font, pour l’heure, uniquement en ligne de commande.

On approche de la fin.
Vous pouvez déjà accéder à votre RPi et donc à votre noeud Duniter grâce à votre nom de domaine depuis l’extérieur mais chez vous, la livebox ne vous le permet pas (ben oui, elle est privatrice de liberté). Vous ne pouvez y accéder que par l’adresse IP local, celle que vous avez rendu fixe dans l’interface admin de votre box. La livebox ne permet pas non plus de redirection DNS (la SFR box le permet apparement, voir https://yunohost.org/#/dns_local_network_fr ), donc vous devez le faire dans chaque ordinateur de votre maison (attention, il faudra enlever cette redirection quand vous sortez de chez vous avec cet ordinateur!!!). Dans votre ordinateur tournant sous Linux (ordipoche sous android aussi), vous devez modifier le fichier /etc/hosts :

sudo gedit /etc/hosts

et y ajouter les lignes suivantes :

Adresse-IP-de-RPi votre.nom.de.domaine.fr 
Adresse-IP-de-RPi duniter.votre.nom.de.domaine.fr 

Enfin, une fois que vous accédez à votre noeud Duniter via votre navigateur, à l’adresse duniter.votre.nom.de.domaine.fr /webui (/webui est important)
rendez-vous dans Settings/Network et modifiez pour obtenir la configuration suivante (Vous pouvez choisir un autre local port) :

Cliquez sur « Save and Apply Network Settings »

Retournez dans l’interface d’admin de votre livebox à « configuration avancée/NAT/PAT » (rappel, on accède normalement à la livebox par l’adresse http://192.168.1.1/ )
et ajoutez le port local de Duniter à la liste précédente (cliquez sur « ajouter »):

Redémarrez la livebox
et le RPi :

sudo reboot

une fois reconnecté en SSH

duniter webrestart

Cette fois, c’est bon, votre noeud Duniter sera accessible et visible par le réseau.

[Si vous avez l’intention d’utiliser votre Yunohost aussi pour héberger vos emails, vous devez aussi suivre ces explications https://yunohost.org/#/isp_orange_fr .]

3 Likes

Il faudrait aussi un tuto pour la brique internet qui se connecte via le VPN, et plus généralement pour le VPN. Il existe https://freevpn.me/ qui permet de tester.

Comment faire pour que son noeud Ğ1 soit visible à travers un VPN ?

De manère générale ces tutos devraient enrichir le wiki Duniter, plutôt que de s’éparpiller sur le forum, afin de guider les nouveau entrants…

Voilà qui est fait.

A noter que des utilisateurs comme @greyzlii, @Candidesk8, @jytou ou encore @Moul ont déjà ajouté ou modifié du contenu (articles) puisque l’on a fait un tutoriel exprès pour modifier le blog moyennant un fork du dépôt, des modifications, puis finalement une pull request.

Alors lâchez-vous : faites des tutos !

2 Likes

ah ben comme ça je découvre le wiki. Merci.

J’ai ajouté ton tutoriel moi-même, car s’agissant du 1er tutoriel, cela requérait d’ajouter le menu « Wiki » sur la page d’accueil. Mais à part cela, l’ajout a été très simple et réalisé en 2 commits :

Le Wiki GitHub est a proscrire, car je préfère que les informations soient centralisées sur le site pour ne pas s’y perdre. Qui plus est une personne sachant éditer le wiki du site saura tout aussi bien proposer des billets de blog, ce qui permet aussi de l’animer.

2 Likes

Bonsoir,

@cgeek, @inso, @moul, @Thatoo
Est-ce que l’installation de l’application Duniter via l’interface web de Yunohost est longue ?
Voici plus de 15 min que j’ai le petit Pacman avec des messages du type :

2017-03-24T20:18:15+00:00 - e[36mdebuge[39m: Peer 4aCqwi is on same blockchain

J’installe sur un Raspberry Pi 3 derrière une Freebox v5 (ip fixe). J’ai acquis un nom de domaine.

Peut-être que j’ai commis une erreur par ailleurs…

Merci d’avance pour votre aide.

Benoît

Sur ĞTest ? Oui ça peut prendre une bonne heure actuellement, voire plus.

Mais d’ailleurs il se peut que ça bloque si tu utilises la dernière version (1.1.0 ) sur GTest, car elle n’est pas compatible. Il te faut la 0.9.3 sur GTest, ou la 1.1.0 sur Ğ1.

Ok, je ne m’inquiète pas (encore) alors :slight_smile:

Effectivement, l’application a fini par s’installer.

Par contre, je n’arrive pas ni à activer ni à lancer le service Duniter :rage:.

Je ne suis pas sur de ma version. J’ai installé en utilisant : https://github.com/duniter/duniter_ynh

@Beun par contre on a planté la blockchain gtest donc si tu es sur gtest c’est normal que ça n’avance pas. :slight_smile:
Mais si tu es sur g1 ça devrait le faire, je vais laisser les spécialistes yunohost te répondre là-dessus.

@cgeek, @jytou
Merci pour votre aide ! J’y suis !

Je prendrai un peu de temps pour enrichir le tutoriel de Thatoo : globalement, c’est plus simple d’installer avec la Freebox v5 que la LiveBox mais il y a une petite anomalie dans l’interface Free qui m’a fait perdre du temps.

1 Like

Hello,
J’essaie désespérément de synchroniser un nœud sur ma brique derrière une freebox, mais celui-ci ne semble pas voir les autres nœuds du réseau sauf le mien.
Duniter est à jour.
Les synchronisations avortent après une dizaine d’heures…(50%…)
<img src="/uploads/default/original/2X/1/16b702483e968094b0f795ec71f7303ec3b2fc13.png" width=""’(" height=« 200 »>
En ssh j’ai ça :

Si quelqu’un a une idée…

peux-tu tenter s’il te plaît de faire un

telnet g1.duniter.fr 443

Merci

C’est à dire…
Tu veux que j’essaie de synchroniser sur g1.duniter.fr 443 ?

non
Je veux vérifier avec telnet que tu arrives bien à contacter depuis ton serveur le serveur sur lequel se synchro (pour éliminer l’hypothèse d’un éventuel soucis réseau)

Et je fais quoi ?
je ne connais pas telnet…

tu as moyen d’avoir accès à un terminal ?
Si oui, tape directement la commande que je t’ai donnée

Peux tu alors tenter un

duniter sync g1.duniter.fr 443

?
Merci