Devmind.
Menu

Apprendre, à votre rythme

Tous les cursus sont accessibles sans compte.

Chapitre 8 / Notion

Durcir le serveur

On ne sécurise pas contre « les hackers » en général mais contre des vecteurs précis : brute-force SSH, services exposés, failles connues non patchées, conteneurs trop…

◷ 16 minutesTravail sur votre machine

Prérequis : cours 1.1 (SSH), 3.1 (firewall) ; défense en profondeur.

Pourquoi

On ne sécurise pas contre « les hackers » en général mais contre des vecteurs précis : brute-force SSH, services exposés, failles connues non patchées, conteneurs trop privilégiés. Chacun a une contre-mesure simple — l'empilement (défense en profondeur) fait la sécurité.

Concepts

  • CVE (Common Vulnerabilities and Exposures) : le numéro d'une faille connue (CVE-2024-xxxx). « CVE connue + serveur non patché » = compromission quasi certaine à terme : d'où unattended-upgrades sur Debian (patchs de sécurité automatiques).
  • fail2ban : lit les logs (sshd…) et bannit temporairement les IP insistantes ([sshd] enabled = true, bantime = 1h, maxretry = 5). Vérifier : fail2ban-client status sshd.
  • Confinement conteneurs : no-new-privileges:true (interdit au processus d'acquérir de nouveaux privilèges) + capabilities minimales (les capabilities découpent le pouvoir root en morceaux : on ne donne que les morceaux utiles) + jamais --privileged sans raison vitale écrite. Images rebuildées : les CVE vivent aussi dedans.

Exemple : les 3 couches

  1. Accès : SSH clés, root interdit, fail2ban, sudo tracé (/var/log/auth.log : qui a fait quoi).
  2. Surface + patchs : UFW 22/80/443, re-vérifier après chaque service (ss -tlnp), upgrades auto.
  3. Comptes : un compte par humain, jamais d'« admin » partagé ; départ = révocation partout le même jour (clés, tokens, sessions) via checklist écrite.

Cas réel

Service de monitoring exposé sans auth « temporairement » (18 mois) : minage discret, facture CPU + IP blacklistée (inscrite sur les listes anti-spam/abus). Leçon : le temporaire qui dure est la faille la plus fréquente — tout accès exposé a une auth ou n'existe pas.

Pièges

  • Changer le port SSH « pour la sécurité » : les scanners trouvent tout, ça ne protège de rien (juste moins de bruit dans les logs).
  • --privileged pour « que ça marche » : donne au conteneur (presque) les pouvoirs de l'hôte.
  • Révocation « je crois que c'est fait » : checklist ou rien.

À retenir

Fail2ban + clés, surface re-vérifiée, patchs auto, conteneurs confinés, comptes nominatifs révoqués.

Pas de correction en ligneConfrontez votre code aux résultats attendus du cours.