Qu'est-ce que la redirection de port et à quoi sert-elle?

Réponses:

318

Les bases

Pour vraiment expliquer le transfert de port, vous devez d’abord comprendre un peu plus ce que fait votre routeur . Votre fournisseur de services Internet attribue une adresse IP à votre connexion Internet. Tous les ordinateurs connectés à Internet ont besoin d'une adresse IP unique, mais vous avez plusieurs ordinateurs chez vous et une seule adresse. Donc comment ça fonctionne?

Si vous savez ce que c'est et que vous voulez juste savoir comment faire : http://portforward.com/ propose un guide d'utilisation avec des captures d'écran pour des centaines de routeurs différents. La documentation est cachée derrière une page de publicité pour son outil de configuration automatique de portconfig. (Cliquez juste un peu et vous le trouverez.)

NAT - Qu'est-ce que c'est? Pourquoi l'utilisons-nous?

Votre routeur domestique possède une fonction appelée traduction d'adresse réseau ou NAT intégrée. À l'intérieur de votre réseau, les ordinateurs ont des adresses telles que 192.168.1.100. Toutes les adresses de la plage 192.168. * (Ou de la gamme 10. *) sont des adresses " privées " ou " réservées " . Ces adresses sont officiellement attribuées par l'IANA pour être utilisées à l'intérieur de réseaux privés. Votre routeur attribue automatiquement une telle adresse à chaque ordinateur connecté via DHCP . Ces adresses indiquent comment les ordinateurs de votre réseau communiquent avec le routeur et entre eux.

Votre routeur possède une interface réseau distincte qui le connecte à Internet. Cette interface a une adresse très différente qui est attribuée par votre fournisseur de services Internet. C'est l'adresse que j'ai mentionnée précédemment et votre routeur l'utilise pour communiquer avec d'autres ordinateurs sur Internet. Les ordinateurs de votre réseau ont des adresses IP privées non routables , ce qui signifie que s’ils envoient des paquets directement à Internet, ceux-ci seront automatiquement rejetés (les paquets avec des adresses privées ne sont pas autorisés à parcourir Internet pour des raisons de stabilité). Mais votre routeur a une adresse routable . La traduction d'adresses réseau, comme son nom l'indique, traduit entre ces deux types d’adresses, ce qui permet à plusieurs ordinateurs de votre réseau d’apparaître sur Internet comme un seul ordinateur avec une seule adresse.

Les détails

Bien que cela puisse paraître compliqué, la façon dont votre routeur le fait est en fait assez simple. Chaque fois qu'un ordinateur de votre réseau veut se connecter à un ordinateur sur Internet, il envoie la demande de connexion au routeur (il sait l'envoyer au routeur car son paramètre Default Gateway est défini sur l'adresse du routeur). Le routeur accepte alors cette demande de connexion (une "demande SYN" dans TCP / IP), modifie l'adresse source (l'adresse de réponse ou l'adresse de retour) et la modifie de l'adresse IP privée de l'ordinateur à l'adresse IP publique du serveur. routeur, de sorte que la réponse soit envoyée au routeur. Il note ensuite dans une base de données (appelée table NAT ) que la connexion a été initiée, afin qu'il s'en souvienne ultérieurement.

Lorsque la réponse revient de l'ordinateur distant (un "SYN-ACK"), le routeur examine sa table NAT et constate qu'une connexion à cet hôte sur ce port a déjà été initiée par un ordinateur privé de votre réseau, ce qui modifie la destination. address à l'adresse privée de l'ordinateur, et le transfère à l'intérieur de votre réseau. De cette manière, les paquets peuvent continuer à transiter entre les réseaux, le routeur modifiant de manière transparente les adresses pour que cela fonctionne. Lorsque la connexion est terminée, le routeur la supprime simplement de la table NAT.

Ou pensez de cette façon

C’est peut-être un peu plus facile à visualiser avec une métaphore - disons que vous êtes un transitaire américain qui travaille avec des clients chinois. Ils ont besoin d’envoyer des colis à de nombreux clients aux États-Unis, mais il est plus facile, pour des raisons douanières et administratives, d’envoyer des colis au même endroit. Ainsi, un paquet vous est envoyé par l’un de vos clients en Chine (le réseau privé, dans cet exemple) avec une destination réelle quelque part aux États-Unis (Internet). Vous changez l’étiquette d’adresse de la boîte à l’adresse américaine (publique) et vous modifiez l’adresse de retour en votre propre adresse publique (car elle ne peut pas être renvoyée directement en Chine sans gêner le client) et vous la remettez au service postal. . Si le client retourne le produit, il vient à vous. Vous regardez dans vos archives et vous voyez de quelle compagnie en Chine il vient,

Cela fonctionne très bien, mais il y a un petit problème. Que se passe-t-il si un client a besoin d'envoyer quelque chose à l'entreprise, disons un mandat en paiement de quelque chose? Ou bien, disons qu'un ordinateur sur Internet établit une connexion avec le routeur (une requête SYN), par exemple sur un serveur Web se trouvant sur le réseau. La lettre / le paquet ne contient que l'adresse publique du routeur, le routeur ne sait donc pas où l'envoyer! il peut être destiné à l'un des ordinateurs du réseau privé ou à aucun d'entre eux. Vous avez peut-être rencontré ce problème lorsque vous appelez le téléphone de votre domicile. Ce n'est pas un problème, mais lorsque vous appelez, il est impossible pour cette personne de savoir à qui l'appel est destiné, de sorte que la mauvaise personne peut répondre.

Bien qu'il soit assez facile pour les humains de résoudre ce problème, c'est beaucoup plus compliqué pour les ordinateurs, car tous les ordinateurs de votre réseau ne connaissent pas tous les autres ordinateurs.

Et finalement nous arrivons à la redirection de port

La façon dont nous réglons ce problème est la redirection de port: c'est un moyen d'indiquer à votre routeur à quel ordinateur les connexions entrantes du réseau doivent être dirigées. Nous avons trois façons différentes de le faire:

  • Faux-DMZ : beaucoup de routeurs ont une fonctionnalité appelée DMZ. Cela signifie Zone démilitarisée, qui est une sorte de configuration de sécurité réseau. La DMZ sur les routeurs domestiques est souvent qualifiée de fausse DMZ car elle n’a pas les caractéristiques d’une DMZ réelle. Ce qu'il fait est le type le plus simple de traitement de connexion entrante: toutes les demandes de connexion entrantes seront envoyées à une demande spécifiée à l'intérieur de votre réseau. C'est simple comme bonjour: vous tapez une adresse IP dans la configuration de votre routeur et toutes les connexions entrantes y arrivent. Toutefois, cela ne fonctionne pas toujours, car plusieurs ordinateurs peuvent devoir accepter les connexions entrantes. Pour cela, nous avons ...
  • Transfert de port : Toutes les demandes de connexion réseau incluent un "port". Le port est simplement un numéro, et cela explique en partie comment un ordinateur sait en quoi consiste le paquet. IANA a spécifié que le port 80 est utilisé pour HTTP. Cela signifie qu'un paquet entrant portant le numéro de port 80 doit être une requête destinée à un serveur Web. La redirection de port sur votre routeur vous permet de saisir un numéro de port (ou éventuellement une plage ou une combinaison de chiffres, en fonction du routeur), ainsi qu'une adresse IP. Toutes les connexions entrantes avec un numéro de port correspondant seront transférées vers l'ordinateur interne avec cette adresse.
  • Transfert de port UPnP : le transfert UPnP fonctionne exactement de la même manière que le transfert de port, mais au lieu de le configurer, les logiciels installés sur un ordinateur du réseau configurent automatiquement le routeur pour qu'il transfère le trafic sur un port donné.

Un exemple

Regardons un exemple d'utilisation. Un grand nombre de jeux vidéo multijoueurs (par exemple, Counter Strike) vous permettent de faire fonctionner un serveur de jeux sur votre ordinateur auquel d'autres personnes peuvent se connecter pour pouvoir jouer avec vous. Votre ordinateur ne connaît pas toutes les personnes qui souhaitent jouer. Il ne peut donc pas s'y connecter. Ils doivent envoyer de nouvelles demandes de connexion à votre ordinateur à partir d'Internet.

Si vous n’avez rien configuré sur le routeur, celui-ci recevra ces demandes de connexion, mais il ne sait pas quel ordinateur du réseau dispose du serveur de jeu. Il ne les ignore donc pas (ou, plus précisément, il envoie un paquet indiquant qu’il ne peut pas se connecter). Heureusement, vous connaissez le numéro de port qui sera utilisé pour les demandes de connexion du serveur de jeu. Ainsi, sur le routeur, vous définissez un port de transfert avec le numéro de port attendu par le serveur de jeu (par exemple, 27015) et l'adresse IP de l'ordinateur avec le serveur de jeu (par exemple, 192.168.1.105).
Le routeur saura transférer les demandes de connexion entrantes vers 192.168.1.105 sur le réseau et les ordinateurs extérieurs pourront se connecter.

Un autre exemple serait un réseau local avec deux machines, où la seconde avec l'adresse IP 192.168.1.10 héberge un site Web utilisant Apache. Par conséquent, le routeur doit transmettre les demandes entrantes du port 80 à cette machine. À l'aide de la redirection de port, les deux machines peuvent fonctionner simultanément sur le même réseau.

Exemple de graphique de redirection de port

Les jeux vidéo sont peut-être l’endroit le plus courant pour les utilisateurs de tous les jours, même si la plupart des jeux modernes utilisent UPnP, ce qui évite de le faire manuellement (c’est plutôt automatique). Vous devrez le faire chaque fois que vous souhaitez pouvoir vous connecter directement à quelque chose de votre réseau (plutôt que par un intermédiaire sur Internet). Cela peut inclure l’exécution de votre propre serveur Web ou la connexion via un protocole Remote Desktop à l’un de vos ordinateurs.

Une note sur la sécurité

L'un des avantages de la traduction d'adresses réseau est qu'elle offre une sécurité intégrée sans effort. Beaucoup de gens se promènent sur Internet à la recherche de machines vulnérables ... et le font en essayant d'ouvrir des connexions avec différents ports. Ce sont des connexions entrantes, ainsi, comme indiqué ci-dessus, le routeur les abandonnera. Cela signifie que dans une configuration NAT, seul le routeur lui-même est vulnérable aux attaques impliquant des connexions entrantes. C’est une bonne chose, car le routeur est beaucoup plus simple (et donc moins vulnérable) qu’un ordinateur exécutant un système d’exploitation complet avec de nombreux logiciels. Vous devez donc garder à l'esprit que, si vous détruisez un ordinateur à l'intérieur de votre réseau (en le définissant comme destination DMZ), vous perdez cette couche de sécurité pour cet ordinateur: il est maintenant complètement ouvert aux connexions entrantes provenant d'Internet, vous devez donc le sécuriser comme s'il était directement connecté. Bien sûr, chaque fois que vous transférez un port, l'ordinateur du destinataire devient vulnérable sur ce port spécifique. Veillez donc à utiliser un logiciel à jour, correctement configuré.

jcrawfordor
la source
2
Vous en avez brièvement parlé, mais vous voudrez peut-être expliquer l’importance des utilisations du transfert de port dans le style DMZ. Je ne vois pas de cas où il serait judicieux, dans un environnement de production, d'exposer quelque chose comme un serveur SQL (ou autre) au monde extérieur. Le transfert de port peut permettre d'accéder à des ressources protégées sans compromettre sérieusement la sécurité.
Brian Vandenberg
11
Un détail non détaillé dans la section NAT est le fait que si les ordinateurs de votre réseau utilisent DHCP pour obtenir leurs adresses IP privées internes non routables, il est possible que celle qui leur est affectée varie et si cela se produit, la redirection de port se foiré. Il est préférable d'éviter cela en configurant manuellement l'adressage réseau de chaque ordinateur. portforward.com souligne l'importance de cela et propose un guide décrivant la procédure de configuration d'une adresse IP statique sur un système. Toutefois, il ne mentionne pas la nécessité de configurer également le DHCP du routeur pour éviter ces adresses NAT maintenant réservées.
martineau
2
@ jcrawfordor, Bonjour, pouvez-vous expliquer comment UPnP est-il entièrement automatique? Qu'est-ce que l'UPnP et comment ça marche?
Pacerier
1
@martineau réserver des adresses DHCP est un bon moyen de le faire. Certains routeurs peuvent être redirigés vers des clients spécifiques, et non des adresses, ce qui est encore préférable.
Baldrickk
2
La partie de la réponse qui dit, "Le port est juste un nombre, et cela fait partie de la façon dont un ordinateur sait ce qu'est le paquet." est trompeur. Fixer un numéro de port pour une application est une convention, ce n'est pas un facteur pour déterminer le type de paquet. Au mieux, un paquet destiné au port 80 peut être supposé être HTTP, rien de plus, il dépendra entièrement (au niveau de la couche d'application) de l'application qui écoute sur le port 80.
codeman48