Comment installer Matrix Synapse Chat sur Ubuntu 20.04 LTS
Matrix est un nouvel écosystème de communication décentralisée en temps réel pour des services de messagerie instantanée et de VoIP fédérés ouverts. Il fournit des API HTTP JSON RESTful pour construire des serveurs de chat distribués et fédérés sans point de contrôle et de défaillance unique et fournit toutes les références pour les API.
Synapse est une implémentation du serveur domestique de matrix, créée par une équipe de matrix et écrite en Python/Twisted. Avec ce logiciel, nous pouvons mettre en œuvre la méthode matrix pour une communication décentralisée, nous pouvons créer notre serveur domestique et stocker toutes les infos personnelles des utilisateurs, l’historique des chats, créer la salle pour son propre usage, etc.
Dans ce tutoriel, nous allons te montrer comment installer et configurer le Matrix Synapse sur Ubuntu 20.04. Nous allons configurer le Matrix Synapse avec Nginx comme proxy inverse et sécuriser l’installation en utilisant le SSL fourni par Letsencrypt.
Conditions préalables
Pour ce guide, nous allons installer Matrix Synapse sur la dernière version d’Ubuntu 20.04 avec 1 Go de RAM, 25 Go d’espace disque libre et 2 CPU. Tu dois également avoir accès à ton serveur avec le privilège root sur celui-ci.
Ce que nous allons faire ?
- Installe Matrix Synapse
- Configurer Matrix Synapse
- Générer SSL Letsencrypt
- Configurer Nginx en tant que Reverse Proxy
- Configurer le pare-feu UFW
- Enregistrer un nouvel utilisateur
- Test de
Étape 1 – Installer Matrix Synapse
Tout d’abord, nous allons installer Matrix Synapse sur le dernier serveur Ubuntu 20.04. Pour ce faire, nous devons ajouter la clé GPG et le référentiel officiel de Matrix Synapse.
Avant d’aller plus loin, installe les dépendances de certains paquets à l’aide de la commande apt ci-dessous.
sudo apt install -y lsb-release wget apt-transport-https
Après cela, ajoute la clé GPG et le dépôt de Matrix Synapse pour le système basé sur Debian/Ubuntu.
sudo wget -qO /usr/share/keyrings/matrix-org-archive-keyring.gpg https://packages.matrix.org/debian/matrix-org-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/matrix-org-archive-keyring.gpg] https://packages.matrix.org/debian/ $(lsb_release -cs) main" |
sudo tee /etc/apt/sources.list.d/matrix-org.list
Mets maintenant à jour la liste de tous les référentiels de paquets et installe les paquets de Matrix Synapse.
sudo apt update
sudo apt install matrix-synapse-py3
Il te sera maintenant demandé de configurer le nom de domaine.
Saisis ton nom de domaine pour l’installation de Matrix Synapse et sélectionne‘OK‘ pour continuer.
Pour les ‘Statistiques de données anonymes’, choisis‘Non‘.
L’installation de Matrix Synapse est terminée.
Ensuite, démarre le service ‘matrix-synapse’ et ajoute-le au démarrage du système.
systemctl start matrix-synapse
systemctl enable matrix-synapse
Le service Matrix Synapse est en marche, vérifie-le à l’aide de la commande suivante.
systemctl status matrix-synapse
ss -plnt
Voici le résultat que tu obtiendras.
Par conséquent, Matrix Synapse fonctionne avec le port TCP par défaut ‘8008’ sur Ubuntu 20.04.
Étape 2 – Configurer Matrix Synapse
Dans cette étape, nous allons configurer les ‘adresses de liaison’ pour Matrix synapse, désactiver l’enregistrement sur notre serveur et configurer le secret partagé de l’enregistrement.
Avant d’aller plus loin, génère le secret d’enregistrement de Matrix Synapse à l’aide de la commande suivante.
cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1
Tu obtiendras maintenant la clé aléatoire, copie la clé et enregistre-la sur ta note.
GH7AP4Zcthz02Cmg58sqUgonm7zlwH0f
Ensuite, va dans le répertoire ‘/etc/matrix-synapse’ et modifie la configuration ‘homeserver.yaml’ en utilisant l’éditeur vim.
cd /etc/matrix-synapse/
vim homeserver.yaml
Va dans la section ‘listeners’ et modifie la valeur ‘bind-addresses’ avec l’adresse IP locale comme ci-dessous.
listeners:
- port: 8008
tls: false
type: http
x_forwarded: true
bind_addresses: ['127.0.0.1']
resources:
- names: [client, federation]
compress: false
Désactive maintenant le Matrix Synapse si tu exécutes le nœud uniquement pour toi.
enable_registration: false
Change la valeur ‘registration_shared_secret’ avec la phrase de passe aléatoire générée en haut.
registration_shared_secret: "GH7AP4Zcthz02Cmg58sqUgonm7zlwH0f"
Sauvegarde et ferme.
Ensuite, redémarre le service Matrix Synapse pour appliquer la nouvelle configuration.
systemctl restart matrix-synapse
Vérifie le service à l’aide de la commande suivante.
ss -plnt
systemctl status matrix-synapse
Voici le résultat que tu obtiendras.
Le service Matrix Synapse est donc opérationnel avec une nouvelle configuration.
Étape 3 – Générer le SSL Letsencrypt
Dans cette étape, nous allons générer le SSL Letsencrypt à l’aide de l’outil certbot. Le service Matrix Synapse fonctionnera sous la connexion HTTPS sécurisée en utilisant les certificats SSL fournis par Letsencrypt.
Installe l’outil certbot à l’aide de la commande apt ci-dessous.
sudo apt install certbot -y
Ensuite, génère un nouveau certificat SSL à l’aide de la commande certbot ci-dessous, et assure-toi de changer l’adresse e-mail et le nom de domaine avec les tiens.
certbot certonly --rsa-key-size 2048 --standalone --agree-tos --no-eff-email --email [email protected] -d hakase-labs.io
Une fois que tout est terminé, tes certificats SSL seront disponibles dans le répertoire ‘/etc/letsencrypt/live/domain.com/’.
ls -lah /etc/letsencrypt/live/domain.com/
Le fichier ‘fullchain.pem’ est la clé publique et le fichier ‘privkey.pem’ est la clé privée.
Étape 4 – Configurer Nginx comme proxy inverse
Pour ce tutoriel, nous allons exécuter Matrix Synapse sous le proxy inverse Nginx. Et pour cette étape, nous allons installer les paquets Nginx et le configurer en tant que Reverse Proxy.
Le serveur Web Nginx fonctionnera sur 3 ports, le port HTTP par défaut ’80’, le port HTTPS sécurisé ‘443’ et le port TCP ‘8448’ qui sera utilisé pour la fédération Matrix Synapse.
Installe les paquets Nginx à l’aide de la commande apt ci-dessous.
sudo apt install nginx -y
Une fois l’installation terminée, va dans le répertoire ‘/etc/nginx/sites-available’ et crée une nouvelle configuration de virtualhost nommée ‘matrix’ à l’aide de l’éditeur vim.
cd /etc/nginx/sites-available/
vim matrix
Change le nom de domaine et le chemin des certificats SSL avec les tiens, puis colle la configuration dans le répertoire.
server {
listen 80;
server_name hakase-labs.io;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name hakase-labs.io;
ssl_certificate /etc/letsencrypt/live/hakase-labs.io/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/hakase-labs.io/privkey.pem;
location /_matrix {
proxy_pass http://localhost:8008;
proxy_set_header X-Forwarded-For $remote_addr;
# Nginx by default only allows file uploads up to 1M in size
# Increase client_max_body_size to match max_upload_size defined in homeserver.yaml
client_max_body_size 10M;
}
}
# This is used for Matrix Federation
# which is using default TCP port '8448'
server {
listen 8448 ssl;
server_name hakase-labs.io;
ssl_certificate /etc/letsencrypt/live/hakase-labs.io/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/hakase-labs.io/privkey.pem;
location / {
proxy_pass http://localhost:8008;
proxy_set_header X-Forwarded-For $remote_addr;
}
}
Sauvegarde et ferme.
Ensuite, active le serveur virtuel ‘matrix’ et teste la configuration de Nginx. Vérifie aussi qu’il n’y a pas d’erreur.
ln -s /etc/nginx/sites-available/matrix /etc/nginx/sites-enabled/
nginx -t
Maintenant, redémarre le service Nginx et ajoute-le au démarrage du système.
systemctl restart nginx
systemctl enable nginx
Après cela, vérifie le service Nginx à l’aide de la commande ci-dessous.
ss -plnt
systemctl status nginx
Voici le résultat que tu obtiendras.
Le service Nginx est donc opérationnel sur Ubuntu 20.04 avec trois ports différents, le port HTTP par défaut 80 qui sera automatiquement redirigé vers le port HTTPS sécurisé, et le port ‘8448’ qui sera utilisé pour la Fédération Matrix Synapse.
Étape 5 – Pare-feu UFW
Pour ce tutoriel, nous allons exécuter Matrix Synapse sur Ubuntu 20.04 avec le pare-feu UFW activé.
Ajoute ssh, http, https et le port TCP ‘8448’ au pare-feu UFW à l’aide de la commande ci-dessous.
for svc in ssh http https 8448
do
ufw allow $svc
done
Ensuite, exécute et active le pare-feu UFW.
ufw enable
Tape‘y‘ pour confirmer et le pare-feu UFW est en marche. Vérifie toutes les règles disponibles sur le pare-feu UFW à l’aide de la commande ci-dessous.
ufw status numbered
Voici le résultat que tu obtiendras.
En conséquence, la configuration du pare-feu UFW est terminée.
Étape 6 – Enregistrer l’utilisateur
À ce stade, l’installation et la configuration du serveur domestique matrix synapse sont terminées. Dans cette étape, nous allons te montrer comment ajouter un nouvel utilisateur matrix à partir du serveur de ligne de commande.
Pour créer un nouvel utilisateur matrix, exécute la commande ci-dessous.
sudo register_new_matrix_user -c /etc/matrix-synapse/homeserver.yaml http://localhost:8008
Tape maintenant le nom d’utilisateur et le mot de passe de ton utilisateur, pour que l’utilisateur soit un administrateur, tape ‘oui’.
New user localpart [root]: changbin
Password:
Confirm password:
Make admin [no]:
Sending registration request...
Success!
Le nouvel utilisateur Matrix a donc été créé.
Étape 7 – Test
Pour cette étape, nous allons tester notre installation de serveur Matrix Synapse.
– Test de la fédération Matrix Synapse
Accède à l’URL du testeur de la fédération Matrix Synapse ci-dessous.
https://federationtester.matrix.org/
Tape maintenant ton nom de domaine Matrix Synapse et clique sur le bouton« Go« . Tu obtiendras le résultat suivant.
Comme tu peux le voir, la Fédération Matrix Synapse fonctionne via le port ‘8448’.
– Teste la connexion à Matrix avec l’utilisateur et le mot de passe
Accède au client Matrix basé sur le Web appelé ‘riot.im’ à l’URL ci-dessous.
Clique sur le bouton‘Sign In‘ et tu peux utiliser ton serveur Matrix Synapse personnalisé.
Tape ton nom de domaine et clique sur‘Suivant‘.
Tape maintenant ton nom d’utilisateur et ton mot de passe, puis clique sur le bouton‘Se connecter‘.
Il te sera demandé de répondre à des questions de sécurité supplémentaires.
Une fois que tu t’es connecté, tu obtiendras la page suivante.
L’installation de Matrix Synapse avec le reverse-proxy Nginx et la Fédération activée sur Ubuntu 20.04 s’est donc déroulée avec succès.