[TUTO] Auto-héberger un noeud DUNITER sous Debian/Ubuntu

Rédigé par citizenz - - 15 commentaires
Article mis à jour le 21/11/17.
Reprenons ce que nous dit https://yeuxdelibad.net/Blog/?d=2017/11/08/16/00/51-debuter-avec-duniter-1-puis-heberger-un-noeud :
Pour rappel : Duniter est un logiciel. Son but est de permettre la production d'une nouvelle valeur numérique (ou électronique) ayant toutes les caractéristiques d'une « monnaie libre ». Nom de code de cette nouvelle valeur : la Ğ1 (prononcez « June », \ʒɥn\). La Ğ1 est désormais bien réelle : les toutes premières unités ont été créées le 8 mars 2017, et de nouvelles sont produites chaque jour par ses membres.

Le petit tuto ci-dessous reste non exhaustif voir même "simpliste" et n'aborde pas l'idée, le projet ou la philosophie de Duniter, de la Ğ1, etc. Il rappelle simplement les différentes étapes d'installation d'un "nœud" Duniter sous Debian/Ubuntu qui permettra de participer aux calculs nécessaires aux échanges de Ğ1.

J'utilise un PC sous Ubuntu 16.04 64 bits à la maison (auto-hébergé).
Connexion ADSL2 : Freebox V6 (+/- 7 MB/s)
PC : Intel i5, RAM 8 GB, SSD 120 GB

C'est parti :

a - On télécharge le paquet Debian (Debian/Ubuntu, ...) (version à vérifier sur le github Duniter ) :
$ wget https://github.com/duniter/duniter/releases/download/1.6.13/duniter-server-v1.6.13-linux-x64.deb

b - On installe le serveur Duniter :
$ sudo dpkg -i duniter-server-v1.6.13-linux-x64.deb

c - On génère la clé :
$ duniter wizard key

Réponse aux questions :
------Modify you keypair? (y/N) y
------Key's salt : mettez ici un mot de passe, une phrase, ce que vous voulez...
------Key's password : mettez ici un mot de passe

d - On configure le réseau :
$ duniter wizard network

Réponse aux questions :
---IPv4 interface : déplacez-vous, le cas échéant avec les flèche du clavier pour choisir la bonne adresse Interne (Privée) et validez. Sur mon réseau local (MAISON), je suis connecté sur ma Freebox V6 en DHCP fixe. En l'occurrence, mon adresse IP internet est : 192.168.0.75
---IPv6 interface : déplacez-vous dans la liste avec les flèches du clavier pour choisir l'adresse et validez. Choisissez "none" si vous n'avez pas d'IPv6.
---Port : 10901
---Remote IPv4 : ici, on vous demande votre adresse IP publique (avec ma Freebox, c'est du type 82.xxx.xxx.xxx)
---Remote port : 10901
---Does this server has a DNS name? y ou n (répondez "y" si vous voulez héberger le nœud sur un serveur possédant un nom de domaine. Exemple : g1.spacejerk.fr)

e - On lance la synchronisation :
$ duniter sync g1.duniter.org 443
Prenez votre mal en patience, ça peut être assez long (20 minutes ou +..., selon votre connexion et votre matériel)

f - On lance le serveur :
Moi, je lance le serveur avec l'interface web, plus pratique :
$ duniter webstart --webmhost 192.168.0.75
Remarquez ici que je rajoute un argument à la commande duniter webstart : "--webmhost" me permet de spécifier l'adresse IP privée de mon réseau interne Freebox
Vous aurez alors accès à votre "interface web" à cette adresse : http://MON-DOMAINE:9220 ou bien http://MON-IP:9220

g - N'oubliez pas d'ouvrir le port suivant dans votre firewall (si vous en avez un) :
10901/tcp = serveur

g bis - Si comme moi votre Freebox est confgurée en mode "routeur", il faut faire une redirection de ports vers votre IP privée (10901)

Attention : l'ouverture du port 9220 sur la box ou le firewall rend l'administration Duniter disponible à *tout utilisateur extérieur* et il devient extrêmement facile de dérober la clé privée si vous n'avez pas de protection supplémentaire (YunoHost, restriction d'accès par IP, ...)

Maintenant se pose la question : comment se connecter "proprement" à l'interface web du nœud, sans ouvrir le port 9220 ? elois sur le forum Duniter nous donne une très bonne astuce à base de SSH :
ssh -L PORT_LOCAL:localhost:9220 user@ip -p SSH_PORT

Ce qui donnerait chez moi, depuis mon PC maison :
ssh -L 8999:localhost:9220 citizenz@MON_IP -p 5001

Puis on tape l'adresse suivante dans son navigateur préféré :
http://localhost:8999

Et zou ! On arrive directement sur l'espace web d'admin du nœud ! C'est magique ! :D

h - S'inscrire sur CESIUM
Cesium est une application vous permettant de gérer votre compte en monnaie libre Ğ1.
URL : https://g1.duniter.fr 
Il va falloir créer un compte. C'est nécessaire pour être inscrit dans le registre public du Ğ1. Vous créerez en même temps un "porte-feuille".
Remplissez complètement les infos demandées dans votre compte.
/!\ Retenez bien votre identifiant secret et votre mot de passe, essentiels pour vous connecter.
Vous devez créez un compte "membre" pour pouvoir plus tard participer au dividende universel....

N.B. : En rentrant ses propres identifiant et mot de passe de membre, on relie le nœud à sa clé publique.

Pour toute info et complément, je vous renvoie vers plusieurs liens :

Proposez-vous des mentions légales sur votre site web ?

Rédigé par citizenz - - 10 commentaires
Suite aux déboires de l'association linuxfr, je me suis re-penché sur la question des mentions légales à faire figurer sur un site web et qui plus est, sur un blog.
Sur cette page (https://www.notuxedo.com ), on peut trouver son bonheur à propos de ce thème, avec nombre de détails et d'explications très claires (jargon juridique traduit) et des réponses aux questions les plus courantes :
- qui doit afficher des mentions légales ?
- quelles informations indiquer ?
- personne physique, personne morale, professionnel, amateur,...
- propriété intellectuelle
- données personnelles
- limitation de responsabilité
- commentaires sur un blog ?
- où faire figurer les mentions légales
- ...
Je ne vous ferai pas l'affront d'aller plus loin dans le détail n'ayant aucune compétence en la matière.

Après réflexion, je me suis rendu compte que je n'étais pas du tout dans les règles avec ce présent blog.
En cherchant un peu, je suis tombé sur un lien qui m'a "sauvé la vie" : un générateur de mentions légales, précis, complet.
Il suffit d'entrer ses informations : noms, adresse, adresse de l'hébergeur, etc. Vous recevrez gratuitement par e-mail votre texte (formaté en HTML avec titres et paragraphes).

Cela est fait pour moi depuis ce matin et en ligne sur ce site . Plutôt pratique.

Au final, cela m'a aussi permis une petite réflexion sur la licence d'utilisation du site et j'ai choisi de placer citizenz.info sous licence C.C. By-NC-SA 4.0  pour le site (sauf mentions contraires).

WebDAV, Nginx et XFCE : accéder à ses médias en ligne facilement

Rédigé par citizenz - - 2 commentaires

WebDAV c'est quoi ? Laissons faire les présentations par le Wiki Ubuntu :

WebDAV, en entier : Web-based Distributed Authoring and Versioning, est un protocole déjà ancien (1996) et curieusement peu connu. Il permet pourtant une chose essentielle : écrire sur le Web, au lieu de seulement surfer (c'est-à-dire seulement lire).
C'est un protocole ouvert, le W3C (organisme qui "normalise le web") en a confié le développement à l'IETF qui avait déjà normalisé HTTP.
Pour résumer, WebDAV est une extension du HTTP. Au delà des GET et POST bien connus, WebDAV rajoute les verbes PUT, DELETE, COPY, PROPFIND, etc. Pour les curieux, la norme est là : http://tools.ietf.org/html/rfc2518. Étant une simple extension au protocole HTTP, WebDAV fonctionne dans à peu près toutes les situations où la navigation n'est pas bloquée.

Ceci étant dit, j'avais besoin de configurer un accès web pour les fichiers vidéos situés sur mon serveur. Il existe pléthore de solutions de streaming etc. mais ça n'est pas ce que je souhaitais. L'idéal ? Ouvrir tous mes médias directement depuis mon "Explorateur de fichiers", Thunar en l’occurrence puisque je suis sous XFCE.

Je n'ai pas été chercher bien loin et je me suis souvenu de WebDAV, que j'avais déjà utilisé "rapidement" il y a quelques temps.

Objectifs ? Configurer Nginx avec WebDAV et pouvoir accéder tranquillement à mes fichiers depuis mon bureau. C'est parti.

NGINX

Pour configurer Nginx rien de bien compliqué. Il vous faut néanmoins et avant tout installer un nouveau paquet sur votre serveur afin d'utiliser WebDAV:

$ sudo apt install nginx-extras

Puis il faut créer l'hôte virtuel Nginx. J'ai choisi d'utiliser un domaine du type media.mondomaine.fr pour l'exemple. On va donc créer un fichier comme suit :

$ sudo vim /etc/nginx/conf.d/media.mondomaine.fr.conf

Dans ce fichier, nous allons placer les éléments suivants :

server {
        listen 80;
        server_name media.mondomaine.fr;
        root /CHEMIN/MONREPERTOIRE/FICHIERS; # ----> A CHANGER avec le bon chemin de votre répertoire
        index index.php index.html index.htm;
        access_log /var/log/media-access.log combined;
        error_log /var/log/media-error.log error;

        location / {
                try_files $uri $uri/ /index.html;
                client_body_temp_path   /temp;
                dav_methods             PUT DELETE MKCOL COPY MOVE;
                dav_ext_methods         PROPFIND OPTIONS;
                create_full_put_path    on;
                dav_access              user:rw group:rw all:rw;
                autoindex               on;
                auth_basic "Mot de passe :";
                auth_basic_user_file "/etc/nginx/passwd/media_pass";
}

        # PARTIE HTTPS
        listen 443 ssl http2; # managed by Certbot
        ssl_certificate /etc/letsencrypt/live/media.mondomaine.fr/fullchain.pem; # managed by Certbot ---> MONDOMAINE.FR A CHANGER
        ssl_certificate_key /etc/letsencrypt/live/media.mondomaine.fr/privkey.pem; # managed by Certbot ---> MONDOMAINE.FR A CHANGER
        include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
        ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

        if ($scheme != "https") {
                return 301 https://$host$request_uri;
        } # managed by Certbot

}

La première partie du fichier est "traditionnelle...

La deuxième partie Location / est plus spécifique. On peut y voir la configuration propre à WebDAV : dav_methods, dav_ext_methods, dav_access , ...

J'ai de plus protégé l'accès à mon répertoire avec un accès restreint, tout simple et très traditionnel, en créant premièrement un nouveau répertoire /et/nginx/passwd :

$ sudo mkdir -p /etc/nginx/passwd

... puis :

$ sudo htpasswd -c /etc/nginx/passwd/media_pass mumbly

Il n'y a plus qu'à rentrer le mot de passe associé à l'utilisateur mumbly. Si httpasswd ne fonctionne pas, installer le paquet suivant :

$ sudo apt install apache2-utils

Puis j'ai configuré une partie HTTPS avec certbot et le plugin --nginx. Je vous renvoie à mon post à ce sujet .

Une fois fait, on teste d'abord la config de Nginx avec :

$ nginx -t
Si tout est ok, on redémarre Nginx :
$ sudo /etc/init.d/nginx restart

Reste la partie "Bureau" sous XFCE et Thunar et ici rien de difficile. J'ai configuré cet accès sur un PC équipé de Xubuntu. Peut-être y aura t-il une "autre config" sous un autre système, je n'ai pas testé ailleurs.

Avec Thunar, on peut rentrer directement - dans la barre d'adresse - l'adresse de notre répertoire WebDAV de la manière suivante :

davs://mumbly@media.mondomaine.fr/FICHIERS # à adapter avec votre VRAI chemin ...

Voila ce que ça donne en "réel" sur mon PC :

Firewall : utiliser UFW sur Scaleway

Rédigé par citizenz - - 2 commentaires
Scaleway  vous connaissez ? C'est le service de "Cloud Computing" lancé par Online en 2015 à base d'instances reposant sur des serveurs dédiés, et non des machines virtualisées.
Quand on arrive la première fois sur Scaleway, c'est la surprise et l'étonnement : il faut un peu de temps pour s'habituer aux volumes, snapshots, images, etc.
Vous avez aussi un onglet sécurité qui vous permet de définir des règles pour le firewall (Default security group).
A savoir également que par défaut les ports SMTP sont fermés pour éviter tout soucis de spam. Il faut expressément demander au support de les ouvrir.

Concernant le firewall, vous pouvez évidemment choisir de ne pas utiliser le service offert par Scaleway et utiliser par exemple UFW.
PROBLÈME : si vous activez UFW sur votre serveur Scaleway : ça freeze illico-presto !
Mais il y a une astuce simple pour y remédier (exemple pour Debian / Ubuntu ...), en 5 étapes :

1 - On change la politique INPUT par défaut à ACCEPT et non plus DROP
$ sudo vim /etc/default/ufw
DEFAULT_INPUT_POLICY="ACCEPT"

2 - On ajoute une règle DROP-ALL à la fin du fichier suivant, juste avant la ligne finale COMMIT :
$ sudo vim /etc/ufw/after.rules
-A ufw-reject-input -j DROP

3 - On désactive le logging d'UFW. Scaleway n'aime pas trop :
$ sudo ufw logging off

4 - On n'oublie surtout pas d'activer SSH pour pouvoir accéder au serveur :
$ sudo ufw allow ssh

5 - enfin on active UFW :
$ sudo ufw enable

Vous pouvez activer d'autres règles évidemment... je vous laisse sur mon autre post pour tout cela.
Et hop !
Fil RSS des articles