Skip to content
Snippets Groups Projects
Commit 3a2e845b authored by Matograine's avatar Matograine Committed by Hugo Trentesaux
Browse files

Add tutorial to install miror through Docker. Reorg files to separate firewall...

Add tutorial to install miror through Docker. Reorg files to separate firewall tuto from nginx tuto.
parent 4ca28b05
No related branches found
No related tags found
1 merge request!26MR de relecture de documentation
...@@ -17,7 +17,7 @@ insert_anchor_links = "right" ...@@ -17,7 +17,7 @@ insert_anchor_links = "right"
# Duniter v2 # Duniter v2
Duniter v2 est une réécriture de Duniter v1 avec le FrameWork Substrat avec l’objectif de migrer la monnaie Ğ1. Duniter v2 est une réécriture de Duniter v1 avec le FrameWork Substrate avec l’objectif de migrer la monnaie Ğ1.
Ce nouveau logiciel est actuellement en cours de développement et doit être testé. Ce nouveau logiciel est actuellement en cours de développement et doit être testé.
Vous trouverez ici, la documentation utilisateur extraite du dépôt Git de Duniter ainsi que des explications générales. Vous trouverez ici, la documentation utilisateur extraite du dépôt Git de Duniter ainsi que des explications générales.
......
+++
title="Configurer le parefeu"
# date = 2024-10-18
weight = 20
sort_by = "weight"
insert_anchor_links = "right"
# [taxonomies]
# authors = ["Matograine",]
+++
{% note(type="warning", markdown="true") %}
**Document de travail.** Ce document n'a pas été validé et ne doit pas être diffusé en dehors du groupe des forgerons et des développeurs
{% end %}
# Comment configurer le parefeu pour un noeud miroir
## Ouvrir les ports
Les "ports" sont des interfaces numérotées qui permettent de communiquer avec l'ordinateur.
Par analogie, c'est comme si votre ordinateur avait des milliers de portes pour y entrer.
Il peut aller contacter d'autres ordinateurs en ouvrant des portes (*ports sortants*) pour envoyer des messagers.
Mais on ne veut pas que des messagers extérieurs entrent dans l'ordinateur sans contrôle.
Donc toutes les portes doivent être fermées par défaut, sauf celles derrière lesquelles il y a un gardien (*ports entrants*) (les "gardiens" étant des logiciels qui utilisent les demandes qui entrent par un certain port).
Fin de l'analogie.
Les ports sont ouverts ou fermés grâce à un logiciel qu'on appelle un *pare-feu* (ou *firewall*). Nous allons utiliser `ufw`, qui est un des plus faciles d'utilisation.
Dans cet exemple (typique d'un noeud miroir simple), nous allons configurer votre ordinateur pour :
- Fermer tous les ports par défaut
- ouvrir le port SSH (22 par défaut, mais vous l'avez peut-être changé)
- ouvrir les ports 80 et 443, qui correspondent aux communications http et https
- ouvrir le port 30333, qui est le port nécessaire à la communiation peer-to-peer de votre noeud (vous avez peut-être modifié cette valeur)
Cette partie trouve sa source dans [cet article](https://www.digitalocean.com/community/tutorials/how-to-set-up-a-firewall-with-ufw-on-ubuntu-20-04-fr) plus complet, mais avec beaucoup d'informations inutiles pour nous.
Commençons par installer ufw :
```bash
sudo apt-get update ; sudo apt-get install ufw
```
Puis bloquons tous les ports entrants, et autorisons les ports sortants :
```bash
sudo ufw default deny incoming
sudo ufw default allow outgoing
```
Puis ouvrons le port SSH:
```bash
## port par défaut
sudo ufw allow 22
## ou port personnalisé (ici 49999 en exemple)
sudo ufw allow 49999
```
Maintenant que le port SSH est ouvert, on peut activer ufw.
**Ne faites pas ceci avant d'avoir ouvert votre port SSH, sinon vous perdrez tout accès à votre serveur et vous devrez demander une réinstallation à votre fournisseur, puis recommencer depuis le début.**
```bash
sudo ufw enable
```
Enfin, ouvrons les autres ports :
```bash
## Les ports web
sudo ufw allow 80
sudo ufw allow 443
## La communication entre noeuds (vous avez peut-être une valeur personnalisée)
sudo ufw allow 30333
```
Pour vérifier les règles, utilisez `ufw status` :
```bash
sudo ufw status
```
On doit obtenir :
```bash
Status: active
To Action From
-- ------ ----
49999 ALLOW Anywhere
30333 ALLOW Anywhere
80 ALLOW Anywhere
443 ALLOW Anywhere
49999 (v6) ALLOW Anywhere (v6)
30333 (v6) ALLOW Anywhere (v6)
80 (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)
```
Si vous souhaitez supprimer une règle, par exemple pour fermer le port 80, vous allez dire à ufw de supprimer la règle 'allow 80'. Ceci se fait ainsi :
```bash
sudo ufw delete allow 80
```
\ No newline at end of file
...@@ -28,5 +28,6 @@ A la date du 28 juin 2024, suivant les informations disponibles et obtenues aupr ...@@ -28,5 +28,6 @@ A la date du 28 juin 2024, suivant les informations disponibles et obtenues aupr
### Modes d'installation ### Modes d'installation
- [Installer et configurer un noeud miroir sous Debian](@/wiki/doc-v2/installer/miroir/debian.md) pour fournir un point d'accès à la blockchain. - [Installer et configurer un noeud miroir sous Docker](@/wiki/doc-v2/installer/miroir/docker.md)
- [Installer et configurer un noeud miroir avec Yunohost](@/wiki/doc-v2/installer/miroir/yunohost.md) pour fournir un point d'accès à la blockchain. - [Installer et configurer un noeud miroir sous Debian](@/wiki/doc-v2/installer/miroir/debian.md)
- [Installer et configurer un noeud miroir avec Yunohost](@/wiki/doc-v2/installer/miroir/yunohost.md)
...@@ -15,8 +15,6 @@ insert_anchor_links = "right" ...@@ -15,8 +15,6 @@ insert_anchor_links = "right"
# Comment configurer nginx pour un noeud miroir # Comment configurer nginx pour un noeud miroir
# Document en cours de rédaction
[TOC] [TOC]
## Pourquoi NginX ## Pourquoi NginX
...@@ -27,86 +25,16 @@ Nginx est plus récent et est moins consommateur en ressources sur l'ordinateur. ...@@ -27,86 +25,16 @@ Nginx est plus récent et est moins consommateur en ressources sur l'ordinateur.
Je le recommande si vous débutez dans ce domaine. Je le recommande si vous débutez dans ce domaine.
Si vous avez vos habitudes avec Apache, ou si vous installez votre noeud où Apache est déjà utilisé, utilisez la documentation concernant Apache. Apache et NginX ne peuvent pas être utilisés en même temps. Si vous avez vos habitudes avec Apache, ou si vous installez votre noeud où Apache est déjà utilisé, utilisez la documentation concernant Apache. Apache et NginX ne peuvent pas être utilisés en même temps.
## Ouvrir les ports ## Configurer le parefeu
Les "ports" sont des interfaces numérotées qui permettent de communiquer avec l'ordinateur.
Par analogie, c'est comme si votre ordinateur avait des milliers de portes pour y entrer.
Il peut aller contacter d'autres ordinateurs en ouvrant des portes (*ports sortants*) pour envoyer des messagers.
Mais on ne veut pas que des messagers extérieurs entrent dans l'ordinateur sans contrôle.
Donc toutes les portes doivent être fermées par défaut, sauf celles derrière lesquelles il y a un gardien (*ports entrants*) (les "gardiens" étant des logiciels qui utilisent les demandes qui entrent par un certain port).
Fin de l'analogie.
Les ports sont ouverts ou fermés grâce à un logiciel qu'on appelle un *pare-feu* (ou *firewall*). Nous allons utiliser `ufw`, qui est un des plus faciles d'utilisation.
Nous allons configurer votre ordinateur pour :
- Fermer tous les ports par défaut
- ouvrir le port SSH (22 par défaut, mais vous l'avez peut-être changé)
- ouvrir les ports 80 et 443, qui correspondent aux communications http et https, et qui sont gérés par NginX
- ouvrir le port 30333, qui est le port nécessaire à la communiation peer-to-peer de votre noeud (vous avez peut-être modifié cette valeur)
Cette partie trouve sa source dans [cet article](https://www.digitalocean.com/community/tutorials/how-to-set-up-a-firewall-with-ufw-on-ubuntu-20-04-fr) plus complet, mais avec beaucoup d'informations inutiles pour nous.
Commençons par installer ufw :
```bash
sudo apt-get update ; sudo apt-get install ufw
```
Puis bloquons tous les ports entrants, et autorisons les ports sortants :
```bash
sudo ufw default deny incoming
sudo ufw default allow outgoing
```
Puis ouvrons le port SSH:
```bash
## port par défaut
sudo ufw allow 22
## ou port personnalisé (ici 49999 en exemple)
sudo ufw allow 49999
```
Maintenant que le port SSH est ouvert, on peut activer ufw.
**Ne faites pas ceci avant d'avoir ouvert votre port SSH, sinon vous perdrez tout accès à votre serveur et vous devrez demander une réinstallation à votre fournisseur, puis recommencer depuis le début.**
```bash
sudo ufw enable
```
Enfin, ouvrons les autres ports :
```bash
## Les ports web
sudo ufw allow 80
sudo ufw allow 443
## La communication entre noeuds (vous avez peut-être une valeur personnalisée)
sudo ufw allow 30333
```
Pour vérifier les règles, utilisez `ufw status` :
```bash
sudo ufw status
```
On doit obtenir : Configurer le parefeu est nécessaire pour que l'extérieur puisse communiquer avec votre serveur.
```bash
Status: active
To Action From
-- ------ ----
49999 ALLOW Anywhere
30333 ALLOW Anywhere
80 ALLOW Anywhere
443 ALLOW Anywhere
49999 (v6) ALLOW Anywhere (v6)
30333 (v6) ALLOW Anywhere (v6)
80 (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)
```
Si vous souhaitez supprimer une règle, par exemple pour fermer le port 80, vous allez dire à ufw de supprimer la règle 'allow 80'. Ceci se fait ainsi : Si vous souhaitez mettre en place un reverse-proxy, suivez la documentation pour la [mise en place du parefeu]([documentation](@/wiki/doc-v2/installer/memo/configurer-parefeu.md)) en ouvrant les ports :
```bash
sudo ufw delete allow 80
```
- SSH (22 par défaut, mais vous l'avez peut-être changé)
- 80
- 443 si vous souhaitez mettre en place le chiffrement TLS
- 30333
## Installer et démarrer Nginx ## Installer et démarrer Nginx
......
...@@ -185,7 +185,7 @@ Si vous ne l'avez pas déjà fait, [installez Ğcli](@/wiki/doc-v2/installer/gcl ...@@ -185,7 +185,7 @@ Si vous ne l'avez pas déjà fait, [installez Ğcli](@/wiki/doc-v2/installer/gcl
Puis regardez si le noeud est accessible en local : Puis regardez si le noeud est accessible en local :
```bash ```bash
gcli -u wss://g1.mondomaine.net blockchain current-block gcli -u ws://localhost:9944 blockchain current-block
``` ```
on doit obtenir : on doit obtenir :
``` ```
......
+++
title="Temp"
# date = 2024-06-28
weight = 20
sort_by = "weight"
insert_anchor_links = "right"
# [taxonomies]
# authors = ["Matograine",]
+++
{% note(type="warning", markdown="true") %}
**Document de travail.** Ce document n'a pas été validé et ne doit pas être diffusé en dehors du groupe des forgerons et des développeurs
{% end %}
# Installer et configurer un noeud miroir avec Docker
Docker est une plateforme permettant de lancer certaines applications dans des conteneurs, ce qui permet une exécution plus sécurisée. [pour en savoir plus](@/wiki/doc-v2/installer/0_docker-kesako.md)
Ce document vous indique les différentes étapes pour installer un noeud miroir avec Docker.
Certaines étapes sont documentées sur des pages annexes : les prérequis et la mise en place du reverse-proxy.
Nous vous conseillons de prendre votre temps et de bien faire chaque étape.
[TOC]
## Prérequis
Ce tutoriel suppose que :
- vous savez utiliser la [ligne de commande](@/wiki/doc-v2/installer/prerequis.md#utiliser-la-ligne-de-commande)
- vous avez [un serveur installé sous Debian](@/wiki/doc-v2/installer/prerequis.md#louer-un-serveur)
- vous pouvez vous y connecter en [ssh](@/wiki/doc-v2/installer/prerequis.md#se-connecter-en-SSH-a-son-serveur)
- vous avez fait une [sécurisation de base du serveur](@/wiki/doc-v2/installer/prerequis.md#la-securite-de-base-du-serveur)
Connectez-vous à votre serveur en SSH.
## Installation de Docker
Nous allons commencer par installer Docker. Cette partie est basée sur [la documentation Docker](https://docs.docker.com/engine/install/debian/).
Mettre à jour le système :
```bash
sudo apt-get update ; sudo aptèget upgrade
```
Supprimer les paquets Docker éventuellement déjà installés :
```bash
for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done
```
Configurer les dépôts Apt de docker :
```bash
# Ajouter la clef PGP officielle de Docker:
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Ajouter le dépôt Docker à notre liste de dépôts :
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
```
Installer les paquets :
```bash
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
```
Vérifier l'installation en lançant l'image `hello-world` :
```bash
sudo docker run hello-world
```
## Création du dockerfile
Les images Docker utilisent une série de paramètres au lancement, qu'on configure dans un fichier *docker-compose*. Ce fichier doit se trouver dans un dossier spécifique.
Créer le dossier et le docker-compose :
```bash
cd ~
mkdir duniter
cd duniter
nano docker-compose.yml
```
La commande `nano` a ouvert un éditeur de texte. Copiez-y la configuration suivante :
```
version: "3.5"
services:
duniter-mirror:
image: duniter/duniter-v2s-gdev:latest
restart: unless-stopped
ports:
# Prometheus endpoint
- 9615:9615
# rpc
- 9944:9944
# p2p
- 30333:30333
volumes:
- data-mirror:/var/lib/duniter/
environment:
- DUNITER_CHAIN_NAME=gdev
- DUNITER_NODE_NAME=<my-node-name>
volumes:
data-mirror:
```
Remplacez `<my-node-name>` par le nom que vous souhaitez donner au noeud.
Cette configuration est minimale. Elle implique que les ports 9944 et 30333 du serveur soient ouverts. Si vous souhaitez l'adapter (par exemple en modifiant des ports), reportez-vous aux [variables d'environnement disponibles](https://git.duniter.org/nodes/rust/duniter-v2s/-/blob/master/docker/README.md)
## Lancement du service
Pour lancer le service, placez-vous dans le dossier qui contient le `docker-compose.yml` et lancez la commande suivante :
```bash
docker compose up -d
```
## Vérifier le bon fonctionnement du noeud
Si vous ne l'avez pas déjà fait, [installez Ğcli](@/wiki/doc-v2/installer/gcli) sur votre serveur.
Puis regardez si le noeud est accessible en local :
```bash
gcli -u ws://localhost:9944 blockchain current-block
```
on doit obtenir :
```
on ws://localhost:9944
finalized block 2208389
current block 2295714
```
## Configuration du pare-feu
Si vous ne prévoyez pas d'installer de reverse-proxy, suivez la [documentation](@/wiki/doc-v2/installer/memo/configurer-parefeu.md) pour ouvrir les ports :
- SSH (22 par défaut, mais vous l'avez peut-être changé)
- 9944
- 30333
Si vous souhaitez uniquement héberger un noeud miroir, vous pouvez vous arréter là.
## Configuration du reverse-proxy
Mettre en place un reverse-proxy vous permet par exemple, d'héberger plusieurs services sur le même serveur, par exemple un noeud Ğ1 à coté d'un noeud Ğdev. Il permet également de mettre en place le chiffrement des communications par TLS.
Reportez-vous à notre [documentation](@/wiki/doc-v2/installer/memo/configurer-nginx.md)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment