SwordArMor

L’auto-hébergement ou comment avoir son serveur à la maison

Qu’est-ce que l’auto-hébergement ?

Si l’on se réfère à la page wikipedia, c’est le fait d’héberger les services que nous utilisons le plus (ou que nous voulons offrir) sur sa propre machine, au lieu de le faire gérer par une boîte. Dans cet article, je vais me concentrer sur le cas où le serveur est à la maison et non chez un hébergeur.
Un serveur, ce n’est rien de plus qu’un PC (comme le votre) qui répond à des requêtes.

Les prérequis techniques

Ce qui est essentiel :

  • avoir un PC qui tourne h24 (forcément, pour répondre il faut que ça tourne),
  • avoir au moins une IP publique routable sur Internet (ça devrait être le cas tant que vous n’êtes pas en 3G),
  • pouvoir faire de la redirection de port si vous êtes en NAT, (pour ceux qui ne savent pas ce que c’est, je l’explique plus loin)
  • avoir un nom de domaine (au sens large, tails.boum.org est tout aussi valable que swordarmor.fr).

Ce qui est optionnel :

  • avoir un gros PC comme serveur,
  • avoir une IP fixe

Pour le coup, avoir un gros PC est même a éviter, ça va bouffer beaucoup de courant pour pas grand chose. Le mien est un iMac de récup' qui va facilement entrer dans sa dixième année et il fonctionne parfaitement bien. C’est dingue le peu de puissance que demande un OS un peu propre comme freeBSD ou GNU/Linux, et en plus il n’y a pas d’affichage à gérer.

Donc, le NAT. Pour faire simple, c’est dégueulasse. Pour faire plus impartial, ça veut dire Network Address Translation en anglais, pour traduction d’adresse réseau en français.
Il y a ici deux concepts à comprendre :

  1. Pour discuter sur Internet, les ordinateurs utilisent des adresses IP (aussi appellées simplement IP).
  2. En IPv4 (IPv6 n’étant que relativement déployé à l’heure où j’écris ces lignes) nous avons un nombre limité d’adresses, nous ne pouvons pas en attribuer une par PC. Ce que nous faisons donc est d’attribuer une IP publique à la box, puis des IPs privées aux ordinateurs.
Le NAT sert à faire ce partage d’IPs entre la box et les PCs.

Pour la redirection de port, cela conciste à dire que tel port de l’IP publique correspond à tel port de tel PC (donc de telle IP) de votre réseau local (aussi appellé LAN). Ceci est dû au NAT, car l’Internet s’arrête en réalité à votre box (comme c’est elle qui a l’IP publique). En effet, on ne peut pas joindre directement les PCs à l’intérieur du réseau local, ce qui complique les choses (et n’augmente pas la sécurité comme le disent certains, ça c’est le rôle du firewall).

Les détails techniques

Pour le PC que l’on mettra en serveur, le plus vieux au fond de le cave fera amplement l’affaire tant que c’est PIII. Si vous ne comptez pas faire tourner de java ou de ruby, vous serez à l’aise avec 512 Mo de RAM. Pour ce qui est du disque dur, 20 Go devraient être pas mal.

La méthode pour faire les redirections de port étant spécifique à chaque équipement, je ne vais pas pouvoir vous dire comme il faut faire. Par contre je suis preneur de screenshots pour illustrer l’article. Hébergez vos images sur pix.toile-libre.org et envoyez moi les liens par mail
J’ai reçu une capture d’écran qui montre comment faire avec SFR :

Ici, les ports 22 et 80 (respectivement SSH et HTTP) de l’IPv4 publique sont redirigés vers les ports 22 et 80 (ça aurait pu être des ports différents mais ce serait se compliquer la vie) de l’IP privée 192.168.1.86. Elle correspond à celle que vous obtenez avec un ip addr show dev eth0 sur votre serveur. Les ports externes sont relatifs à l’IP publique et ceux de destination à l’IP privée.

Deux options s’offrent à vous si vous n’avez pas d’IP fix :

  1. soit vous changez rarement donc c’est possible de changer l’entrée DNS à la main à chaque fois,
  2. soit vous changez souvent d’IP (comme sur les lignes Orange) et là il vaut mieux utiliser un VPN qui lui a une IP fixe, celui de FDN est fait pour ça.

Si vous n’avez pas de domaine, je peux vous en faire à prix libre en .pennvad.eu, par contre il vous faudra une IP fixe, je n’ai pas envie de maintenir trouzemille entrées à la main.

Si on mettait les mains dans le cambouis

Installation physique de la machine

Vous avez maintenant une brique vaguement remplie d’électronique qui démarre. Branchez là par câble à votre réseau, surtout pas en Wi-Fi. Le Wi-Fi est lent, peu fiable et pas sécurisé, ce sera bien vite un nid à emmerde.
Prévoyez quand même un écran et un clavier pour l’installation du système d’exploitation. Nous ne devrions plus en avoir besoin par la suite.

Installation logicielle

Je vous recommande une distribution GNU/Linux standard, telle que debian.
Une fois que votre support d’installation est prêt, démarrez dessus et laissez les options par défaut jusqu’à ce que l’on vous demande quels types de logiciels vous voulez installez. Décochez tout sauf le serveur SSH et les utilitaires usuels du système.
Si vous avez des soucis pour installer Debian, vous pouvez lire le manuel simplifié écrit par debian-facile.org ou le manuel complet écrit par l’équipe de debian. Ce dernier est plus complet mais moins facile d’accès.

Redémarrez normalement puis éditez le fichier /etc/network/interfaces afin de mettre à la main l’IP locale de votre serveur au lieu d’en demandez une au DHCP. Ça vous évitera les mauvaises surprises si jamais ce dernier décide de changer son adressage et vous met vos règles NAT en carafe au passage.
Depuis votre PC habituel, connectez vous en SSH sur l’IP locale, installez vos services. Pour les tester, commencez par le faire en local. Ce n’est pas la peine de brûler cette étape, si ça ne marche pas en local, ça ne marchera pas non plus une fois les règles NAT mise en place.
Une fois que tout fonctionne correctement, configurez votre NAT pour qu’il redirige les bons ports vers la bonne machine en local et le tour est joué

Rien ne marche !

Vous pouvez bien sûr passer sur IRC pour me poser des questions, mais faites des recherches sur le net avant. Ça pullule de documentation et tutoriels sur comme se faire son serveur à la maison.