Cours

Réseau Leçon 4

Ports et protocoles

Comment un même serveur fait tourner plusieurs services, la différence entre TCP et UDP, et les ports à connaître.

20 min

À la fin de cette leçon, tu sauras

  • Comprendre le rôle d'un port
  • Distinguer TCP et UDP
  • Connaître les ports des services courants

Une adresse, plusieurs portes

Un serveur fait souvent tourner plusieurs services : un site web, SSH pour l'administrer, une base de données… L'adresse IP désigne la machine, le port désigne le service. C'est comme une adresse d'immeuble (l'IP) avec un numéro d'appartement (le port). Les ports vont de 0 à 65535.

Les ports à connaître

  • 22 : SSH, l'administration à distance ;
  • 25 : SMTP, l'envoi d'e-mails entre serveurs ;
  • 53 : DNS ;
  • 80 : HTTP, le web non chiffré ;
  • 443 : HTTPS, le web chiffré ;
  • 3306 : MySQL et MariaDB ;
  • 3389 : le bureau à distance de Windows (RDP).

Quand tu tapes https://cours.skapski.fr, ton navigateur se connecte au port 443 du serveur sans que tu l'écrives. Pour un autre port, on le précise : http://localhost:8000.

TCP ou UDP

  • TCP établit une connexion, vérifie que tout arrive, dans l'ordre, et renvoie ce qui s'est perdu. Plus fiable, un peu plus lent : le web, les e-mails, SSH ;
  • UDP envoie sans vérifier. Plus rapide, mais des paquets peuvent se perdre : les jeux en ligne, les appels vidéo, le DNS. Mieux vaut une image qui saute qu'une vidéo qui s'arrête pour attendre.

Le pare-feu

Un pare-feu décide quels ports sont accessibles depuis l'extérieur. Sur un serveur web, on n'ouvre que le strict nécessaire, par exemple 22, 80 et 443, et surtout pas 3306 : la base de données ne doit être joignable que depuis le serveur lui-même.

sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable

Astuce : déplacer SSH sur un autre port que le 22 réduit les tentatives de connexion automatiques des robots. Ça ne remplace pas un vrai mot de passe ou une clé SSH, mais c'est une précaution courante.

À toi de jouer

Complète le fichier en remplaçant les ? par le bon numéro de port, puis indique le protocole de transport (TCP ou UDP) le plus adapté à un jeu en ligne en temps réel.

eleve@cours: ~
  • SSH utilise le port 22
  • HTTP utilise le port 80
  • HTTPS utilise le port 443
  • DNS utilise le port 53
  • MySQL utilise le port 3306
  • Un jeu en temps réel utilise plutôt UDP
Bloqué ? Voir une solution
SSH = 22
HTTP = 80
HTTPS = 443
DNS = 53
MySQL = 3306

jeu en ligne = UDP

Quiz

1Sur quel port un navigateur se connecte-t-il pour https:// ?
2Pourquoi ne pas ouvrir le port 3306 sur Internet ?
3Quel protocole garantit que les données arrivent toutes, dans l'ordre ?