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…
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-upgradessur 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--privilegedsans raison vitale écrite. Images rebuildées : les CVE vivent aussi dedans.
Exemple : les 3 couches
- Accès : SSH clés, root interdit, fail2ban,
sudotracé (/var/log/auth.log: qui a fait quoi). - Surface + patchs : UFW 22/80/443, re-vérifier après chaque service (
ss -tlnp), upgrades auto. - 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).
--privilegedpour « 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.