Configurer un serveur web sur raspberry derrière une box

Problème d'accès depuis l'extérieur

Le problème exposé dans ce sujet a été résolu.

Bonjour :)

J'ai chez moi une box SFR (avec la fibre, donc IP fixe). J'ai dans le réseau interne fourni par la box un raspberry Pi sur lequel j'ai installé un serveur nginx. Je voudrais rendre accessible les contenus servis par nginx sur Internet, et pas seulement dans mon réseau interne.

  • J'ai configuré le nom de domaine test.cguille.net pour pointer sur l'IP publique de ma box.
  • J'ai créé un petit vhost nginx minimaliste avec un server_name test.cguille.net.
  • J'ai configuré, dans l'admin de la box, une règle DHCP pour que mon raspberry ait une IP fixe dans le réseau interne.
  • J'ai configuré, dans l'admin de la box, une règle NAT pour forwarder les connexions TCP du port 80 de la box vers le port 80 du raspberry.

Et je crois que c'est tout ! À première vue, ça me semble suffisant.

Problème : lorsque j'essaie d'accéder au site web depuis l'extérieur, ça part en timeout. Pourtant :

  • dig montre que la résolution DNS se passe correctement ;
  • lorsque j'accède au site depuis le réseau interne, cela fonctionne.

Pourtant, de l'extérieur ou de l'intérieur, j'ai la même résolution DNS, donc je devrais taper sur la même interface réseau, non ? Cela me laisse penser que le problème vient de la configuration de la box et non du système / serveur web du raspberry.

Avez-vous des idées pour avancer sur ce problème ?

Merci d'avance !

Bonjour cGuille,

Il me semble que, sur la box de SFR, le paramétrage des règles NAT n'est pas suffisant pour autoriser une connexion entrante. Il faut en plus configurer le pare-feu pour autoriser les connexions entrantes sur le port TCP 80, même si cette règle est déjà écrite dans les règles NAT.

J'ai essayé d'interroger ton serveur web et effectivement je n'ai pas eu de réponse. Chez moi, pour la résolution DNS, j'ai test.cguille.net -> 79.82.214.96.

Bonjour Davidlouiz,

Merci pour ta réponse !

J'ai essayé de trouver une référence à un pare-feu partout où je pouvais : des pages web de l'assistance SFR à l'administration de la box en passant par des forums divers et variés, et je n'ai pas trouvé de référence à cela. De plus, la page Comment héberger votre site web à la maison avec votre box ? n'en fait aucune mention.

En tout cas, ta réponse me conforte dans l'idée que le problème est bien sur la box. Je crois que je ne vais malheureusement pas couper à un passage sur les forums / l'assistance SFR.

Tu as essayé avec un autre port que 80 pour voir ?

tcit

Pas encore, mais ça peut valoir le coup de tester.

Update: je viens de mettre une règle NAT 8080 → 80 et quand j'essaie d'accéder à http://test.cguille.net:8080 :

  • depuis mon réseau interne j'accède bien à ma page de test ;
  • depuis l'extérieur, ça part toujours en timeout.

Et sans ta redirection NAT, tu tombes bien sur l'interface de ta box de l'extérieur ?

tcit

Si je désactive la règle NAT, un accès extérieur continue de partir en timeout, et un accès depuis l'intérieur m'affiche bien l'admin de la box (alors même que la résolution DNS fournit la même IP).

Update: un collègue m'a conseillé de regarder si il n'y avait pas de règles de sécurité sur mon Raspberry. C'est vrai que l'OS est Raspbmc (je me rends compte que j'avais omis de le préciser) et que ce n'est pas vraiment fait pour être accédé de l'extérieur. Peut-être que la configuration réseau de base refuse les requêtes qui ne viennent pas du réseau local.

En cherchant vite fait, on tombe sur ce genre de posts sur SO : http://raspberrypi.stackexchange.com/questions/5040/raspbmc-filtering-connections-from-outside-lan

Je regarderai demain si je trouve plus d'info ou quelque chose de ce genre dans la conf réseau de Raspbmc !
Merci pour vos conseils !

+0 -0

Si je désactive la règle NAT, un accès extérieur continue de partir en timeout.

Du coup doit y avoir un problème à ce niveau là, si tu n'arrives même pas à avoir accès à ta box. Je n'ai plus de neufbox donc je ne peux pas tester, mais je peux te garantir qu'on accède à beaucoup d'interfaces web en cherchant à partir de Shodan.

+0 -0

Je viens de lancer la commande sudo iptables --list « pour voir ». C'est un outil que je n'ai pas manipulé souvent pour le coup, donc je viens vous demander votre avis parce que je crois qu'il y a quelque chose d'intéressant dans le résultat :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
ACCEPT     all  --  192.168.1.0/24       anywhere            
DROP       all  --  anywhere             anywhere            

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination 

Si je ne m'abuse, les lignes surlignées signifient que pour les paquets entrants :

  • On accepte tous les paquets lorsqu'ils proviennent d'une connexion déjà établie.
  • On accepte tous les paquets qui viennent du LAN (même si ils établissent une nouvelle connexion).
  • On refuse les autres.

Si je ne me suis pas trompé, ça pourrait venir de là, non ? Je crois que je vais devoir me pencher sur la doc d'iptables.

Update: YES ! C'était bien ça !
Avec la commande suivante, j'ai autorisé toutes les connexions entrantes à conditions qu'elles soient en TCP sur le port 80 (comme ça j'autorise vraiment le minimum :) ) :

1
sudo iptables -I INPUT 3 -p tcp --dport 80 -j ACCEPT

Merci pour votre aide !

+2 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte