E.T. téléphone cloud

Une baie en bordel dans un datacenter

Étant un ultra du self-hosting (comprendre auto-hébergement), avec un NAS, un serveur me servant à héberger mes conteneurs Docker, des caméras IP, de l'IOT, etc... J'ai un besoin tout particulier de pouvoir joindre tout ce bordel de n'importe ou dans le monde. Mais comment s'y prendre ?

Quelles solutions ?

Vous n'etes pas sans savoir que nos chers opérateurs pratiquent du CG-NAT, nous attribuant des IP partagées avec d'autres abonnés afin d'economiser ces precieuses adresses IPv4 qui sont une denrée si rare ces dernieres années. Cela donne donc du filà retordre quand il s'agit d'héberger des trucs chez nous car il faut tout le temps connaitre la derniere IP que notre FAI nous aattribué, ou meme utiliser des ports alternatifs car certains aiment nous restreindre (je pense au port 25 souvent interdit car il sert à héberger son propre serveur de mails).

DDNS et NAT

Solution de contournement d'IP dynamique avec un DDNS

Notre premier probleme etant le plus commun, on se tourne donc vers un service de DNS Dynamique (DynDNS, DuckDNS, No-IP, Afraid, CloudFlare, etc...) qui lui, via l'aide d'un logiciel hébergé de votre coté va garder l'IP à jour et la greffer à un nom de domaine afin de ne jamais avoir à reconfigurer ses clients : un gain de temps énorme en somme.

Un probleme avec cela, c'est que quand ton nom de domaine pointe en permanance vers ton IP publique, ca te rend automatiquement beaucoup plus vulnérable à moult attaques de type DDOS ou Port Scanning. Une solution est de se faire un VPN avec une boite VPS dans un datacenter et de faire pointer le nom de domaine vers l'IP cette machine, mais on déplace simplement le probleme, sans compter le cout d'une telle solution.

Un exemple de NAT

De plus, on doit nater des ports pour rendre accessible des machines de ton réseau, ce qui donne une petite porte d'entrée sur ton réseau local : pas glop.

Tunnels

Un exemple de tunnels

Du coup, si on ne peut pas nater, ni rendre facilement consultable mon IP publique, je fais comment pour accéderà mon NAS en dehors de mon LAN ? Et bien on utilise un tunnel.

Les tunnels vont router le traffic d'applications/sevices spécifiés vers le réseau de CloudFlare, qui lui va se charger de rendre ces memes services disponibles publiquement, mais sans divulguer ton IP ou NAT.

J'ai opté pour cette dernière solution car le DDNS que je payais pour pouvoir utiliser mon nom de domaine custom me revenait vraiment cher pour pas grand chose et exposait mon infra sans capote au méchant Internet.