Devmind.
Menu

Apprendre, à votre rythme

Tous les cursus sont accessibles sans compte.

Chapitre 3 / Notion

Ports, firewall et exposition minimale

Chaque port ouvert est une porte : il faut savoir lesquelles existent et pourquoi.

◷ 16 minutesTravail sur votre machine

Prérequis (cursus dev) : sockets et ports, observer les ports.

Pourquoi

Chaque port ouvert est une porte : il faut savoir lesquelles existent et pourquoi. La plupart des intrusions ne sont pas des exploits hollywoodiens mais des services exposés par inadvertance (une base, un dashboard, voire le daemon Docker lui-même sur 2375 !).

Concepts

  • ss -tlnp : -t TCP, -l en écoute (listen), -n numérique (pas de résolution DNS, plus rapide et exact), -p processus propriétaire. À savoir lire : 0.0.0.0:5432 = écoute sur toutes les interfaces (exposé), 127.0.0.1:5432 = local seul (sain).
  • docker-proxy : petit processus créé par Docker pour chaque port publié (ports:). Le voir dans ss alors que tu n'as rien publié = un ports: oublié.
  • Deny-first : politique « tout fermé par défaut, on ouvre au cas par cas ». L'inverse (tout ouvert sauf exceptions) finit toujours en passoire.

Exemple : UFW

ufw default deny incoming
ufw default allow outgoing
ufw allow 22/tcp
ufw allow 80,443/tcp
ufw allow 22/tcp && sleep 2 && ufw enable

Ordre de sécurité à distance : allow 22 d'abord, test d'une 2e session, puis enable. Comme pour sshd : jamais de changement réseau sans porte de sortie. Vérification depuis l'extérieur :

nmap -Pn -F serveur   # nmap = scanner de ports ; -Pn sans ping, -F top 100 ports

Objectif : 22, 80, 443 — et rien d'autre. Ce que tu vois, l'attaquant le voit.

Cas réel

Un dashboard d'admin exposé sans auth sur un port exotique « parce que personne ne le devinera » : les scanners trouvent tous les ports en quelques minutes. Sécurité par l'obscurité = pas de sécurité. Soit c'est derrière le proxy avec auth, soit ça n'écoute qu'en local.

Pièges

  • Activer UFW sans la règle 22 : déconnexion immédiate, retour via console provider.
  • Oublier l'IPv6 : ufw gère les deux, mais un service qui n'écoute qu'en IPv4 pendant que le DNS annonce de l'IPv6 = downtime mystérieux.
  • Scanner uniquement en local : le firewall vu de l'intérieur n'est pas celui vu de l'extérieur.

À retenir

ss pour voir, deny-first, 22/80/443 seulement, vérification depuis dehors.

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