Aller au contenu

Configuration Debian OTP

CUB

Auteur : KADA Amine

Classe : BTS SIO 2 - Option SISR

Date : 22/01/2026

Contexte : Installation VM Debian 13 (Modèle)

ID / Noeud :20802 / pve2


A - Installation des outils obligatoires

  1. htop - Un moniteur de processus qui visualise clairement l'utilisation du processeur (CPU), de la mémoire vive et de l'espace d'échange (swap).
# Installation de l'outil htop
sudo apt install htop
  1. tcpdump - Analyseur de paquets réseau en ligne de commande qui permet de capturer et d'afficher en temps réel le trafic transitant sur une interface réseau.
# Installation de l'outil tcpdump
sudo apt install tcpdump
  1. tmux - multiplexeur de terminaux libre qui permet d'exécuter et de contrôler plusieurs programmes ou sessions au sein d'une seule et même fenêtre de terminal.
# Installation de l'outil tmux
sudo apt install tmux

B - Mise en place d'une gestion de logs dans /var/log/

1. Une mise en place d'une gestion de logs avec rsyslog, qui devra se faire via des fichiers texte présents dans la racine /var/log/ et par le daemon rsyslog.

# 1. Installation de rsyslog
sudo apt install rsyslog

# 2. Statut de la gestion rsyslog
sudo systemctl status rsyslog.service

C - Un système de versioning /etc - etckeeper

1. C’est ici que **gérer les versions du répertoire /etc avec Git via etckeeper :

  • Historique complet des changements : chaque modification est enregistrée, datée et associée à un auteur. Cela me permet d’identifier facilement quand et pourquoi un changement a été fait.
  • Retour en arrière simplifié : en cas de problème, je peux restaurer rapidement une ancienne version d’un fichier ou de l’ensemble du répertoire.
  • Audit facilité : lors d’une analyse de sécurité, pouvoir montrer un historique clair de la configuration est un vrai plus.
  • Travail en équipe sécurisé : sur des systèmes gérés par plusieurs administrateurs, cela permet d’éviter des conflits ou des erreurs silencieuses.
  • Sauvegarde efficace : même si ce n’est pas une sauvegarde complète du système, garder une copie versionnée de /etc est un élément clé d’une bonne stratégie de sauvegarde des fichiers /etc.
# 1. Installation de l'outil
sudo apt install etckeeper

# 2. Vérification du moteur de versionning (Git par défaut)
# Fichier : /etc/etckeeper/etckeeper.conf -> Vérifier la ligne VCS="git"

# 3. Initialisation manuelle du dépôt (si non fait par l'installation)
sudo etckeeper init

# 4. Premier commit de sauvegarde
sudo etckeeper commit "Commit initial de mon serveur Debian"

2. Boîte à outils de survie (Commandes Git à connaître)

Commande git à connaitre et qui peuvent sauver des VM :

Action de sauvetage Commande à taper (depuis /etc)
Voir l'historique (Trouver un ID de commit) sudo git log --oneline
Annuler des modifs non commitées sudo git checkout -- nom_du_fichier
Restaurer UN fichier à son état précédent sudo git checkout HEAD^ -- nom_du_fichier
Restaurer UN fichier à un vieux commit précis sudo git checkout <ID_COMMIT> -- nom_du_fichier
Restaurer TOUT le dossier à un ancien état sudo git checkout <ID_COMMIT>
(Il vient à tout écraser !)

3. Exporter son travail (Sauvegarde froide)

Pour externaliser le dossier /etc (par exemple vers un NAS ou le cloud), une simple archive suffit. Elle inclura le dossier .git caché et donc tout l'historique.

sudo tar czf backup-etc-srv-nom_du_serveur.tar.gz /etc

D - Connexion SSH + Auth TOTP

1. Configuration de PAM

PAM (Pluggable Authentication Modules) gère comment on s'authentifie. On va lui dire : "Demande le mot de passe, PUIS le code OATH".

Éditer le fichier SSH de PAM : nano /etc/pam.d/sshd

# 2.Commenter cette ligne pour empêcher la connexion sans OTP :
# @include common-auth

# 2.Ajouter ces deux lignes :
# 2.1. On exige le mot de passe système
auth required pam_unix.so nullok_secure

# 2.2. On exige le code OTP (fichier des clés, durée 30s, 6 chiffres)
auth required pam_oath.so usersfile=/etc/security/users.oath window=30 digits=6

2. Configuration de SSH

Dire à SSH d'utiliser la configuration PAM qu'on vient de modifier.

Éditer nano /etc/ssh/sshd_config :

ChallengeResponseAuthentication yes
# KbdInteractiveAuthentication no  <-- Commenter cette ligne
UsePAM yes

# 1. Redémarrer SSH
sudo systemctl restart ssh

3. Récupération côté Client (Smartphone & PC)

Il faut maintenant passer la clé secrète du serveur vers le smartphone de l'étudiant. Sur le Serveur : Obtenir la clé en Base32

Le serveur a stocké la clé en hexadécimal, il faut la convertir en Base32 (format pour QR Code).

# 1. Lire la clé hexadécimale
cat /etc/security/users.oath
# Exemple: 65f43c70...

# 2. La convertir en Base32 avec oathtool
oathtool -v -d 6 65f43c70...
# -> Récupération de la ligne "Base32 secret" (ex: MX2DY4C4...)

4. Sur le Poste Client (générer le QR Code)

# 1. Installer l'outil pour faire des QR Codes
sudo apt install qrencode

# 2. Générer l'image PNG (Remplacer le secret et l'IP)
qrencode -o etudiant.png 'otpauth://totp/etudiant@172.16.5x.xx?secret=MX2DY4C4...'

Sur le Smartphone :

  1. Installer FreeOTP
  2. Ouvrir le fichier etudiant.png sur le PC client.
  3. Scanner le QR Code avec l'application.

Test Final (La connexion)

Depuis le PC client

ssh etudiant@172.16.5x.xx
# 1. Password: <mot_de_passe>
# 2. One-time password (OATH): <code_6_chiffres_OTP>