From dd196b6dd8e09b81e8706317b0c56738ba0c9383 Mon Sep 17 00:00:00 2001 From: Pierre-Olivier Mercier Date: Sun, 26 Nov 2023 20:59:23 +0100 Subject: [PATCH] root: Add a page about ssh and challenge administration --- content/root/files.md | 22 +---------- content/root/ssh.md | 90 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 92 insertions(+), 20 deletions(-) create mode 100644 content/root/ssh.md diff --git a/content/root/files.md b/content/root/files.md index a5f9f4d..19c5488 100644 --- a/content/root/files.md +++ b/content/root/files.md @@ -137,24 +137,6 @@ nsenter -t 1 -a ``` -## Transférer des fichiers hors des machines +## Connexion SSH et transfert de fichiers hors des machines -Tous les fichiers nécessaire au challenge sont stockés dans le répertoire `/var/lib/fic`. -On y trouve à la fois les répertoires courants de la plateforme (`teams`, `submissions`, ...), mais aussi le répertoire de la base de données `mysql`, les sauvegardes, ... - -Ce répertoire n'est pas partagé avec le conteneur `sshd` auquel on se connecte. -En dehors des fichiers bruts du challenge, il n'est donc pas possible d'utiliser `rsync` ou `scp` directement. - -Seul le répertoire `/var/lib/fic/outofsync` est partagé. - -Il convient donc de copier le fichier que l'on souhaite partager vers ce dossier, afin de le retrouver dans le conteneur `sshd` : - -``` -ssh root@192.168.3.92 -nsenter -t 1 -a -cp /var/lib/fic/backups/db-20421225000000.sql.xz /var/lib/fic/outofsync -exit # On sort du système hôte pour revenir dans le conteneur sshd -exit # On quitte la connexion SSH - -scp root@192.168.3.92:/var/lib/fic/outofsync/db-20421225000000.sql.xz . -``` +Voir [l'article dédié]({{< relref "ssh.md" >}}) diff --git a/content/root/ssh.md b/content/root/ssh.md new file mode 100644 index 0000000..fea9fd5 --- /dev/null +++ b/content/root/ssh.md @@ -0,0 +1,90 @@ +--- +date: 2023-11-26T19:46:12+02:00 +title: Connexion SSH et administration du challenge +weight: 55 +--- + +## Se connecter en SSH aux machines + +### `deimos` + +`deimos` expose un serveur ssh sur les ports `admin` du switch. +Actuellement, l'IP du serveur est `192.168.3.92` (peu changer selon le plan d'adressage fourni par les organisateurs). + +### `phobos` + +Il n'est pas possible de se connecter à `phobos`. +Cette machine expose un serveur SSH uniquement à des fins de synchronisation des fichiers. +Le conteneur exécutant le serveur SSH ne permet pas de rebondir sur le reste du système, ce qui rend de toute manière la connexion assez inutile. + +Pour administrer la machine, il faut donc utiliser l'iDRAC. + + +## Gestion des clefs SSH + +Pour pouvoir se connecter au serveur, il est nécessaire d'avoir une clef SSH autorisée. + +Les clefs SSH font parties des [métadonnées]({{< relref "fickit-deploy.md" >}}). + + +## Interface d'administration + +Afin d'éviter que des personnes puissent accéder à l'interface d'administration, celle-ci n'est accessible que via la connexion SSH : + +``` +ssh -L 8081:127.0.0.1:8081 root@192.168.3.92 +``` + +Cela ouvre un tunnel entre le port 8081 de votre système et le port 8081 du serveur. +Vous pourrez ensuite accéder à l'interface d'administration directement depuis votre machine à l'adresse : . + + +## Transférer des fichiers hors des machines + +Tous les fichiers nécessaire au challenge sont stockés dans le répertoire `/var/lib/fic`. +On y trouve à la fois les répertoires courants de la plateforme (`teams`, `submissions`, ...), mais aussi le répertoire de la base de données `mysql`, les sauvegardes, ... + +Ce répertoire n'est pas partagé avec le conteneur `sshd` auquel on se connecte. +En dehors des fichiers bruts du challenge, il n'est donc pas possible d'utiliser `rsync` ou `scp` directement. + +Seul le répertoire `/var/lib/fic/outofsync` est partagé. + +Il convient donc de copier le fichier que l'on souhaite partager vers ce dossier, afin de le retrouver dans le conteneur `sshd` : + +``` +ssh root@192.168.3.92 +nsenter -t 1 -a +cp /var/lib/fic/backups/db-20421225000000.sql.xz /var/lib/fic/outofsync +exit # On sort du système hôte pour revenir dans le conteneur sshd +exit # On quitte la connexion SSH + +scp root@192.168.3.92:/var/lib/fic/outofsync/db-20421225000000.sql.xz . +``` + + +## Tableau de bord + +Sur l'IP du serveur, le port 8083 est ouvert afin de rendre le tableau de bord accessible à des personnes sans connexion SSH (par exemple pour que les organisateurs puissent le diffuser). + +Afin de limiter son accès, il est possible de restreindre les IP qui peuvent le contacter. +Pour cela, il faut créer un fichier à cet emplacement sur `deimos` : `/var/lib/fic/dashboard/restricted-ips.json`. + +Le contenu du fichier est un tableau JSON des préfixes d'IP autorisées : + +``` +[ + "192.168.0.1", + "127.0.0.1" +] +``` + +Ou encore : + +``` +[ + "192.168.0.", + "127.0.0.1" +] +``` + +Ce dernier exemple autorise toutes les adresses commençant par 192.168.0. à se connecter.