Configuration Debian OTP

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¶
- 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).
- 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.
- 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.
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.
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 :¶
- Installer FreeOTP
- Ouvrir le fichier
etudiant.pngsur le PC client. - Scanner le QR Code avec l'application.
Test Final (La connexion)¶
Depuis le PC client