Aller au contenu

TP – Segmenter un réseau, filtrer et durcir un serveur Linux

BTS SIO SISR 1re année – Bloc 3 – S14

Note

But. Situation : Comment organiser un réseau et configurer un serveur pour qu'une intrusion soit difficile, et ses conséquences limitées ?

Comment ce TP fonctionne. Avant de manipuler, tu écris ce que tu anticipes (« J'anticipe »). Puis tu testes et tu notes ce que tu constates. Tu comprends ce que fait chaque commande (« Je comprends »). Un bilan de compétences clôt la séance. Les manipulations se font sur des machines virtuelles de laboratoire, isolées du réseau de l'établissement. Les identifiants communs d'un TP sont des identifiants de laboratoire : ils ne se réutilisent jamais ailleurs.

Objectif

Concevoir l'architecture réseau sécurisée d'une PME avec sa matrice de flux, puis durcir un serveur Linux en mesurant l'effet de chaque étape.

Contraintes

  • Binôme, durée : 3 h 20.
  • Partie A : sur papier ou avec un éditeur de schémas. Parties B et C : deux VM Debian de laboratoire (srv à durcir, adm poste d'administration).
  • Risque de coupure d'accès : garde toujours une console de la VM srv ouverte (fenêtre de la VM, pas SSH) pendant les modifications.

Partie A. Concevoir l'architecture de CycloShop (50 min)

Situation (fictive). CycloShop (35 salariés) a : un site web de vente en ligne, un serveur de fichiers, un serveur de base de données, un serveur de messagerie hébergé à l'extérieur, 30 postes, 4 imprimantes réseau, un Wi-Fi invités et un accès VPN pour 6 télétravailleurs. Un administrateur gère l'ensemble.

  1. Dessine le réseau avec au moins quatre zones. Place chaque élément dans sa zone. ______________________
  2. Remplis la matrice de flux (le port si le flux est autorisé, « Non » sinon).
De ↓ / Vers → Internet DMZ (web) Serveurs (fichiers, base) Administration Imprimantes
Internet —
Postes (LAN)
Wi-Fi invités
Télétravail (VPN)
DMZ (web)
Administration
  1. Où places-tu le serveur de base de données ? Qui peut lui parler ? ______________________
  2. Où places-tu le Wi-Fi invités ? Que doit-il pouvoir atteindre ? Où placerais-tu aussi les téléphones personnels des salariés ? ______________________
  3. Que se passe-t-il si un attaquant prend le contrôle du serveur web de la DMZ ? Jusqu'où peut-il aller dans ton schéma ? ______________________
  4. Quelle est la règle finale de ton pare-feu ? ______________________

Partie B. Mesurer l'état initial du serveur (30 min)

Sur la VM srv :

sudo apt update && sudo apt install -y lynis
ss -tlnp
systemctl list-unit-files --state=enabled --type=service | head -30
sudo lynis audit system --quick 2>&1 | tail -40
sudo grep -E "hardening_index|warning\[\]|suggestion\[\]" /var/log/lynis-report.dat | head -20

Je comprends.

Commande Rôle
ss -tlnp Liste les ports TCP en écoute et le programme associé
systemctl list-unit-files --state=enabled Services lancés au démarrage
lynis audit system Audite la configuration (authentification, noyau, réseau, services…)
hardening_index Score de durcissement donné par Lynis (de 0 à 100)
warning[], suggestion[] Avertissements et suggestions du rapport

Questions.

  1. Quels ports sont à l'écoute sur srv ? Chacun est-il nécessaire ? ______________________
  2. Quel est le score initial ? Note-le : score_avant = ______
  3. Cite deux avertissements ou suggestions importantes de Lynis. ______________________

Partie C. Durcir le serveur (100 min)

Applique les mesures une par une, en testant après chacune.

C1. SSH par clés

Sur la VM adm, crée une clé et envoie-la à srv (adapte l'adresse de srv) :

ssh-keygen -t ed25519 -f ~/.ssh/id_lab -C "labo-sisr"
ssh-copy-id -i ~/.ssh/id_lab.pub etudiant@192.168.56.10
ssh -i ~/.ssh/id_lab etudiant@192.168.56.10 "hostname"

Sur srv, crée /etc/ssh/sshd_config.d/10-durcissement.conf :

PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
MaxAuthTries 3
LoginGraceTime 30
AllowUsers etudiant
X11Forwarding no
sudo sshd -t && echo "configuration valide"
sudo systemctl reload ssh

J'anticipe. Depuis adm, une connexion sans clé (ssh -o PubkeyAuthentication=no etudiant@192.168.56.10) va-t-elle réussir ? ______________________

Éléments de réponse

Non : Permission denied (publickey). Le serveur n'accepte plus le mot de passe.

ssh -o PubkeyAuthentication=no etudiant@192.168.56.10
ssh -i ~/.ssh/id_lab root@192.168.56.10
ssh -i ~/.ssh/id_lab etudiant@192.168.56.10 "echo connexion par clé OK"
  1. Pourquoi lancer sshd -t avant reload ? Que risquait-on sinon ? ______________________
  2. Pourquoi désactiver l'authentification par mot de passe fait-il disparaître toute une famille d'attaques (S03) ? ______________________
  3. Où est stockée la clé privée sur adm ? Comment la protéger (phrase secrète) ? ______________________

C2. Pare-feu local en refus par défaut

sudo apt install -y ufw
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow from 192.168.56.20 to any port 22 proto tcp
sudo ufw enable
sudo ufw status verbose

Teste depuis adm, puis depuis une autre machine ou adresse :

ssh -i ~/.ssh/id_lab etudiant@192.168.56.10 "echo OK"
nc -zv 192.168.56.10 80

Je comprends.

Commande Rôle
default deny incoming Refus par défaut de tout le trafic entrant
default allow outgoing Autorise les connexions sortantes (à resserrer sur un serveur sensible)
allow from … to any port 22 N'autorise que le poste d'administration à joindre SSH
enable Active les règles (après avoir ouvert l'accès SSH !)
  1. Pourquoi a-t-on ouvert le port 22 avant ufw enable ? ______________________
  2. Que répond le port 80 ? Est-ce « fermé » ou « filtré » (silencieux) ? ______________________
  3. Quelle règle ajouterais-tu si srv devait servir un site HTTPS, mais seulement au LAN 192.168.56.0/24 ? ______________________

C3. Services et mises à jour

ss -tlnp
sudo systemctl disable --now avahi-daemon 2>/dev/null; sudo systemctl disable --now cups 2>/dev/null
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades
sudo unattended-upgrade --dry-run --debug 2>&1 | tail -5
  1. Quels services as-tu arrêtés ? Pourquoi ? ______________________
  2. Quel est l'intérêt des mises à jour de sécurité automatiques ? Quel est le risque ? Comment le limiter ? ______________________

C4. Mesurer à nouveau

sudo lynis audit system --quick 2>&1 | tail -5
sudo grep hardening_index /var/log/lynis-report.dat
Étape Score
Avant durcissement
Après SSH par clés
Après pare-feu
Après services et mises à jour
  1. Le score a-t-il progressé ? Quelles suggestions restent ? ______________________
  2. Faut-il viser 100 ? Pourquoi un score n'est-il pas un objectif en soi ? ______________________
  3. Rédige trois lignes de documentation : ce que tu as changé, pourquoi, comment revenir en arrière. ______________________

Partie D. Vérification (20 min)

Complète la fiche de contrôle de srv :

Contrôle Commande Résultat attendu Constaté
Ports en écoute ss -tlnp Uniquement ceux nécessaires
SSH par clés sudo sshd -T \| grep -E "passwordauthentication\|permitrootlogin" no et no
Pare-feu actif sudo ufw status active, règles minimales
Mises à jour auto systemctl status unattended-upgrades Actif

Retour en entreprise

Si ta situation le permet : observe comment ton entreprise traite ce sujet, note en quelques lignes l'écart avec le TP, et, avec l'accord de ton tuteur, réalise une partie sur une situation réelle. Anonymise tes captures. Voir Transfert en entreprise.

Bilan de la séance

Remplis ce bilan seul, honnêtement : il sert à décider ce qu'il faut reprendre. Niveau : Non maîtrisé, Maîtrise partielle, Bonne maîtrise ou Excellente maîtrise (le vocabulaire des grilles nationales d'évaluation) ; Non évalué si tu n'as pas travaillé la compétence aujourd'hui.

Compétence du référentiel Ce que j'ai fait dans cette séance Niveau
B3.3 – Sécuriser les équipements et les usages des utilisateurs
B3.4 – Garantir la disponibilité, l'intégrité et la confidentialité des services informatiques et des données de l'organisation face à des cyberattaques
B3.5A – Assurer la cybersécurité d'une infrastructure réseau, d'un système, d'un service

Note

Les codes sont ceux du référentiel (l'arrêté numérote des activités : les codes « B… » sont un usage courant).

Je sais faire, sans aide :

  • Découper un réseau en zones et justifier les flux ;
  • Configurer SSH par clés et désactiver les accès risqués ;
  • Poser un pare-feu en refus par défaut sans se couper l'accès ;
  • Mesurer l'effet d'un durcissement avec un audit ;
  • Citer deux référentiels de bonnes pratiques.

Ce que je dois reprendre : ______________________

Ma question à poser à l'enseignant : ______________________