Se connecter / S'enregistrer
Votre question
Fermé

Héberger mon site web, mon FTP, mes jeux... [TUTO]

Tags :
  • web
  • Hébergement fichier
  • Hébergement
  • Tutoriel
  • Ftp
  • Internet
Dernière réponse : dans Internet
22 Septembre 2007 19:49:22

Je n'ai pas fini mon autre tuto, mais je fais celui-ci vite fait pour répondre à des questions fréquentes.

Le but ici est d'expliquer de manière générique (et peut-être spécifique) comment on peut héberger un service à domicile en le rendant disponible au reste de la pl@nète.
Attention, ce n'est pas un tuto d'installation d'un serveur WEB, mais de configuration réseau.
Il s'adresse tout particulièrement à celles et ceux qui ont un routeur (une livebox par exemple), pour les autres (modem simple), il n'y a pas grand chose à faire niveau réseau.

Je vais prendre l'exemple d'un site web, c'est le cas le plus simple pour bien comprendre de quoi il retourne.

A-Pré requis :

Pour pouvoir comprendre la suite, il faut connaitre quelques notions :
1-qu'est ce qu'un hébergement : vous avez la réponse dans les 3 tutos dédiés à ce sujet de NeoTux
2-qu'est ce qu'un port (pas celui pour les bateaux) : reportez vous au tuto réseau
3-qu'est ce que le NAT : idem
4-qu'est ce que la redirection de port (forwarding) : toujours au même endroit
5-que veulent dire les termes "adresse privée" et "adresse public" : devinez où...

B-Définitions
1-Un site web c'est quoi ?
C'est un ensemble de fichiers écrits en HTML (ne me dites pas php, asp, cgi, perl... ce sont des langages qui produisent du html, j'en parlerai peut-être plus tard).

2-Un serveur web c'est quoi ?
C'est un logiciel qui est capable de fournir le contenu de ce html à un utilisateur, on appelle ça un serveur http (Apache pour ne citer que le meilleur/plus utilisé..., c'est d'ailleurs ce mot que j'utiliserai par la suite pour dire "serveur http")

3-Un navigateur web c'est quoi ?
C'est un logiciel qui comprend le html (mais aussi, en général, le javascript, le xml...) et sait les afficher à l'utilisateur.
Firefox, Internet Explorer, Lynx, Opéra, Safari... sont des navigateurs.

C-Et du point de vue réseau
Un site web utilise en général le langage http. Le port utilisé par défaut par ce protocole est le port n° 80, mais il existe des variantes de ce langage qui utilisent d'autres ports (le 443 pour le https par exemple).
Quand vous voulez voir le contenu d'un site, vous vous connectez donc sur le port 80 (en général) du serveur qui héberge ce site.
Sur le serveur, notre Apache écoute les connections arrivant sur certains ports, les interprète, fabrique la réponse adaptée et la renvoie au navigateur qui en a fait la demande.
Quand vous avez fait votre demande initiale, vous êtes passés par un port de votre système (le port source, normalement supérieur à 1024). Dans votre demande, il y avait ce port source d'indiqué. Apache connait donc le chemin à emprunter pour répondre à votre navigateur.

Donc en gros pour monter un site web à la maison, il suffit d'installer Apache, de faire des pages web et puis c'est tout...
...pas tout à fait !

Il faut d'abord connaitre son adresse public, c'est celle-ci qu'il faudra donner aux copains, c'est aussi celle-ci à laquelle il faudra associer notre nom de domaine le cas échéant.
Il faut également autoriser les connexions sur le port d'Apache dans tous les pare-feux situés entre l'utilisateur et le serveur.
Et enfin autoriser Apache à répondre à ces connexions dans tous les pare-feux....

Mais dans la majorité des cas, il faut encore faire autre chose, rediriger les connexions vers une IP privée.

D-Routage/NAT
La plupart d'entre vous (les lecteurs) ont un "routeur", il y a écrit Freebox, Livebox, Linksys... dessus.
Ces boitiers ont 2 (ou plus) adresses.
Une adresse public
Une adresse privée : souvent de la forme 192.168.xxx.xxx

Du coté de l'adresse privée, on va trouver le poste qui héberge Apache, de l'autre coté, on trouve Internet.

Le but est alors de faire en sorte que les connexions arrivant sur le port 80 de votre IP public soient transmises au port 80 de la machine qui fait tourner Apache.
On va donc faire de la translation d'adresse, du NAT.

E-Un petit exemple pour y voir plus clair :
Votre IP public : 87.65.43.21
L'ip privée du routeur : 192.168.0.1
L'IP privée du serveur : 192.168.0.2
Le port d'écoute d'Apache : 80

Pour afficher le site, on tape dans son navigateur :
http://87.65.43.21:80
le :80 est facultatif puisque déjà indiqué par l'expression http:// (enfin votre navigateur le sait car on lui a dit http=80)

La connexion arrive sur le routeur coté Internet.
Il doit savoir à qui transmettre cette connexion, pour cela vous devez lui indiquer une règle disant :
"Tout ce qui arrive sur ton port 80 du coté Internet, merci de l'envoyer sur le port 80 de la machine 192.168.0.2"
(attention, zone technique en approche)
Une fois qu'il sait ceci, il redirige le trafic vers Apache en modifiant l'adresse de destination qui a été saisie dans le navigateur (87.65.43.21 devient 192.168.0.2) et il stockE dans une table interne le n° de connexion utilisé au départ et celui utilisé après la redirection.
Il va se servir de cette table pour le retour des connexions, à condition qu'il fasse du suivi de connexion (contrack)...
(j'arrête de détailler ici, par peur de perdre 99% des lecteurs)
Apache reçoit donc la demande, la traite, et y répond.

Pour faire faire ce genre de chose à nos box préférées, il faut se rendre dans la section Routage/NAT/Port Forwarding/Serveur Virtuel/Translation de Port/... (ça change d'un routeur à l'autre)

On indique alors les champs suivants :
Port d'arrivée : 80
Protocole : TCP
IP de destination : 192.168.0.2
Port de destination : 80

Sur un routeur Linksys on a ceci dans la section Port Forwarding:

Application : le nom de votre règle (Mon site web perso)
Port from : le port d'arrivée (80)
Protocol : le protocole utilisé (TCP)
IP Address : adresse à qui transmettre les connexions (192.168.0.2)
Port to : le port de destination (80)
Enable : activation (ou non) de la règle

Sur la page de gestion de la Freebox on a ceci :
Redirections de ports:
Port : 80
Protocole : TCP
Destination : 192.168.0.2
Port : 80

Il s'agit dans cet exemple d'un site web, il faut bien sur adapter tout cela à ce que vous voulez héberger.

Par exemple, si c'est un FTP passif (cas le plus courant), il vous faut ouvrir le port 21 en TCP (et aussi parfois le port 20 en TCP)
Pour le HTTPS : 443
Pour le p2p : un port en UDP et un port en TCP (dépend de votre config)
...


F-Associer un nom à son IP
Comme je l'ai dit plus haut, c'est votre IP Internet qu'il va falloir donner à vos amis. Ce n'est pas très "user-friendly", surtout quand elle est dynamique.
1-IP fixe
C'est le cas le plus simple, il vous suffit d'avoir un nom de domaine (ça coute quelques euros par an) ou de vous inscrire sur un service comme no-ip ou dyndns (ou un autre service du même genre) en spécifiant bien que c'est une IP fixe.
1-IP dynamique
Dans ce cas, il vous faut un enregistrement chez no-ip ou dynsdns (ou un autre service du même genre). De plus, il va falloir installer sur le serveur un logiciel qui va déterminer votre IP internet et l'envoyer sur le site du fournisseur (no-ip, dyndns...) que vous avez choisi.
Dans le meilleur des cas, votre routeur possède déjà cette fonction, rien à installer en plus. Consultez le manuel de celui-ci pour savoir si cette fonction est présente (c'est le cas sur la plupart des Linksys et des Netgear).

G-Petit point sur la sécurité
En ouvrant un port à destination de votre serveur, vous ouvrez une brèche par laquelle de nombreuses attaques vont tenter de passer. Veillez donc à sécuriser comme il se doit la machine hébergeant le service, mais aussi le reste de votre réseau, le logiciel serveur, les données hébergées...
Pour être plus précis, quand un paquet réseau est transmis à votre PC sur un port particulier, il est dirigé vers l'application qui écoute sur ce port, vous rendez donc cette application directement accessible à toute la planète. S'il y a des failles dans cette application (et toutes les applications en ont), alors un individu pourra envoyer des commandes à votre système via cette application.
Dans un environnement Unix, pas trop de dangers car la plupart des applications serveurs sont lancées avec des droits limités
Dans le monde Windows, la quasi totalité des applications sont lancées via le compte système ou le compte administrateur.

Ce qui en découle, c'est que toute faille dans votre application serveur peut permettre à un attaquant de lancer des commandes avec tous les droits sur votre serveur.

En clair, via votre serveur FTP préféré, un attaquant pourra faire ce qu'il veut de votre PC

Autres pages sur : heberger site web ftp jeux tuto

3 Mars 2011 23:24:46

Ce sujet a été déscotché du haut du forum par Maith
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS