From 9498fbf4b0b7f389f7e1ffa75c9535e6e1b4aa2c Mon Sep 17 00:00:00 2001 From: Hugo Debuyser <hugo.debuyser.etu@univ-lille.fr> Date: Mon, 13 Jan 2025 11:57:07 +0100 Subject: [PATCH] =?UTF-8?q?avancement=20partie=203=20postgres=20+=20acc?= =?UTF-8?q?=C3=A8s=20distance?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../3-synapse/install-config-synapse.md | 107 ++++++++++++++++++ 1 file changed, 107 insertions(+) diff --git a/procedures/3-synapse/install-config-synapse.md b/procedures/3-synapse/install-config-synapse.md index dddedb6..6aabcd9 100644 --- a/procedures/3-synapse/install-config-synapse.md +++ b/procedures/3-synapse/install-config-synapse.md @@ -22,8 +22,115 @@ Durant l'installation, le gestionnaire de paquets nous demande le nom de notre i Le serveur écrira ses messages à destination de l’administrateur (les logs) dans le fichier /var/log/matrix-synapse/homeserver.log. +## ⚙️ Paramétrer l’accès à distance +Il est important de noter que, par défaut, synapse écoute uniquement les interfaces de boucle locale. Nous devons alors lui permettre d'accéder depuis l'extérieur de la machine virtuelle en lui faisant écouter l'interface située dans notre réseau 10.42.0.0/16. +Il vous suffit alors de modifier la configuration de synapse afin qu'il écoute sur l'interface réseau attaché à notre réseau 10.42.0.0/16 en supplément de la boucle locale. + +Allez dans le fichier : + +```bash +nano /etc/matrix-synapse/homeserver.yaml +``` + +```bash +pid_file: "/var/run/matrix-synapse.pid" +listeners: + - port: 8008 + tls: false + type: http + x_forwarded: true + bind_addresses: ['::1', '127.0.0.1', '[ Ajoutez votre adresse ici ]'] + resources: + - names: [client, federation] + compress: false + - port: 8008 + tls: false + type: http + x_forwarded: true + bind_addresses: ['10.42.0.0/16'] +``` + +## ⚙️ Paramétrer une instance dans un réseau privé + +Nous avons une installation peu commune car notre serveur ne peut pas être accessible directement depuis internet, mais pour une production réelle, on voudrait qu'il le soit. La configuration par défaut de Synapse considère que notre serveur est accessible depuis l'extérieuret qu'il ne cherche pas à contacter des éléments situés sur le réseau privé. +Dans le cas par exemple où notre serveur contacte d'autres serveur pour obtenir des clés publiques de signatures. + +___ + +Il nous suffit alors d'ajouter la ligne `registration_shared_secret` à notre configuration situé dans `/etc/matrix-synapse/homeserver.yaml`. + +Une fois ette option activée, elle permet d'enregistrer des comptes standard ou administrateur par toute personne possédant le code secret partagé, même si l'option enable_registration n'est pas activée. + +Cette fonction est principalement destinée à être utilisée avec le script register_new_matrix_user (voir Enregistrement d'un utilisateur) ; toutefois, l'interface est documentée. + +Configuration à utilisé : + +```bash +registration_shared_secret : <Chaîne privée> +``` + +___ + +## 🖥️ Configuration d'une base de données Postgres + +Synapse, par défaut, utilise une base de données sqlite qui n'est pas suffisant pour une instance en production. Nous allons modifier notre configuration afin d'utiliser une base de données Postgres. Allez dans le fichier de configuration `/etc/matrix-synapse/homeserver.yaml` et la configuration qui devrait être comme ceci : + +```bash +database: + name: sqlite3 + args: + database: /path/to/homeserver.db +``` + +Afin d'avoir ceci + +```bash +database: + name: psycopg2 + args: + user: synapse_user + password: synapse + dbname: synapse + host: localhost + port: 5432 +``` + +Maintenant notre configuration postgres mise en place, nous devons recréer cette base avec les bonnes options. + +Tout d'abord, nous allons supprimer notre base de donnée précédente matrix : + +```bash +sudo -u postgres dropdb synapse +``` + +Nous devons ensuite créer notre base de données Synapse : + +```bash +sudo -u postgres createdb --encoding=UTF8 --locale=C --template=template0 --owner=synapse_user synapse +``` + +Créer ensuite le user pour synapse : + +```bash +sudo -u postgres createuser -P synapse_user +``` + +Vous pouvez ensuite vérifier si votre base a bien été créée avec les commandes suivantes : + +```bash +psql -U synapse_user -h localhost synapse +\d +``` + +Afin de créer un utilisateur sur notre base nous devons utiliser le script `register_new_matrix_user`, en spécifiant la localisation du fichier de configuration `/etc/matrix-synapse/homeserver.yaml` en ayant spéficié le registration_shared_secret : + +```bash +sudo register_new_matrix_user -c /etc/matrix-synapse/homeserver.yaml -u "username" -p "PASSWORD" +``` + +En remplacant "username" et "PASSWORD" par ce qui vous convient. <hr> -- GitLab