lundi 8 mai 2017

Hacking | Le port forwarding ( redirection de port )

Nous avons tous voulu un jour partager quelque chose sur notre ordinateur avec un ami. Nous avons tous un jour crée un serveur de jeu ( Minecraft, Rust, Ark, CS:GO) sur notre ordinateur et essayé pendant des heures en vain de connecter nos amis à ce serveur. Nous avons tous crée un site Wordpress, un forum PHPBB, en local via Wamp Server et avons voulu inviter nos amis pour le tester sans succès. Nous avons tous voulu partager un gros fichier directement depuis notre ordinateur sans y arriver .



Alors à l'heure ou j’écris ces lignes les alternatives à ce que je vais vous expliquer, largement plus facile d’accès et d'utilisation existent, en voici quelques-unes :

  1. Pour les serveurs de jeu :  Hamachi, Ngrok, beame-insta-ssl
  2. Pour les sites, les forums : Les sites d’hébergement gratuit
  3. Pour les fichier : Dropbox, Box, Drive, OneDrive ...

Ces alternatives ont toutes des défauts gênants par exemple :

  1. Hamachi : Un ping élevé alors que vous habitez à quelques mètres de vos amis.
  2. Les sites, les forums : Vous devez uploader votre site via FTP, recréer une base de données, dealer avec les erreurs de votre hébergeur gratuit comme une version SQL ou PHP différente des plugins manquants, un serveur Nginx capricieux, un stockage ridicule
  3. Dropbox ou équivalent : Une durée de transfert scandaleusement longue alors que le fichier est tranquillement installé sur votre PC. N'est ce pas idiot de transférer un fichier vers un ordinateur aux états unis pour le transférer à nouveau vers l'ordinateur d'un ami prôche.

Remarque : Tout ce que j'explique dans ce tutoriel est gratuit, ne coûte pas un rond ...

Nous allons dans ce guide transformer votre brave Pc personnel en serveur. Serveur de jeu, serveur Web, serveur de partage de fichiers

A la fin, je vous le promet, vous vous demanderez même pourquoi les alternatives sus-citées existent. En vérité, elles existent pour tous les gens qui n'ont pas compris ce que je vais vous dévoiler ou les gens qui veulent éteindre leur PC 😅 ...

L'explication est longue et complète mais les manipulations à faire au final, ne vous prendront que 15 minutes

Comment permettre à un tiers de se connecter à mon ordinateur sur internet :

 

Vous avez sans doute entendu parler de réseaux dans votre vie, un réseau est une série d'ordinateurs connectés entre eux par câble ou par wi-fi. En fait, pour ne pas vous perdre imaginez seulement que le wi-fi n'est qu'une espèce de câble invisible.

Internet est un immense réseau qui connecte des milliards d'ordinateurs entre eux, dont le votre ...

La complexité d'internet est en fait qu'il ne connecte pas seulement les ordinateurs entre eux mais aussi des réseaux, des sous réseaux des sous sous réseaux à son réseau , vous avez tout suivi ?

Mais pourquoi fait -il cela ?
Réponse : en partie, à cause des adresses

Nous allons expliquer ça en détail, mais avant nous devons parler d'adresses

Lorsque vous voulez vous connecter à un réseau, réseau local ou internet, vous devez connaître l'adresse de l’ordinateur auquel vous voulez vous connecter, plus connu sous le nom d'adresse IP

Ce qui se passe habituellement est que vous allez sur un site internet qui vous donnera cet adresse IP mais comme vous ignorez le fonctionnement d'un réseau, vous donnez l'adresse IP à votre ami, et ce dernier ne parvient pas à se connecter à votre ordinateur

Mais pourquoi un tiers ne parvient pas a se connecter à votre ordinateur en utilisant l'adresse IP que vous lui avez donné ?


C'est parce que l'adresse que vous lui avez donné est l'adresse de la première machine à se connecter sur internet et cette machine est le routeur.

Ce routeur peut être une box un modem, parfois même un appareil auquel vous vous connecter pour obtenir sa connexion ( rappelez vous du point d’accès wi-fi de votre smartphone, voter smartphone sert dans ce cas précis de routeur )

Root en anglais signifie rediriger.

Ce routeur fonctionne simplement, il se connecte à internet et partage la connexion internet à l'ensemble des ordinateurs connectés à lui via câble ou wi-fi ?

Bref, si nous revenons à notre problème, lorsque vous donnez l'adresse ip à votre ami, il se connecte généralement a votre routeur ensuite arrivé dessus, il ne parvient pas à accéder à votre Pc car il se trouve dans le réseau du routeu.

Mais comment permettre à vos amis de se connecter à un ordinateur connecté au routeur ?

C'est le job d'un routeur :

Le routeur crée son propre réseau interne et permet de distribuer la connexions internet entre tous les ordinateurs de son réseau, aussi appelé : trafic

Trafic entrant et sortant :

Internet ou n'importe quel autre réseau fonctionne comme suit.

Lorsque vous avez besoin d’exécuter une action sur un ordinateur du réseau, vous lui envoyez un petit message qu'on appelle requête et vous recevez en retour une réponse.

La requête est quelque chose que vous envoyez, autrement dit c'est du trafic sortant. Ce que vous recevez est du trafic entrant. Ce trafic passe par un tunnel ou port.

Qu'est ce qu'un port ?

Un port est un tunnel qui permet l’échange de données entre deux ordinateurs ou plus. Les ports sont numérotés de 0 à 65535.

Par exemple lorsque vous utilisez un site web, vous utilisez un protocole nommé http, http utilise la plupart du temps le port : 80

Dans le cas d'un serveur Minecraft, il utilise par défaut ( car vous pouvez le changer le port) le port : 25655

Les ports sont interchangeables mais les conventions font que certains port sont réservés à un usage particulier.

Comment fonctionnent les adresses ?

Au départ il existe deux sortes d'adresses IP :

IPV4 : la plus connue elle a cette forme : X.X.X.X
x est un nombre qui peut aller de 0 à 255.
Si on fait un peu de math, on obtient que le nombre de possibilités est de 4.3 milliards ce qui est insuffisant, tellement insuffisant qu'on a inventé en 1980 l'IPV6

IPV6 : la moins connue 5800:10C3:E3C3:F1AA:48E3:D923:D494:AAFF
Vous n'avez pas besoin de comprendre précisément, mais sachez seulement que cette dernière est plus longue et contient des lettres (A à F seulement) donc plus de possibilités d'adresses.
Le nombre possible d'adresses est, tenez-vous bien : 340.282.366.920.938.463.463.374.607.431.768.211.456
Autrement dit : 2 puissance 128

Quelque soit le type d'adresse pour un port donnée l'adresse plus le port s’écriront comme : Adresse:Port


Donc pour revenir à notre problème, nous devons dire à notre ami de se connecter  à l'adresse de notre routeur sur Internet que nous allons récupérer via un site web pour faire simple.

Ensuite il sera bloqué parce que le routeurs ne saura pas comment rediriger le trafic émis par votre amis à votre serveur, c'est la qu'intervient le port forwarding.

Qu'est ce que le port forwarding - Redirection de Port ?

Le port forwarding permet de rediriger du trafic entrant à notre routeur en trafic entrant vers le serveur. 

Port forward signifie redirection de port.

Nous allons prendre dans notre exemple le port 25655, port utilisé par défaut sur Minecraft, mais c'est possible pour chaque port.

Nous allons dire à notre routeur de faire en sorte que tout le trafic entrant vers notre adresse ip sur le réseau d'internet ( autrement dit vers le routeur ) soit redirigé vers notre serveur, en employant le port 25655.

Nous devons connaître l'adresse ip de notre serveur sur le réseaux crée par le routeur, cette adresse est souvent appelé : adresse IP locale
Elle a souvent cette forme : 192.168.x.x

Ce tutoriel est bon pour la récupérer

Ensuite, pour éviter de refaire des manipulations sur notre routeur à chaque fois, nous devons faire en sorte que l’adresse ip locale soit fixe. Autrement dit qu'elle ne bouge pas.

Ce tutoriel est bon pour la rendre fixe sous Windows, il en existe des centaines d'autres ...

Ensuite, vous devez obtenir l'adresse IP de votre routeur, sur le réseau local
ce tutoriel est parfait pour la récupérer.

Vous pouvez aussi au niveau du routeur via votre interface d'administration à laquelle vous pouvez accéder en tapant l'adresse ip du routeur dans un navigateur web : 192.168.x.x ou x est un nombre rendre l'ip de votre machin fixe au niveau du routeur, ça évitera un conflit d'ip dans le futur.

Si vous avez tout compris et que les étapes précédentes ont été réalisées avec succès, vous pouvez à présent passer au port forwarding à proprement parler. 

Pour cette étape, sachant qu'il existe des milliers de modèles de routeurs sur le marché, je vous invite a lire la notice de votre routeur ou votre box puis à vous rendre dans l'interface d'administration de votre box pour configurer tout ça.

Après quelques essais infructueux, vous y arriverez sûrement 😏

Je ne vous lâche cependant pas seul dans la nature, je vous laisse encore certaines notions pour effectuer cela :

La range : certains routeurs ne vous permettent par de rediriger un port mais une plage de ports si vous voulez n'en dirigez qu'un seul, il vous suffira simplement de créer une range d'un seul port autrement dit : 

80 - 80
8080 - 8080
25655 - 25655

TCP ou UDP : ce sont des protocoles complexes, sachez simplement que rediriger un port TCP ne veut pas dire rediriger un port UDP , donc le cas échéant si vous ignorez quel protocole utiliser, faites la redirection pour les deux.

Certain routeurs : proposent carrément une liste préétablie de port à laquelle vous pouvez ajouter votre propre redirection. Cette liste contiendra entre autres ces noms : http, https, ftp, ou le noms d’applications bien connues.

Faites attention du moins si vous n'utilisez pas le port par défaut de l'application. Cette liste même si elle contient le nom de votre application, fera une redirection sur le port par défaut de l'application et donc ne fonctionnera pas si vous avez changé de port.

Certains routeurs vous proposent de créer la redirection de port puis de l'assigner à l'ordinateur que vous vous voulez sur le réseau. 
Cette redirection ne sera normalement assignable qu'une fois vu que le port qui est utilisé ne peut être utilisé que par une seule application à la fois.

Certaines applications comme les serveurs du jeu Rust utilisent plus d'un port. Vous devez par conséquent effectuer une redirection sur tous les ports afin que l'on puisse accéder à l'application depuis l'adresse IP.

Il existe aussi sur internet des tutoriels si vous avez un modèle de box ou routeur populaire qui vous expliqueront pas à pas comment procéder.

Une fois le port forwarding réalisé, il ne vous restera plus qu'a inviter vos amis à se connecter, en faisant bien attention de leur donner votre IP publique récupérée via un site internet, non la locale.


Petites astuces :

  1. Si vous avez un autre ordinateur en local, utilisé par un frère ou une sœur et qu'ils veulent se connecter à votre serveur web ou de jeu, utilisez l'adresse IP locale, cela vous permettra de transférer vos fichiers à un débit de fou, un Ping de malade ... ( la redirection de port n'est d'ailleurs pas indiquée dans ce cas de figure, puisque vous êtes de base connectés au même réseau )
  2. Si l'ordinateur servant de serveur est loin du wi-fi, utilisez un câble Ethernet ( même premier prix ), ça ne coûte pas cher, c'est facile à installer et ça permet d'avoir une connexion stable et de qualité 10 à X fois supérieure selon la jeunesse de votre routeur et votre débit internet en terme de fluctuation de débit, de vitesse de réponse. Rappelez-vous que le wi-fi est bon pour lire ses mails dans le jardin, par pour jouer, ni faire un serveur.
  3. Si vous avez un pare-feu et que vous n'avez aucune idée de comment le configurer, désactivez-le durant l'activité de votre serveur, sinon il rejettera toutes les connexion entrantes.
  4. Si vous avez une adresse ip globale de type IPV4 elle changera tous les jours et vous ne pouvez rien y faire et vous devrez redonner votre ip a chaque fois.
  5. Il existe un solution à cela, vous pouvez utilisez un Dynamic DNS Server. Ce dernier permet de transformer votre adresse ip même si elle change en un nom de domaine fixe et c'est gratuit. Vous pouvez même si vous bidouillez votre routeur, dans la section dns faire en sorte que lorsque votre routeur obtienne une nouvelle adresse, qu'il effectue automatiquement le changement de routage ou niveau du service de Dynamic DNS.

Aucun commentaire:

Enregistrer un commentaire