Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1850 connectés 

  FORUM HardWare.fr
  Réseaux grand public / SoHo
  Réseaux

  [Résolu] Serveur WEB derrière un NAT qu'on ne peut pas configurer

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] Serveur WEB derrière un NAT qu'on ne peut pas configurer

n°421091
nlc
Le mieux est l'ennemi du bien
Posté le 01-07-2009 à 17:17:14  profilanswer
 

Bonjour à tous  :hello:  
 
J'ai un boîtier électronique (avec un linux embarqué) qui implémente un serveur WEB, et est connecté à internet par GPRS.
Je veux pouvoir accéder au boîtier depuis n'importe où, donc il faudrait que le boîtier soit connecté au net avec une IP publique.
 
Problème, les opérateurs téléphoniques GPRS fournissent une IP privée, on se retrouve derrière leur NAT et donc il est impossible de faire une connexion entrante vers le boîtier.
Il y a la possibilité d'avoir une IP publique mais c'est la croix et la bannière, et l'abonnement est hors de prix.
 
Pour palier au problème, j'ai une idée qui ne devrait pas être trop difficile à implémenter, mais si ça se trouve ça existe déjà, donc peut être que ça m'éviterait de réinventer la roue ?
 
Il suffirait que sur le boîtier j'ai un petit programme démon qui se connecte en tant que client sur un serveur quelque part sur internet, de manière à créer un tunnel. Le démon aurait juste à rediriger les flux entrants/sortants de ce tunnel vers/depuis le port 80 local.
 
Et du côté du serveur, il y aurait un autre démon qui écoute les connexions entrantes sur le port 80, et redirigait les requêtes vers la socket du tunnel.
 
Techniquement c'est faisable, et coder ça ne me fait pas peur. Mais peut être qu'il existe déjà quelque chose pour faire ça !?


Message édité par nlc le 02-07-2009 à 15:01:03

---------------
char table[] = {112,114,105,110,116,102,40,34,37,99,37,99,37,99,34,44,49,49,48,44,49,48,56,44,57,57,41,59,0}; char* tablePtr = table; while(*tablePtr) printf( "%c",*tablePtr++ );
mood
Publicité
Posté le 01-07-2009 à 17:17:14  profilanswer
 

n°421098
arkrom
note, ca passait c'etait beau
Posté le 01-07-2009 à 18:16:20  profilanswer
 

ca a deja etait fait ca il me semble, je vais chercher  
 
niveau concept ca me parait proche d'un reverse proxy + tunnel SSL non ??


---------------
I sit, in my desolate room, no lights, no music, Just anger, I've killed everyone, I'm away forever, but I'm feeling better,How do I feel,What do I say,Fuck you, it all goes away,
n°421105
nlc
Le mieux est l'ennemi du bien
Posté le 01-07-2009 à 19:21:40  profilanswer
 

reverse proxy ? Je ne connaissais pas le terme, je vais voir si ça correspond bien à mon besoin !
 


---------------
char table[] = {112,114,105,110,116,102,40,34,37,99,37,99,37,99,34,44,49,49,48,44,49,48,56,44,57,57,41,59,0}; char* tablePtr = table; while(*tablePtr) printf( "%c",*tablePtr++ );
n°421114
nlc
Le mieux est l'ennemi du bien
Posté le 01-07-2009 à 20:38:14  profilanswer
 

Bon j'ai regardé, ça ne colle pas le reverse proxy.
En fait ça se met en amont d'un ou plusieurs serveur web (qui peuvent etre sans doute sur reseau natté mais dans ce cas le reverse proxy doit être la passerelle), et ça permet de faire du cache, faire le tunnel SSL, de l'équilibrage de flux sur plusieurs serveur web, etc...
 


---------------
char table[] = {112,114,105,110,116,102,40,34,37,99,37,99,37,99,34,44,49,49,48,44,49,48,56,44,57,57,41,59,0}; char* tablePtr = table; while(*tablePtr) printf( "%c",*tablePtr++ );
n°421158
nlc
Le mieux est l'ennemi du bien
Posté le 02-07-2009 à 12:40:40  profilanswer
 

Je crois que j'ai trouvé la solution, grâce à ssh et la possibilité de faire du "remote port forwarding"
 
Sur le boîtier derrière le réseau naté, je lance la commande :
 
ssh -R 12345:localhost:80 user@serveur.com
 
Ca a pour effet d'ouvrir un tunnel ssh vers le serveur, et d'ouvrir le port 12345 sur le serveur. Et toute connexion faite sur ce port du serveur est redirigé vers le port 80 local du boitier à travers le tunnel ssh.
 
Quand je me loggue sur le serveur, et que je lance un client web sur le port 12345, j'atteins bien le serveur web du boitier à travers le tunnel !!
 
Par contre je n'ai pas accès au port 12345 du serveur depuis l'extérieur, mais ça c'est juste un problème de config ou de firewall je pense !


Message édité par nlc le 02-07-2009 à 12:42:49

---------------
char table[] = {112,114,105,110,116,102,40,34,37,99,37,99,37,99,34,44,49,49,48,44,49,48,56,44,57,57,41,59,0}; char* tablePtr = table; while(*tablePtr) printf( "%c",*tablePtr++ );
n°421170
nlc
Le mieux est l'ennemi du bien
Posté le 02-07-2009 à 14:57:12  profilanswer
 

C'est bon ça marche !
 
La commande magique du côté du boîtier électronique derrière le réseau naté de type 3G/GPRS (ou n'importe quel réseau naté du coup !) :
 
ssh -R *:12345:localhost:80 user@serveur.com
 
Le *: permet d'indiquer au serveur ssh d'ouvrir à l'ecoute le port 12345 sur toutes les interfaces réseau, et pas seulement l'interface localhost. Par contre sur le serveur ssh il faut rajouter l'option GatewayPorts yes dans le fichier /etc/ssh/sshd_config (et redemarrer ssh bien sûr).
 
Du coup le boîtier se connecte au serveur en ssh, ce qui crée le tunnel, et sur le serveur le port 12345 est ouvert et accessible de n'importe où. Les connexions entrantes sur ce port sont redirigées dans le tunnel à destination du boitier vers le port 80.
 
Du coup dans les boitiers à chaque déconnexion/reconnexion réseau, j'ai juste à appeler une url php sur le serveur en indiquant un identifiant boitier (par exemple l'adresse mac), et en retour je récupère le n° du port à utiliser dans la commande ssh.
 
Comme ça je peux ensuite me connecter à n'importe quel boitier en me connectant sur le serveur avec le bon numéro de port :
http://serveur.com:portCorrespondAuBoitier
 
Merci ssh ! :bounce:  :bounce:


---------------
char table[] = {112,114,105,110,116,102,40,34,37,99,37,99,37,99,34,44,49,49,48,44,49,48,56,44,57,57,41,59,0}; char* tablePtr = table; while(*tablePtr) printf( "%c",*tablePtr++ );

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Réseaux grand public / SoHo
  Réseaux

  [Résolu] Serveur WEB derrière un NAT qu'on ne peut pas configurer

 

Sujets relatifs
[Résolu] Créer réseau Wifi avec connexion internet via une box en WifiFichier corrompu sur serveur web
[Serveur] Les acteurs du Web ;)transformer mon serveur linux en passerelle internet
[Reseaux] Acces sécurisé à un serveur TSE depuis l'extérieur[Livebox] Problème NAT et redirection de ports entrants
Enigme reseau pour expert seulement (resolu)Serveur mandataire
[résolu]Se connecter avec une adresse orange à msn 
Plus de sujets relatifs à : [Résolu] Serveur WEB derrière un NAT qu'on ne peut pas configurer


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR