Pour construire un serveur, il vous faut impérativement configurer correctement sa configuration réseau. Vous avez en particulier besoin d'adresses (publiques et privées) stables, ainsi que de connaître l'adresse de votre passerelle ou routeur.
Cette documentation a pour but de vous aider à monter un serveur auto-hébergé, aussi on va se concentrer sur les solutions fournies par des fournisseurs d'accès Internet grand public.
Vous pouvez passer ce chapitre si vous êtes à l'aise et commencer vos premiers essais avec une configuration en dhcp puis revenir ici une fois que vous vous êtes habitués.
Voici quelques précisions ou rappels qui vous permettront de mieux appréhender la suite.
Tout d'abord sachez que votre fournisseur d'accès ne vous connecte sûrement pas directement sur le réseau internet, mais plutôt par ce qu'on appelle du NAT. Si vous utilisez une box, alors cet appareil (on va beaucoup parler de lui plus bas) va, lui, recevoir une adresse Internet publique.
Adresse publique, ça signifie que les gens qui naviguent sur le net peuvent contacter cette adresse. Elle est routable et unique. Tous les sites web notamment utilisent des adresses publiques.
Votre box va alors distribuer des adresses privées sur votre réseau local. Cela signifie, que vous avez, chez vous, plusieurs adresses privées - une pour chaque appareil connecté sur votre réseau : TV connectée, smartphone, imprimante… - qui se partagent une seule adresse publique.
OK ? Bien, on continue :).
Les adresses privées peuvent être dans trois rangées:
10.0.0.0/8
: de 10.0.0.0 à 10.255.255.255.172.16.0.0/12
: de 172.16.0.0 à 172.31.255.255192.168.0.0/16
: de 192.168.0.0 à 192.168.255.255Votre adresse privée, ou locale, c'est celle que votre ordinateur utilise, celle qu'il connait. Par exemple sur un ordinateur utilisant Linux :
[toto@jabberwocky src]$ ip add show dev eno1 2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 inet 10.0.153.194/16 brd 10.0.255.255 scope global dynamic eno1 valid_lft 28073sec preferred_lft 28073sec
Ici 10.0.153.194
est bien une adresse (ou IP ou adresse IP) privée.
Votre adresse publique, c'est celle que vous utilisez pour la navigation internet. C'est cette adresse que connaissent les différents sites web que vous fréquentez. Et justement, si vous ne la connaissez pas, il vous suffit d'aller voir par exemple ifconfig.me (ou mon-ip.com, who.is, ipecho, ifconfig.me, whatsmyip…).
Le routeur, c'est la box internet. On parle aussi de passerelle (gateway en anglais).
D'un côté du routeur, on a donc une adresse internet publique (que dans l'ensemble de cette documentation, on a supposé fixe, comme dit juste au-dessus), de l'autre on a une adresse privée. Cette dernière adresse est très importante: c'est celle que votre serveur (ainsi que votre ordinateur personnel, votre smartphone, votre grille-pain connecté…) doit connaître pour atteindre internet.
Dans les faits, quand quelqu'un dans votre réseau doit contacter un site internet, il passera par cette adresse, qui s'avère donc critique, et qui plus est un goulet d'étranglement.
C'est également le routeur qui fait les redirections de ports.
Pour trouver l'adresse de votre “gateway”, vous pouvez vous connecter en dhcp dans un premier temps puis entrer la commande suivante :
# route -n show Routing tables Internet: Destination Gateway Flags Refs Use Mtu Prio Iface default 192.168.1.1 UGS 35 4827 - 8 re0 224/4 127.0.0.1 URS 0 13 32768 8 lo0 127/8 127.0.0.1 UGRS 0 0 32768 8 lo0 127.0.0.1 127.0.0.1 UHhl 9 969 32768 1 lo0 ...
La première ligne vous donne la réponse : 192.168.1.1
dans l'exemple.
Chaque élément sur le réseau a un nom (qu'on appelle nom d'hôte, ou nom de machine. Certaines documentations parlent de nom de réseau de la machine).
Sur les éléments les plus sophistiqués (les vrais ordinateurs), on peut changer ce nom. De nombreux appareils actuels sont toutefois verrouillés (essayez de changer le nom de machine d'un smartphone Android…). Ça n'a l'air de rien mais avoir un nom de machine permet de reconnaître les appareils effectivement présents et fonctionnels dans le réseau.
Le nom de machine d'un ordinateur tournant sous OpenBSD se définit dans /etc/myname
, où sera juste inscrit son nom complet. Par exemple:
toto@maitre:/home/toto $ cat /etc/myname maitre.chezmoi.tld
Pour configurer l'adresse locale, vous pouvez utiliser le client dhcp
qui vient par défaut avec chaque installation OpenBSD.
Pour ce faire, il suffit d'indiquer dhcp
dans le fichier de configuration de l'interface réseau de votre serveur. Ce fichier est /etc/hostname.if
avec if le nom de ladite interface. Si vous avez sélectionné dhcp
lors de l'installation d'OpenBSD, alors il existe déjà.
toto@maitre:/home/toto cat /etc/hostname.re0 dhcp
Suivant la configuration du routeur que vous utilisez (configuration que vous ne pouvez pas forcement changer facilement), il peut être nécessaire d'utiliser DHCP pour obtenir de la connectivité sur votre serveur (le routeur pourrait refuser de relayer les connexions à une machine qui n'est pas dans sa table DHCP).
Si vous obtenez votre configuration réseau par DHCP, alors il n'est pas nécessaire de connaître ou de renseigner l'adresse de votre routeur.
La configuration statique d'une machine s'avère plus complexe, mais on a davantage de maîtrise dessus (on peut par exemple assigner plusieurs adresses si on l'estime nécessaire).
On configure d'abord l'interface voulue :
toto@maitre:/home/toto $ cat /etc/hostname.re0 inet 192.168.1.2 255.255.255.0 192.168.1.255 inet alias 192.168.1.9 255.255.255.0 192.168.1.255 ## et autant d'autres que vous le voulez… up
Puis on indique l'adresse du routeur (son adresse privée, celle dont j'ai dit plus haut à quel point elle est importante). Cette adresse se configure dans le fichier /etc/mygate
:
toto@maitre:/home/toto cat /etc/mygate 192.168.1.1
Vous devez connaître l'adresse de votre passerelle. Cette adresse n'est pas standard, en revanche les constructeurs ou les FAI ont souvent des réglages par défaut qui sont connus et qu'on peut retrouver sur le web. Il est également possible d'utiliser DHCP au début du processus de construction du serveur, puis mettre la configuration en statique quand on a pris la main et qu'on commence à vouloir faire des trucs sophistiqués.
Une fois ces deux fichiers configurés, l'interface sera configurée et mise en service automatiquement à chaque démarrage de la machine. Notez également que vous pouvez combiner des éléments de configuration dynamique (dhcp) avec de la configuration statique.
Vous pouvez tester votre bonne connexion au net grâce à la (célèbre) commande ping
.
Tout d'abord “pingez” votre passerelle :
ping 192.168.1.1
Puis “pinger” le serveur de l'APNIC par exemple :
ping 1.1.1.1
Si tout va bien, alors votre serveur est connecté au net.
IPv6 c'est le nouveau protocole IP. Aujourd'hui, ça devient essentiel de le maîtriser un petit peu. Sachez que si vous n'avez pas encore d'ipv6 chez vous, il est probable que vous en ayez d'ici un ou deux ans. Mieux vaut être préparé pour en tirer le meilleur profit non ?
La configuration reprend les grands principes d'ipv4, mais avec des différences sur les méthodes et la syntaxe:
toto@maitre:/home/toto $ cat /etc/hostname.re0 inet... inet6 2001:db8:1:1::2 64 # adresse inet6 autoconf # utilisation des adresses # SLAAC automatiques up
Les adresses SLAAC ont l'avantage d'être stables (si on utilise pas l'attribut autoconfprivacy), ce qui est exactement ce dont vous avez besoin sur un serveur. En revanche, elles sont encombrantes et peu mémorisables par un être humain.
Vous pouvez aussi utiliser les adresses ULA, qui sont des adresses locales pour votre réseau. Elles permettent de configurer un réseau de manière permanente sans avoir besoin de tout renuméroter en cas de changement de FAI. Elles sont également non-routables, ce qui veut dire que personne ne peut les attaquer. Enfin, elles constituent un excellent moyen de commencer à mettre en place votre réseau en attendant d'avoir vos adresses publiques définitives (si vous n'en avez pas encore). Vous pouvez lire davantage à propos de ces adresses ici.
L'écoute des annonces des routeurs permet de connaître leur adresse,
ce qui est, on vous le rappelle, une donnée essentielle. Vous pouvez aussi renseigner cette donnée dans le fichier /etc/mygate
.
toto@maitre:/home/toto cat /etc/mygate 192.168.1.1 2001:db8:1:1::
Ces divers paramètres se combinent de manière adéquate les uns avec les autres. Ainsi, vous pouvez tout à fait utiliser des adresses SLAAC et des adresses statiques.
En ipv6, il n'est plus question de redirection de ports (et ça c'est cool :)) : votre serveur est directement connecté à internet. Soyez donc prudent et vérifiez bien le pare-feu de votre serveur.