Autohébergement - Avoir un Yunohost "privé" derrière une Freebox
jeudi 1 janvier 1970 à 01:00# Présentation du besoin
Présentation du besoin : Isoler au maximum mon cloud personnel qui tourne sous Yunohost tout en le laissant accessible de façon contrôlée. Cas d'usage : pouvoir accéder au Nextcloud depuis le bureau/locaux de l'entreprise, par la famille et en mobilité (via Wireguard).
La machine est hébergée sur un mini PC, chez moi, derrière une Freebox. Elle fait tourner Yunohost et différents services.
# Prérequis
– Savoir faire des redirections dans la configuration du NAT de la Freebox
– Savoir mettre des IP fixes (via le DHCP de la Freebox ou autre).
– Savoir activer et configurer le serveur Wireguard sur la Freebox
# Est-ce un mode Airgap ?
Non, la machine reste connectée à Internet et aux machines du réseau local. Je restreins juste l'accès.
# Pourquoi faire ça ?
Comme dit en introduction, il s'agit d'un cloud personnel qui n'a pas pas vocation à être accessible publiquement. Je fais mes mises à jour, je sécurise comme je peux (mot de passe fort, double authentification...). Je ferai un article plus précis et dédié car étudiant les logs du serveur, j'ai vu qu'il contenaitdes tentatives de connexion, bannies ensuite par fail2ban de machines dont les IP sont identifiées comme compromises. Le risque de sécurité, les IA & autres LLM qui cherchent partout. J'ai donc décidé de voir pour couper la machine d'Internet ou presque.
# Pourquoi derrière un nom de domaine et pas un nom en local ?
Parce que je l'ai déjà loué. Parce que je peux pouvoir revenir en arrière.
La machine doit donc rester accessible sur mondomaine.com, pour que je ne change pas mes habitudes, à quelle adaptation /changement prêt que nous verrons.
# IPv6 ?
J'avais déjà désactivé IPv6 par choix du coup, pour avoir uniquement une machine accessible via l'IPv4 fixe et publique full stack de la Freebox (avec redirection des ports au niveau de la configuration du NAT de la Freebox).
# Préparation
Pour des raisons de simplicité, c'est la Freebox qui me sert de serveur DHCP sur le réseau. J'attribue des bails statiques à certaines machines (PC, smartphone) qui auront besoin d'avoir accès à Yunohost. Cela facilitera certaines choses par la suite (au niveau des règles de redirection de port sur la configuration du NAT de la Freebox).
# Smartphone
Sur mon smartphone, j'utilise différentes choses dont DavDroid pour la synchronisation des contacts & agenda, le client Nextcloud...
En local, je passe par le Wifi, j'ai une IP locale autorisée /redirigée au niveau NAT.
A distance, je lance la connexion VPN Wireguard (le serveur Wireguard étant la Freebox) et je me retrouve sur mon réseau local avec une IP fixe identifiée.
Je n'ai rien à changer sur le smartphone par rapport à avant.
# PC Personnel
En local, je passe par le Wifi ou une connexion filaire, les 2 ont une IP locale autorisée /redirigée au niveau NAT.
A distance, je lance la connexion VPN Wireguard (le serveur Wireguard étant la Freebox) et je me retrouve sur mon réseau local avec une IP fixe identifiée.
# PC Pro
J'ai des besoins d'accès ponctuels à mon cloud (pour consulter mon agrégateur RSS par exemple sur la pause du midi)
J'utilise mon PC professionnel en télétravail, la machine a une IP fixe sur le réseau.
A distance, au bureau, je lance Wireguard.
# Autres accès - la famille
Ma famille accède ponctuellement à des services de mon cloud personnel. C'est via une connexion depuis une Freebox (PC ou smartphone depuis leurs domiciles). Ces Freebox ont une IP fixe, j'autorise ces IP là à accéder à ma machine au niveau de la redirection NAT.
# Quid de la supervision du coup ?
J'ai un serveur VPS avec un UptimeKuma pour faire de la supervision de base de différentes choses dont des Freebox, cf mon article Uptime Kuma et surveillance de Freebox.
Cette machine a une IP fixe connue. Là encore, j'autorise cette machine via son IP à se connecter à mon serveur Yunohost sur le port 443.
J'utilise un autre port (non redirigé du coup) pour la supervision de la box en elle-même (le port du FreeboxOS).
# En résumé, liste des redirections
Voici en résumé une liste de redirections de ports configuré au niveau du NAT de la Freebox :
* IPs locales de Wireguard port 443 vers Yunohost port 443 : pour les accès en mobilité
* IPs locales des machines (PCs portables, smartphones...) port 443 vers Yunohost port 443 : pour les accès depuis la maison
* IPs publiques des routeurs (Freebox) de la famille port 443 vers Yunohost port 443 (une ligne par Freebox)
# Aller plus loin et reste à faire ?
Aller plus loin, ce sera mettre en place un firewall (PfSense, OpnSense) entre la Freebox et Yunohost. C'est dans ma todo depuis longtemps. Le présent article et la mise en place du projet ont pris toutefois moins de temps que de me former à ces firewall.
Dans le reste à faire, il y a deux choses à voir :
– quid des certificats Let's Encrypt et de leur renouvellement automatique : je ferai un article sur le sujet ;
– quid du partage d'un fichier ou d'un dossier à quelqu'un d'extérieur sur le Nextcloud : là encore, il y a une réflexion à avoir. Cela fait partie des limites actuelles : ce n'est pas envisagé.
# Bilan
La machine n'est donc plus exposée sur Internet, à quelques IP précises prêt. C'est donc potentiellement "Plus sécurisé" Pas autant qu'une machine Airgap, mais un bon compromis contre quelques manipulations/contraintes (nécessité de lancer Wireguard par exemple).
# A voir aussi
– Connexion VPN via le Wireguard de la Freebox et utiliser le DNS local de type PiHole AdGuard
– Wireguard comme serveur VPN, avec une Freebox et avec Yunohost
