Le client initie une ouverture active pour la connexion de contrôle et une ouverture passive pour la connexion de données dans certains scénarios de réseau, principalement pour résoudre les problèmes de pare-feu et de traversée NAT. Voyons pourquoi :
* Connexion de contrôle (ouverture active) : La connexion de contrôle est utilisée pour établir les paramètres du transfert de données, tels que le type de données, le port à utiliser pour le transfert de données et toute authentification nécessaire. Le client initie activement cette connexion car il doit indiquer au serveur ce qu'il veut faire. Le serveur écoute passivement sur un port connu (par exemple 22 pour SSH, 21 pour FTP). Le pare-feu autorise généralement les connexions entrantes vers ces ports établis, facilitant ainsi l'initiation de la connexion de contrôle par le client.
* Connexion de données (ouverture passive) : Une fois la connexion de contrôle établie, le serveur écoute souvent passivement la connexion de données du client. Cela se fait pour plusieurs raisons :
* Traversée NAT : La traduction d'adresses réseau (NAT) peut compliquer les choses. Un client derrière un routeur NAT peut avoir une adresse IP privée qui n'est pas directement routable vers Internet. Si le serveur écoute passivement, le client n'a besoin que de connaître l'adresse IP publique et le port du serveur, et le serveur gère les détails de la réception de la connexion de données. Le serveur peut utiliser des techniques telles que la redirection de port ou des protocoles tels que la traversée NAT (par exemple, STUN ou TURN) pour faciliter cela.
* Restrictions du pare-feu : Les pare-feu sont souvent configurés pour être plus restrictifs sur les connexions sortantes que sur les connexions entrantes. En laissant le serveur écouter passivement, le client n'a qu'à établir une connexion sortante vers le port de contrôle du serveur, ce qui est généralement autorisé. La connexion de données entrantes au port alloué dynamiquement du client peut être plus difficile à autoriser via le pare-feu. Notez que le client doit *encore* initier la connexion de données.
* Sécurité : Dans certains cas, il est considéré comme plus sûr que le serveur accepte passivement la connexion de données. Cela pourrait offrir une certaine protection contre certaines attaques, bien que le principal avantage ici soit la traversée du NAT et du pare-feu.
En bref, la combinaison d'une connexion de contrôle active et d'une connexion de données passive est une stratégie courante pour contourner les limitations et restrictions de sécurité imposées par les pare-feu et le NAT. Le client établit activement le canal de contrôle pour négocier les termes, et le serveur accepte passivement le canal de données pour simplifier la traversée NAT et peut-être améliorer la sécurité. L'implémentation exacte varie en fonction du protocole (FTP, SSH, etc.).
|