Cowboy
12/11/2010, 12h06
Présentation de la solution
Certaines application utilise des ports peu commun (quasiment toute).
Minecraft utilise de flux qui passe par des port non autorisé, pour s'authentifier ou pour communiquer.
Si le surf sur le web est autorisé, il est possible de faire passer les flux de Minecraft dans le port 80 ou 443.
Ces deux ports sont généralement les seul ports "ouvert" qui laisse passer les flux.
80 et 443 car ce sont les ports qui sont utilisé pour le surf via le HTTP(80) et le HTTPS(443)
L'idée est donc de demander à Minecraft de communiquer via ces deux ports.
Ensutie un serveur réceptionne le flux et fait office de passerelle, donc il renvoit le flux via le serveur demander par MC sur les bon port.
Il existe une solution "clé en main" qui s'appel FrozenWay, cela install une carte réseau virtuel sur la machine en question.
Ici je vais décrire la méthode pour créer son tunnel de A à Z, avec la configuration coté serveur (Linux debian) et du client (Putty).
L'utilisation de putty permet d'avoir un tunnel SSH sans installation sur la machine et cela ne laisse pas de trace.
Ptiti schema récupérer au hasard :
http://uppix.net/8/4/e/2caa54064f2f548a2d8010f73f4f0t.jpg (http://uppix.net/8/4/e/2caa54064f2f548a2d8010f73f4f0.html)
Vert = Flux Web
Violet = Flux Minecraft
Bleu = Flux MineCraft dans le flux Web
En haut, communication normal, le flux MineCraft est bloqué
En bas, communication via le HTTPS, le flux MineCraft passe.
Coté serveur
Sous windows :
Je ne voulais pas de Cygwin qui est très lourde à mettre en place.
N'ayant pas de linux sous la main pour le moment, j'ai cherché (longtemps) et trouvé FreeSSHd (http://www.freesshd.com/).
Il faut configurer un utilisateur dans l'onglet "User"
l'IP à écouter dans l'onglet "SSH"
Et lancer le serveur dans l'onglet "Server Statut"
Idéalement, dans l'onglet "Host restrictions" vous ne mettez que les adresses publique qui doivent se connecter a votre serveur. Par exemple, IP publique de votre bureau.
Sous Linux :
http://blog.nicolargo.com/2010/10/installation-dun-serveur-openvpn-sous-debianubuntu.html
Ca repose sur le même principe, c'est bien plus stable et pratique.
Redirection de Port
Sur le routeur du serveur, il faut rediriger le flux 443 vers le serveur.
Donc une règles de NAT à ajouter sur votre Box. Un exemple avec une NeufBox :
http://uppix.net/2/a/2/3751e258128e26fb2999a309621d4.png
Le serveur à l'adresse : 192.168.1.2
Un exemple avec une Freebox :
http://uppix.net/7/9/e/35faffa622de8ee6ce8ddea8975a1.png
Le serveur à l'adresse : 192.168.0.1
Coté client
On utilise PUTTY pour effectuer la redirection des flux dans le 443.
Vous devez connaitre l'ip du proxy, le port, l'adresse public de votre serveur et le port qui va servir à tout rediriger.
C'est à dire qu'on va demander a certaine application de passer dans un PORT (par exemple 666) spécifique pour que leur flux passe par le Tunnel SSH établi avec votre serveur.
Voici la configuration à effectuer :
http://uppix.net/8/b/5/3e1b7d860e41b46dc6466411583eft.jpg (http://uppix.net/8/b/5/3e1b7d860e41b46dc6466411583ef.html)
Vous pourrez à ce moment configurer votre navigateur avec comme proxy 127.0.0.1:666
Tout les flux du navigateur iront dans le port 666 de votre PC et passeront par le tunnel.
Vous pouvez utiliser FoxyProxy pour ne faire passer que certain site dans ce tunnel :D
Coté applicatif
Avec Minecraft, on a un soucis, c'est à dire que MineCraft ne permet pas la configuration d'un proxy ...
La seul solution est de créer un tunnel SSH qui va rediriger tout les flux via un port ouvert (443 ou 80 généralement).
Donc on va utiliser un logiciel qui est SockCap control (cowboy.bdd.free.Fr/Fichier/SocksCap.v2.37.zip).
Voici la configuration :
http://uppix.net/3/8/7/ebbefe52ed8a71629aec8eaa51ab0t.jpg (http://uppix.net/3/8/7/ebbefe52ed8a71629aec8eaa51ab0.html)
On demande simplement à toute les applications qui passeront pas SocksCap d'utiliser l'IP 127.0.0.1:666, pour passer via le Tunnel.
Ensuite il faut ajouter une application :
http://uppix.net/6/5/9/2265fb5cacaebee469e2955be0748t.jpg (http://uppix.net/6/5/9/2265fb5cacaebee469e2955be0748.html)
Et de lancer MineCraft via SocksCap.
Certaines application utilise des ports peu commun (quasiment toute).
Minecraft utilise de flux qui passe par des port non autorisé, pour s'authentifier ou pour communiquer.
Si le surf sur le web est autorisé, il est possible de faire passer les flux de Minecraft dans le port 80 ou 443.
Ces deux ports sont généralement les seul ports "ouvert" qui laisse passer les flux.
80 et 443 car ce sont les ports qui sont utilisé pour le surf via le HTTP(80) et le HTTPS(443)
L'idée est donc de demander à Minecraft de communiquer via ces deux ports.
Ensutie un serveur réceptionne le flux et fait office de passerelle, donc il renvoit le flux via le serveur demander par MC sur les bon port.
Il existe une solution "clé en main" qui s'appel FrozenWay, cela install une carte réseau virtuel sur la machine en question.
Ici je vais décrire la méthode pour créer son tunnel de A à Z, avec la configuration coté serveur (Linux debian) et du client (Putty).
L'utilisation de putty permet d'avoir un tunnel SSH sans installation sur la machine et cela ne laisse pas de trace.
Ptiti schema récupérer au hasard :
http://uppix.net/8/4/e/2caa54064f2f548a2d8010f73f4f0t.jpg (http://uppix.net/8/4/e/2caa54064f2f548a2d8010f73f4f0.html)
Vert = Flux Web
Violet = Flux Minecraft
Bleu = Flux MineCraft dans le flux Web
En haut, communication normal, le flux MineCraft est bloqué
En bas, communication via le HTTPS, le flux MineCraft passe.
Coté serveur
Sous windows :
Je ne voulais pas de Cygwin qui est très lourde à mettre en place.
N'ayant pas de linux sous la main pour le moment, j'ai cherché (longtemps) et trouvé FreeSSHd (http://www.freesshd.com/).
Il faut configurer un utilisateur dans l'onglet "User"
l'IP à écouter dans l'onglet "SSH"
Et lancer le serveur dans l'onglet "Server Statut"
Idéalement, dans l'onglet "Host restrictions" vous ne mettez que les adresses publique qui doivent se connecter a votre serveur. Par exemple, IP publique de votre bureau.
Sous Linux :
http://blog.nicolargo.com/2010/10/installation-dun-serveur-openvpn-sous-debianubuntu.html
Ca repose sur le même principe, c'est bien plus stable et pratique.
Redirection de Port
Sur le routeur du serveur, il faut rediriger le flux 443 vers le serveur.
Donc une règles de NAT à ajouter sur votre Box. Un exemple avec une NeufBox :
http://uppix.net/2/a/2/3751e258128e26fb2999a309621d4.png
Le serveur à l'adresse : 192.168.1.2
Un exemple avec une Freebox :
http://uppix.net/7/9/e/35faffa622de8ee6ce8ddea8975a1.png
Le serveur à l'adresse : 192.168.0.1
Coté client
On utilise PUTTY pour effectuer la redirection des flux dans le 443.
Vous devez connaitre l'ip du proxy, le port, l'adresse public de votre serveur et le port qui va servir à tout rediriger.
C'est à dire qu'on va demander a certaine application de passer dans un PORT (par exemple 666) spécifique pour que leur flux passe par le Tunnel SSH établi avec votre serveur.
Voici la configuration à effectuer :
http://uppix.net/8/b/5/3e1b7d860e41b46dc6466411583eft.jpg (http://uppix.net/8/b/5/3e1b7d860e41b46dc6466411583ef.html)
Vous pourrez à ce moment configurer votre navigateur avec comme proxy 127.0.0.1:666
Tout les flux du navigateur iront dans le port 666 de votre PC et passeront par le tunnel.
Vous pouvez utiliser FoxyProxy pour ne faire passer que certain site dans ce tunnel :D
Coté applicatif
Avec Minecraft, on a un soucis, c'est à dire que MineCraft ne permet pas la configuration d'un proxy ...
La seul solution est de créer un tunnel SSH qui va rediriger tout les flux via un port ouvert (443 ou 80 généralement).
Donc on va utiliser un logiciel qui est SockCap control (cowboy.bdd.free.Fr/Fichier/SocksCap.v2.37.zip).
Voici la configuration :
http://uppix.net/3/8/7/ebbefe52ed8a71629aec8eaa51ab0t.jpg (http://uppix.net/3/8/7/ebbefe52ed8a71629aec8eaa51ab0.html)
On demande simplement à toute les applications qui passeront pas SocksCap d'utiliser l'IP 127.0.0.1:666, pour passer via le Tunnel.
Ensuite il faut ajouter une application :
http://uppix.net/6/5/9/2265fb5cacaebee469e2955be0748t.jpg (http://uppix.net/6/5/9/2265fb5cacaebee469e2955be0748.html)
Et de lancer MineCraft via SocksCap.