Mettre serveur web local en ligne sans ouvrir de ports

Résolu/Fermé
briocheOchoco Messages postés 7 Date d'inscription vendredi 15 avril 2022 Statut Membre Dernière intervention 28 septembre 2022 - 15 avril 2022 à 16:57
avion-f16 Messages postés 19244 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 17 avril 2024 - 15 avril 2022 à 19:37
Bonjour, ne pouvant pas modifier les paramètres de ma box internet (Orange) je ne peut pas rediriger les ports de celle ci.

Je possède chez moi un vieux pc sous Ubuntu server qui me permet d'héberger mon site localement et j'aimerais le rendre ouvert à l'internet public par exemple depuis un pc extérieur (ou mon téléphone en 4g) accéder à mon site en tapant mon adresse ip publique (qui est statique car box pro chez orange) mais sans ouvrir les port de la box.

J'aimerais une solution qui ne change pas l'adresse pour y accéder.
genre pas un truc en mode monsite.trucmuche.fr

Cordialement, Merci pour votre aide.
A voir également:

3 réponses

Pierrecastor Messages postés 41466 Date d'inscription mercredi 5 novembre 2003 Statut Modérateur Dernière intervention 5 avril 2024 4 129
15 avril 2022 à 17:46
Salut

Quel modèle, la box ? Parce que sans rediriger les port, je ne vois pas de solution.
0
avion-f16 Messages postés 19244 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 17 avril 2024 4 496
Modifié le 15 avril 2022 à 18:06
Bonjour,

Si tu souhaites un accès direct avec ton adresse IPv4 statique, il n'y a pas le choix, il faudra nécessairement créer une redirection de port au niveau de la box. Je ne vois pas par quel moyen tu pourrais espérer accéder à ton serveur sans redirection de port via http://1.2.3.4/ en sachant que 1.2.3.4 est routée vers ta box et non le serveur.
De plus, la plupart des box offrent la possibilité de créer une redirection de port, surtout avec une offre "pro".

Toutefois, pour les cas où la redirection de ports n'est pas possible pour diverses raisons :
- Accès à l'administration du routeur/box non autorisé (logement avec accès Internet partagé...).
- Aucune IP publique n'est routée jusqu'à la box (CG-NAT)
- ...

Il faudra passer par un serveur intermédiaire qui fera le lien entre les visiteurs et le serveur à la maison. Le serveur local établira une connexion sortante (tunnel type VPN, SSH, protocole propriétaire, ...) vers le serveur distant à l'aide d'un logiciel adéquat.

-> Cela implique que le visiteur accédera non plus à l'IPv4 de la box, mais celle du serveur distant. Que ce soit avec l'IP ou un nom de domaine résolu vers cette IP.

La plupart de ces services sont des proxy inversés HTTP(S) et effectueront le routage¹ vers un serveur ou un autre en fonction du nom, et imposeront donc l'utilisation d'un domaine ou sous-domaine afin de ne pas devoir dédié une IP par utilisateur.
Sans utiliser de nom (domaine / sous-domaine), cela signifierait que l'IP entière, ou du moins le couple ip + port (80/443) sera entièrement redirigé vers ton serveur. C'est tout à fait possible mais une IP dédiée à un prix, ces services ne sont plus gratuits.

Dans le cas d'un proxy HTTPS, il faut avoir conscience que le chiffrement TLS n'est pas entre visiteur <-> serveur local, mais entre visiteur <-> serveur distant. Dans plusieurs cas, la connexion serveur distant <-> serveur local n'est pas chiffrée, beaucoup zappent cette partie, mais il est tout à fait possible d'avoir un chiffrement visiteur <-> serveur distant combiné avec un chiffrement serveur distant <-> serveur local. Mais il ne s'agira pas d'un chiffrement « E2EE » car le serveur intermédiaire peut lire les échanges. À garder à l'esprit selon le niveau de confidentialité / confiance.

Parmi ces services :
https://ngrok.com/
https://www.cloudflare.com/products/tunnel/
ou une liste plutôt exhaustive de solutions SaaS commerciales ou gratuites, ou de solutions qu'on peut héberger soi-même (faudra quand même un serveur intermédiaire type VPS à 5€) :
https://github.com/anderspitman/awesome-tunneling

Étant dans le même cas de figure, je loue un VPS à 5€ faisant office de serveur VPN. Mon serveur s'y connecte en tant que client VPN. Le VPS devient donc un routeur "NAT distant" entre son WAN (Internet) et le réseau local virtuel créé par le logiciel VPN. Puisqu'il s'agit d'un routeur distant, j'y configure alors une redirection de port depuis son IP publique vers l'IP locale (dans le réseau VPN) de mon serveur.


Sinon, avec l'IPv6, ces problèmes de NAT / redirections de port n'existent plus.


¹ Le mot routage est ici utilisé pour désigner le fait d'afficher un site ou un autre en fonction du nom, de la même façon qu'un VirtualHost sous Apache/Nginx. Il ne s'agit pas de routage de paquets IP tel qu'effectué par un routeur.
0
briocheOchoco Messages postés 7 Date d'inscription vendredi 15 avril 2022 Statut Membre Dernière intervention 28 septembre 2022
15 avril 2022 à 18:16
Bonjour,
Merci de votre réponse,
Depuis le post de mon message je peut accéder aux paramètres de ma box,
Maintenant je peut rediriger le port 80 vers mon serveur ubuntu mais ma seconde question est :

Dois-je configurer apache d'une façon particulière pour pouvoir accéder à mon serveur depuis l'internet extérieur ?
et
Dois-je ouvrir en premier le port 80 et ensuite config apache ou faire l'inverse
Cordialement Brioche .
0
avion-f16 Messages postés 19244 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 17 avril 2024 4 496
15 avril 2022 à 19:37
> Dois-je configurer apache d'une façon particulière pour pouvoir accéder à mon serveur depuis l'internet extérieur ?

Aucune configuration particulière n'est nécessaire, le serveur traitera les requêtes provenant de visiteurs locaux ou externes de la même façon. Si tu peux y accéder depuis ton réseau local, alors il y a de grandes chances pour que la configuration Apache soit déjà correcte pour permettre aussi l'accès depuis l'extérieur.

> Dois-je ouvrir en premier le port 80 et ensuite config apache ou faire l'inverse

Il n'y a pas d'ordre préférentiel, mais les deux manipulations sont nécessaires.


Je vois que tu te concentres sur le port 80, mais n'oublie pas l'importance de HTTPS !
En particulier si tu comptes héberger des services comme Nextcloud ou autres, qui impliquent des transferts de données sensibles (fichiers, identifiants, ...).


Pour apprendre les bases réseaux et comprendre ces mécanismes de NAT (SNAT / DNAT) en seulement 1h, je recommande cette vidéo : https://www.youtube.com/watch?v=mgEMGoFIots
0