diff --git a/README.md b/README.md index c716bba290edd9a2da0c5739e05d71130f9790ea..9efe30d1a9467d0448c6dec048a4e9ed53121eb2 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,58 @@ -# h-dekeiser-mennecart-debuyser +<div style="text-align: center;"> +<a href="https://matrix.org/"> + <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/9/95/Matrix_logo.svg/640px-Matrix_logo.svg.png" style="width: 15%; filter: invert(100%);"> +</a> -Vous devez modifier ce fichier afin qu'il soit un point d'entrée vers vos procédures. +<h1 style="border: none; margin: 0;">SAÉ 3.03: Déploiement d'une application de communication</h1> +</div> -Il suffit de mettre des liens vers les fichiers markdown de vos procédure +<hr> -- [Comme ceci](Environnement.md) - +<h2 style="border: none; margin: 0; border-top: 5px solid transparent;">Liste des membres du groupe:</h2> +- Matisse DEKEISER ([matisse.dekeiser.etu@univ-lille.fr](mailto:matisse.dekeiser.etu@univ-lille.fr)) +- Hugo DEBUYSER ([hugo.debuyser.etu@univ-lille.fr](mailto:hugo.debuyser.etu@univ-lille.fr)) +- Matias MENNECART ([matias.mennecart.etu@univ-lille.fr](mailto:matias.mennecart.etu@univ-lille.fr)) +<hr> +Ce projet consiste au déploiement d'une instance d'un service de communication Matrix, à l'aide de son implémentation Synapse, sur une machine virtuelle, où n'importe quel utilisateur pourra s'y connecter à l'aide du client Element. +Afin de procéder à une installation correcte de Synapse, l'ensemble des procédures à suivre dans l'ordre se situent en dessous de cette présentation. -- [Changer le nom de la machine](./procedures/change_hostname.md) -- [Installer sudo](./procedures/install_sudo.md) -- [Installation d'un serveur de Base de Données (PostgreSQL)](./procedures/install_postgresql.md) +# 🖥️ PARTIE 1: Mise en place de la machine virtuelle +### [Sommaire](./procedures/1-virtual-machine/README.md) +- [1.1: Connexion à distance au serveur de virtualisation](./procedures/1-virtual-machine/) +- [1.2: Gestion des clés de connexion SSH](./procedures/1-virtual-machine/) +- [1.3: Création et gestion de la machine virtuelle](./procedures/1-virtual-machine/) +- [1.4: Connexion au terminal de la machine virtuelle](./procedures/1-virtual-machine/) +- [1.5: Configuration réseau et mise à jour](./procedures/1-virtual-machine/) +- [1.6: Création d'alias de connexion SSH](./procedures/1-virtual-machine/) +<br> + +# ⌨️ PARTIE 2: Configuration des services pré-requis + +### [Sommaire](./procedures/2-configuration-services/README.md) + +- [2.1: Modifier le nom d'hôte de la machine virtuelle](./procedures/2-configuration-services/change-hostname.md) +- [2.2: Installer sudo pour l'utilisation de commandes en tant qu'administrateur](./procedures/2-configuration-services/sudo.md) +- [2.3: Installer PostgreSQL pour la gestion des utilisateurs/identifiants](./procedures/2-configuration-services/postgresql.md) + +<br> + +# 🛠️ PARTIE 3: Installation et configuration du serveur Synapse + +### [Sommaire](./procedures/3-synapse/README.md) + +- À FAIRE + +<br> + +# 🚀 PARTIE 4: Configuration du client Element et reverse proxy + +### [Sommaire](./procedures/4-element-proxy/README.md) + +- À FAIRE \ No newline at end of file diff --git a/procedures/1-virtual-machine/README.md b/procedures/1-virtual-machine/README.md new file mode 100644 index 0000000000000000000000000000000000000000..68d353db77a70cb8a50fdae666c9b2cd1a241102 --- /dev/null +++ b/procedures/1-virtual-machine/README.md @@ -0,0 +1,21 @@ +<div style="text-align: center;"> +<h1 style="border: none; margin: 0">🖥️ PARTIE 1: Mise en place de la machine virtuelle</h1> +<br> + +</div> + +# Sommaire + +- [1.1: Connexion à distance au serveur de virtualisation](connect-virt-server.md) +- [1.2: Gestion des clés de connexion SSH](ssh-keygen.md) +- [1.3: Création et gestion de la machine virtuelle](create-virtual-machine.md) +- [1.4: Connexion au terminal de la machine virtuelle](connect-serial-vm.md) +- [1.5: Configuration réseau et mise à jour](setup-virtual-network.md) +- [1.6: Création d'alias de connexion SSH](ssh-alias.md) + +<hr> + +<footer style="display: flex; justify-content: space-between; padding: 10px 20px;"> + <a href="/README.md" style="text-decoration: none;">← Page précédente: Page principale</a> + <a href="./connect-virt-server.md" style="text-decoration: none;">Page suivante: Connexion à distance... →</a> +</footer> diff --git a/procedures/1-virtual-machine/connect-serial-vm.md b/procedures/1-virtual-machine/connect-serial-vm.md new file mode 100644 index 0000000000000000000000000000000000000000..5f8101c85ae11ca505b3ecbe18082a6e9180ba23 --- /dev/null +++ b/procedures/1-virtual-machine/connect-serial-vm.md @@ -0,0 +1 @@ +À FAIRE \ No newline at end of file diff --git a/procedures/1-virtual-machine/connect-virt-server.md b/procedures/1-virtual-machine/connect-virt-server.md new file mode 100644 index 0000000000000000000000000000000000000000..5f8101c85ae11ca505b3ecbe18082a6e9180ba23 --- /dev/null +++ b/procedures/1-virtual-machine/connect-virt-server.md @@ -0,0 +1 @@ +À FAIRE \ No newline at end of file diff --git a/procedures/1-virtual-machine/create-virtual-machine.md b/procedures/1-virtual-machine/create-virtual-machine.md new file mode 100644 index 0000000000000000000000000000000000000000..5f8101c85ae11ca505b3ecbe18082a6e9180ba23 --- /dev/null +++ b/procedures/1-virtual-machine/create-virtual-machine.md @@ -0,0 +1 @@ +À FAIRE \ No newline at end of file diff --git a/procedures/1-virtual-machine/setup-virtual-network.md b/procedures/1-virtual-machine/setup-virtual-network.md new file mode 100644 index 0000000000000000000000000000000000000000..5f8101c85ae11ca505b3ecbe18082a6e9180ba23 --- /dev/null +++ b/procedures/1-virtual-machine/setup-virtual-network.md @@ -0,0 +1 @@ +À FAIRE \ No newline at end of file diff --git a/procedures/1-virtual-machine/ssh-alias.md b/procedures/1-virtual-machine/ssh-alias.md new file mode 100644 index 0000000000000000000000000000000000000000..5f8101c85ae11ca505b3ecbe18082a6e9180ba23 --- /dev/null +++ b/procedures/1-virtual-machine/ssh-alias.md @@ -0,0 +1 @@ +À FAIRE \ No newline at end of file diff --git a/procedures/1-virtual-machine/ssh-keygen.md b/procedures/1-virtual-machine/ssh-keygen.md new file mode 100644 index 0000000000000000000000000000000000000000..5f8101c85ae11ca505b3ecbe18082a6e9180ba23 --- /dev/null +++ b/procedures/1-virtual-machine/ssh-keygen.md @@ -0,0 +1 @@ +À FAIRE \ No newline at end of file diff --git a/procedures/2-configuration-services/README.md b/procedures/2-configuration-services/README.md new file mode 100644 index 0000000000000000000000000000000000000000..d3c500592d951408f9a79962eb7e3ddff830abbf --- /dev/null +++ b/procedures/2-configuration-services/README.md @@ -0,0 +1,18 @@ +<div style="text-align: center;"> +<h1 style="border: none; margin: 0">⌨️ PARTIE 2: Configuration des services pré-requis</h1> +<br> + +</div> + +# Sommaire + +- [2.1: Modifier le nom d'hôte de la machine virtuelle](./procedures/2-configuration-services/change-hostname.md) +- [2.2: Installer sudo pour l'utilisation de commandes en tant qu'administrateur](./procedures/2-configuration-services/sudo.md) +- [2.3: Installer PostgreSQL pour la gestion des utilisateurs/identifiants](./procedures/2-configuration-services/postgresql.md) + +<hr> + +<footer style="display: flex; justify-content: space-between; padding: 10px 20px;"> + <a href="../1-virtual-machine/ssh-alias.md" style="text-decoration: none;">← Page précédente: Création d'alias...</a> + <a href="change-hostname.md" style="text-decoration: none;">Page suivante: Modifier le nom d'hôte... →</a> +</footer> diff --git a/procedures/2-configuration-services/change-hostname.md b/procedures/2-configuration-services/change-hostname.md new file mode 100644 index 0000000000000000000000000000000000000000..67b1414a334b324e12a9ebbfcf1738634e225abc --- /dev/null +++ b/procedures/2-configuration-services/change-hostname.md @@ -0,0 +1,48 @@ +# 2.1: Modifier le nom d'hôte de la machine virtuelle + +Afin de changer le nom d'hôte (aussi appelé [hostname](https://en.wikipedia.org/wiki/Hostname)) de la machine virtuelle (par défaut: `debian`) par `matrix`, il vous suffira de modifier 2 fichiers de configuration système. + +Pour les modifier, utilisez n'importe quel éditeur de texte souhaité (nano, vim...), en s'ayant connecté au compte administrateur avant: + +```bash +$ su - +``` + +## 📄 /etc/hostname + +Fichier de configuration qui contient le nom d'hôte de la machine. + +Pour le modifier, changez la première ligne (par défaut: `debian`) par le nouveau nom d'hôte voulu, ici: + +``` +matrix +``` + +## 📄 /etc/hosts + +Fichier de configuration système qui addresse aux noms d'hôtes leur adresse IP. + +Pour le modifier correctement, repérez la ligne qui relie l'adresse locale de la machine (`127.0.1.1`, dans la plage des adresses localhost)au nom d'hôte précédent de la machine virtuelle (dans notre cas, `debian`), et changez le nom à droite par le nouveau nom d'hôte: + +``` +127.0.1.1 matrix +``` + +Vous pouvez par la suite redémarrer la machine virtuelle. + +## 🧪 Vérifier si la modification s'est correctement faite + +Le nom à côté du `@` dans le prompt du terminal de la machine virtuelle devrait avoir changé pour `matrix` après le redémarrage. + +Afin de tester si le nouveau nom d'hôté a bien été configuré pour le réseau local, vous pouvez essayer de ping votre machine virtuelle en exécutant la commande `ping matrix` depuis le terminal de cette dernière. + + + +Si tous les paquets sont transmis, alors la configuration est correcte. Si ce n'est pas le cas, revérifiez le contenu de ces 2 fichiers. + +<hr> + +<footer style="display: flex; justify-content: space-between; padding: 10px 20px;"> + <a href="README.md" style="text-decoration: none;">← Page précédente: Sommaire (partie 2)</a> + <a href="sudo.md" style="text-decoration: none;">Page suivante: Installer sudo... →</a> +</footer> \ No newline at end of file diff --git a/procedures/2-configuration-services/postgresql.md b/procedures/2-configuration-services/postgresql.md new file mode 100644 index 0000000000000000000000000000000000000000..5cb52db73bae087d00607b44d9a9d6daf43c283d --- /dev/null +++ b/procedures/2-configuration-services/postgresql.md @@ -0,0 +1,86 @@ +# 2.3: Installer PostgreSQL pour la gestion des utilisateurs/identifiants + +PostgreSQL est un système de gestion de bases de données relationnelles, similaire à MySQL, MariaDB, Oracle... Dans notre cas, PostgreSQL est utilisé par Synapse pour la gestion des utilisateurs de l'instance Matrix. + +## Installation de PostgreSQL + +Maintenant que sudo est installé, et les droits administrateurs donnés à notre utilisateur, nous n'avons plus besoin de se connecter à l'utilisateur `root` avec la commande `su`, il suffit de simplement écrire `sudo` devant. + +En premier temps, mettez à jour les dépôts du gestionnaire de paquets `apt` afin de bénéficier des derniers outils à jour: + +``` +$ sudo apt update +``` + +Ensuite, installez le serveur PostgreSQL avec la commande suivante: + +``` +$ sudo apt install postgresql +``` + +### Note: +Le paquet `postgresql` est en réalité un métapaquet, un paquet spécial qui ne contient pas des outils mais redirige le gestionnaire de paquets vers différents autres paquets à télécharger. + +Ici, `postgresql` renvoie le gestionnaire de paquets vers: +- `postgresql-15`: Tous les outils liés au serveur PostgreSQL. +- `postgresql-client-15`: Tous les outils client pour communiquer avec un serveur PostgreSQL, dont `psql`, `createdb`, etc. +- `postgresql-doc-15`: La documentation/manpages liée(s) à PostgreSQL. +- etc. + +Une fois installé, le serveur PostgreSQL a dû être automatiquement démarré par `systemd` (le système d'initialisation qui gère les services dits *daemons*) appelé par `apt`. Vous pouvez vérifier si il est actif avec la commande suivante: + +``` +sudo systemctl status postgresql +``` + +Si il n'a pas été démarré automatiquement par `systemd`, lancez le manuellement avec la commande suivante: + +``` +sudo systemctl start postgresql +``` + +Si vous souhaitez que le système démarre votre serveur PostgreSQL à chaque démarrage de la machine virtuelle, vous pouvez configurer `systemd` pour le faire avec la commande suivante: + +``` +sudo systemctl enable postgresql +``` + +## Configuration de PostgreSQL + +Maintenant que PostgreSQL est installé et actif sur la machine virtuelle, nous allons devoir configurer son serveur. + +Pour commencer, nous devons créer un utilisateur du serveur PostgreSQL au nom de `matrix`, avec comme mot de passe `matrix`. Pour cela, exécutez la commande suivante: + +``` +sudo -u postgres createuser -P matrix +``` + +### Note: +L'outil `createuser` vous demandera d'écrire le mot de passe une fois la commande exécutée. Par raison de sécurité, les mots de passe ne sont pas affichés en clair sur les systèmes UNIX, vous ne verrez donc pas votre mot de passe en train d'être écrit sur votre terminal. + +Une fois l'utilisateur `matrix` créé, nous allons devoir créer une base de données. Par simplicité, nous la nommerons `matrix`. Pour ceci, exécutez la commande suivante: + +``` +sudo -u postgres createdb --owner=matrix matrix +``` + +## Première connexion + +Une fois la base de données créé, vous pouvez vous-y connecter à l'aide de l'outil `psql`: + +``` +psql -U matrix -h localhost +``` + +Une fois le mot de passe rentré, vous serez accueillis par le prompt du shell de `psql` qui vous permettra de communiquer avec le serveur PostgreSQL avec soit des commandes SQL, ou certaines commandes spéciales, telles que `\?` qui vous affichera une liste de toutes les commandes spéciales utilisables. + +Pour quitter `psql`, entrez la commande `exit`. + +### TEST À AJOUTER + +<hr> + +<footer style="display: flex; justify-content: space-between; padding: 10px 20px;"> + <a href="./sudo.md" style="text-decoration: none;">← Page précédente: Installer sudo...</a> + <a href="/procedures/3-synapse/README.md" style="text-decoration: none;">Page suivante: Sommaire (partie 3) →</a> +</footer> \ No newline at end of file diff --git a/procedures/2-configuration-services/sudo.md b/procedures/2-configuration-services/sudo.md new file mode 100644 index 0000000000000000000000000000000000000000..e87fc48844dcb2b4b7ad10fd0e4abd3a121b6037 --- /dev/null +++ b/procedures/2-configuration-services/sudo.md @@ -0,0 +1,59 @@ +# 2.2: Installer sudo pour l'utilisation de commandes en tant qu'administrateur + +La commande `sudo` permet aux utilisateurs (avec les permissions requises) d'exécuter des commandes en tant qu'administrateur/superuser. + +Comme nous n'avons pas encore cette commande, nous devons nous connecter à l'utilisateur `root` à l'aide de la commande suivante: + +``` +$ su - +``` + +## Installation de sudo + +Pour installer sudo, exécutez la commande suivante en temps qu'administrateur + +``` +# apt update +# apt install sudo +``` + +La première commande se charge de mettre à jour les dépôts du gestionnaire de paquets `apt`, propre à Debian, afin d'être sûr d'avoir les versions les plus récentes des outils souhaités. + +La seconde commande va installer l'outil `sudo` sur l'ordinateur. Si la commande vous demande de valider l'installation, appuyez sur `ENTER` pour valider l'installation. + +## Configuration des droits administrateur + +Pour permettre à notre utilisateur `user` de pouvoir exécuter des commandes en tant qu'administrateur, nous devons l'ajouter au groupe `sudo`. + +Pour cela, exécutez la commande suivante en temps qu'administrateur: + +``` +# usermod -aG sudo user +``` + +Afin que les changements s'opèrent correctement sur l'utilisateur, redémarrez la machine virtuelle. + +## 🧪 Vérifier si la modification s'est correctement faite + +Une fois la machine virtuelle redémarée, vous pouvez essayer une simple commande avant `sudo` devant, et si le terminal ne vous renvoie pas d'erreur, alors la modification a bien été prise en compte. + +Exemple: + +``` +$ sudo whoami +root +``` + +Si vous recevez un message d'erreur, vérifiez que l'utilisateur a bien été ajouté au groupe sudo avec la commande `groups`: + +``` +$ groups +[à ajouter] +``` + +<hr> + +<footer style="display: flex; justify-content: space-between; padding: 10px 20px;"> + <a href="./change-hostname.md" style="text-decoration: none;">← Page précédente: Modifier le nom d'hôte...</a> + <a href="./postgresql.md" style="text-decoration: none;">Page suivante: Installer PostgreSQL... →</a> +</footer> \ No newline at end of file diff --git a/procedures/3-synapse/README.md b/procedures/3-synapse/README.md new file mode 100644 index 0000000000000000000000000000000000000000..f424254edbd985409394b45ca85df54af5bed645 --- /dev/null +++ b/procedures/3-synapse/README.md @@ -0,0 +1,16 @@ +<div style="text-align: center;"> +<h1 style="border: none; margin: 0">🛠️ PARTIE 3: Installation et configuration du serveur Synapse</h1> +<br> + +</div> + +# Sommaire + +À AJOUTER + +<hr> + +<footer style="display: flex; justify-content: space-between; padding: 10px 20px;"> + <a href="../2-configuration-services/postgresql.md" style="text-decoration: none;">← Page précédente: Installer PostgreSQL...</a> + <a href="" style="text-decoration: none;">Page suivante: À AJOUTER →</a> +</footer> diff --git a/procedures/4-element-proxy/README.md b/procedures/4-element-proxy/README.md new file mode 100644 index 0000000000000000000000000000000000000000..baed1f851caede67f821d3feb1b62e1821604f58 --- /dev/null +++ b/procedures/4-element-proxy/README.md @@ -0,0 +1,16 @@ +<div style="text-align: center;"> +<h1 style="border: none; margin: 0">🚀 PARTIE 4: Configuration du client Element et reverse proxy</h1> +<br> + +</div> + +# Sommaire + +À AJOUTER + +<hr> + +<footer style="display: flex; justify-content: space-between; padding: 10px 20px;"> + <a href="" style="text-decoration: none;">← Page précédente: À AJOUTER</a> + <a href="" style="text-decoration: none;">Page suivante: À AJOUTER →</a> +</footer> \ No newline at end of file diff --git a/procedures/change_hostname.md b/procedures/change_hostname.md deleted file mode 100644 index ce932b4a807445166539ed170f102d120ee8e32c..0000000000000000000000000000000000000000 --- a/procedures/change_hostname.md +++ /dev/null @@ -1,16 +0,0 @@ - -## Changer le nom de la machine - -Pour changez le nom de la machine pour `matrix`, modifiez la ligne du fichier `/etc/hostname` par - -> matrix - -Apres ça, redemarrez la machine. Le nom a été changé. - -Ensuite, modifiez le fichier `/etc/hosts` - -> 127.0.1.1 matrix - -Vous devrez ensuite etre capable d'effectuer `ping matrix` et d'obtenir ce resultat : - - \ No newline at end of file diff --git a/procedures/install_postgresql.md b/procedures/install_postgresql.md deleted file mode 100644 index 06f086cdc8d10b85ee873ca204bffefda425c4e7..0000000000000000000000000000000000000000 --- a/procedures/install_postgresql.md +++ /dev/null @@ -1,32 +0,0 @@ -## Installation d'un serveur de Base de Données (PostgreSQL) - - -Tout d'abord, installez le package: - -> apt install postgresql - -Ensuite, verifier que le service est bien demarré : - -> systemctl status postgresql - -Creez ensuite un utilisateur postgresql nommé matrix : - -*Il vous est demandé de saisir le mot de passe de l'utilisateur crée* - -> sudo -u postgres createuser -P matrix - -Creez ensuite une base de données nommée matrix, ayant pour créateur l'utilisateur matrix qui vient d'etre creer. - - -> sudo -u postgres createdb --owner=matrix matrix - -Une base de données matrix a été crée. - -Pour vous y connecter avec l'utilisater `matrix` - -> psql -U matrix -h localhost - -Vous êtes désormais connecter sur la base de données postgresql. -Vous pouvez y effectuer vos requetes SQL. Faits `\?` pour voir les commandes disponible. - -Pour quitter postgresql, entrez `exit`. \ No newline at end of file diff --git a/procedures/install_sudo.md b/procedures/install_sudo.md deleted file mode 100644 index 0cebd6c4489b2bbcc093abd85e0e70f79207b7c0..0000000000000000000000000000000000000000 --- a/procedures/install_sudo.md +++ /dev/null @@ -1,15 +0,0 @@ -## Installer sudo - - -Pour installer sudo, executez la commande suivante: - -> apt install sudo - -Ensuite, pour permettre l'utilisation de la commande sudo à un utilisateur, vous devez ajouter celui-ci dans le groupe sudo. - -Voici la commande à utiliser: - - -> usermod -aG sudo user - -L'utilisateur `user` fait désormais partit du group sudo et peut utiliser la commande. diff --git a/ressources/ping-matrix.png b/resources/ping-matrix.png similarity index 100% rename from ressources/ping-matrix.png rename to resources/ping-matrix.png