Comment s'auto-héberger "facilement" en recyclant une ancienne minimachine

Vous savez ces derniers temps, on peut lire à la fois toutes sortes d’articles sur le vol de données confidentielles (médicales, bancaires, adresses), mais aussi d’autres articles sur le dérèglement climatique causé, entre-autres, par des déchets électroniques issus de notre consommation.

Et si à notre modeste échelle on essayait de participer à la résolution de ces problèmes en faisant d’une pierre, deux coups ? se réapproprier le contrôle de nos données en recyclant un ancien ordinateur en un serveur NAS pouvant héberger photos, fichiers, emails, et même une sorte de Netflix maison ? Facilement en plus ? Allez c’est parti !

Sommaire

  1. Pré-requis
  2. Matériel
  3. Installation du système d’exploitation du NAS
  4. Paramétrages
    4.1 Ne plus voir le message d’avertissement de certificat
    4.2 Accéder à son NAS sans taper l’adresse IP
    4.3 Quels ports de la box ouvrir en fonction de vos besoins

1. Pré-requis

Pour mener à bien cette mission, je pars du principe qu’il faille impérativement savoir installer un système d’exploitation, et savoir modifier les ports de sa box Internet. Ensuite, il faut idéalement (mais pas obligatoirement) savoir assembler un disque dur ou de la mémoire dans un ordinateur. Si vous ne savez pas faire tout ça, peut-être qu’un proche s’y connaît, n’hésitez pas à demander de l’aide.

Au niveau matériel, il faut un ordinateur complet qui ferait office de NAS (ça peut marcher aussi avec un Raspberry Pi et d’autres types de machines et bien sûr cela change les performances), une clé USB pour l’installation du système d’exploitation, et un autre ordinateur pour préparer cette fameuse clé USB d’installation. Vous êtes toujours là ? nickel.

2. Matériel


J’ai choisi de recycler une machine de 2014 que j’ai acheté après avoir lu un article sur Minimachines : un Shuttle XS35V4 capable de faire tourner des films au format 1080p 60FPS, jouer à quelques jeux anciens, mais il ne faut pas compter sur lui pour lancer une tâche trop gourmande (ex : virtualisation). Voici ses avantages :

  • gratuit ! (bah oui, sorti de la cave) comme dit précédemment, tout dépend de ce que vous recyclez
  • la machine est fanless : totalement silencieuse même en charge si vous n’ajoutez pas de disque dur mécanique
  • l’accès aux composants est facilité et le volume reste compact (25,2 x 16,2 x 38,5 cm)
  • le processeur est un Intel Celeron J1900 (4 cœurs, 2 à 2.41 GHz, 2 Mo de cache et 10W de TDP) donc plutôt performant pour cet usage, très peu gourmand en énergie et peut tourner 24h/24.

En ce qui me concerne, il a fallu mettre à jour quelques composants à commencer par ajouter 8GB de mémoire RAM (format DDR3L SO-DIMM) dans le but de pouvoir ouvrir plusieurs applications simultanément sans ralentissement, puis changer le stockage (un SSD pour accéder rapidement au NAS et un HDD dédié aux sauvegardes quotidiennes). Les côtés de la machine coulissent et permettent de réaliser facilement ces opérations. Petite particularité dans mon cas : pour installer le 2ème espace de stockage, il faut ce que l’on appelle un “caddy” permettant de convertir le compartiment du lecteur optique en espace de stockage.


Il se peut que vous ayez comme moi à dépenser quelques euros, mais c’est rarement cher (parfois même gratuit). Au total, j’ai déboursé environ 11€ pour le caddy, sachant que la mémoire RAM, le SSD et le disque dur n’ont rien coûté car ils ont été récupérés à partir d’anciennes machines.

3. Installation du système d’exploitation du NAS

Il fallait un système d’exploitation qui soit gratuit, open-source, facile à installer et à gérer, et proposant un catalogue d’applications varié : c’est donc Yunohost (ça se prononce “Why you no host ?” signifiant “pourquoi n’héberges-tu pas ?”) qui a été choisi ! vous pouvez vous familiariser avec son interface via une démo en ligne.

L’idée des développeurs de Yunohost, c’est de simplifier au maximum l’installation d’un serveur et de ses applications en utilisant une interface graphique (pour éviter de toucher à des fichiers de configurations, ou bien de faire du terminal). Hormis quelques informations pouvant être demandées comme par exemple “renseigner le mot de passe”, “le pseudo”, etc., installer une application consiste à cliquer sur un bouton “Installer”.

Son catalogue d’applications propose énormément de services : avoir sa propre boite mail, accéder et synchroniser ses fichiers/agenda/contacts avec son smartphone et autres ordinateurs, éditer des documents word/excel en mode “collaboratif”, avoir sa plateforme de streaming comme Netflix, gérer sa domotique, jouer à des jeux rétro, utiliser son propre métamoteur de recherche Internet, consulter des RSS, héberger son site web, intégrer Pi-hole, un VPN, un ERP, des backups, etc. la liste est longue :

Quelques applications classiques (on remarque que Nextcloud est une application à part entière, avec presque rien à paramétrer) :

Pour l’installer Yunohost, pas de souci :

  1. Depuis son ordinateur, on télécharge sur leur site le fichier .iso correspondant à la machine que l’on a (en ce qui me concerne, la version 4.18 x86_64 à la date de mon article)

  2. Puis on en fait une clé de démarrage avec Etcher ou le logiciel de son choix :

  3. Une fois que la clé USB est prête, on l’insère dans le NAS que l’on allume, celui-ci devant être connecté à un écran et idéalement branché avec un câble Ethernet (sans cela, on vous demande de renseigner tout un tas d’infos sur le réseau comme l’IPv4, IPv6, etc. je suppose que c’est pour se connecter en Wifi, or on veut une installation simple et avec le cable Ethernet branché, tout se fait automatiquement sans notre intervention). Normalement, ça devrait lancer l’installateur Yunohost, mais si rien ne se passe, il faut alors vérifier que le BIOS de votre machine démarre sur la clé.
    Important : en ce qui me concerne, le BIOS du Shuttle ne gérait que le démarrage en UEFI, il m’était donc impossible de faire reconnaître la clé USB. C’est après avoir mis à jour le BIOS que j’ai pu valider l’option de démarrage en Legacy, pensez-y si vous rencontrez le même souci.

  4. On choisi l’installation graphique et on se laisse guider dans les différentes étapes (en gros, on choisi la langue de son choix et le disque sur lequel Yunohost doit être installé, le reste se fait automatiquement):

  5. Enfin, une fois le processus d’installation terminé, avec n’importe quel ordinateur ou smartphone connecté au wifi du domicile, on tape dans son navigateur web https://yunohost.local et on est censé tomber sur une page ressemblant à cela :

Remarque : sur votre navigateur, ignorer l’avertissement de certificat et cliquer sur le bouton invitant à continuer exceptionnellement

C’est installé, mais il faut régler quelques paramètres pour pleinement profiter du NAS.

4. Paramétrages

4.1 Ne plus voir le message d’avertissement de certificat

Pour éviter de tomber sur le message d’avertissement de certificat à chaque fois que l’on souhaite accéder au NAS, on peut facilement installer un certificat Let’s Encrypt en se rendant sur l’interface d’administration puis DomaineCertificat SSLInstaller un certificat Let’s Encrypt (il faut s’assurer que les ports 80 et 443 soient ouvert pour réaliser cette étape).

4.2 Accéder à son NAS sans taper l’adresse IP

Si on préfère accéder à son NAS en entrant dans la barre d’adresse son nom de domaine plutôt que son adresse IP publique, on peut se rendre sur l’interface d’administration de Yunohost, et y ajouter son nom de domaine (du genre example.domaine.fr). D’ailleurs, si j’ai bien compris, dans le cas où vous ne voulez pas payer un nom de domaine, Yunohost en propose des gratuits au format example.ynh.fr, c’est vraiment sympa.

4.3 Quels ports de la box ouvrir en fonction de vos besoins

Selon votre FAI, il faut se rendre dans l’interface de votre box pour ouvrir les ports qui vont bien en fonction de ce que l’on veut utiliser comme application. Si on souhaite :

  • accéder au serveur depuis l’extérieur et générer un certificat Let’s Encrypt : les ports 80 (http) et 443 (https)
  • se connecter en SSH : le port 22
  • utiliser XMPP : les ports 5222 (clients), et 5269 (serveurs)
  • bénéficier de sa propre boîte mail : les ports 25, 587 (SMTP), et 993 (IMAP)

Remarque : certains FAI (dont apparemment Orange) bloquent le port 25 par défaut mais il est possible parfois de l’ouvrir manuellement (c.f. le tableau récapitulatif ici)

Au final quand on se connecte, on tombe sur un panel avec les applications qu’on a installé, et bien sûr si on le souhaite, on peut paramétrer plein de choses ou laisser son interface telle quelle :

Après si l’on souhaite aller plus loin, tout est question d’imagination. Par exemple, j’ai pu profiter de l’emplacement USB caché à l’intérieur du Shuttle pour y installer un tuner TNT au format clé USB comme l’avait suggéré Pierre dans son test, et j’ai ainsi pu regarder certaines chaînes de la TNT à distance. Pour être franc, j’ai eu pas mal de soucis à faire fonctionner les chaînes, il se peut qu’il y ait une incompatibilité avec la clé TNT ou le logiciel qui gère cela (Next-PVR), mais je n’en suis pas certain.

Enfin, n’oubliez pas :

  • d’avoir un mot de passe solide (long et avec des minuscules, majuscules, chiffres, et caractères spéciaux)
  • de mettre régulièrement à jour Yunohost (l’application Unattended-upgrades le fait quotidiennement à votre place)
  • d’avoir une stratégie de sauvegarde en fonction de l’importance de vos fichiers (c’est pour cela que j’ai un disque dur de backup quotidien) ! car on est jamais à l’abri d’un disque de stockage défaillant ou d’un malheureux événement comme un cambriolage.

Je vous suggère de commencer à utiliser votre NAS avec des données peu importantes, puis si tout est fiable dans la durée, de migrer des données que vous considérez plus sensibles.

Voilà, c’est la fin de ce tutoriel. J’espère qu’il vous a plu et que vous avez trouvé ça assez simple ! et si vous le souhaitez, n’hésitez pas à faire un don à l’équipe de Yunohost qui est constitué de bénévoles et qui fait un travail magnifique pour simplifier l’auto-hébergement pour les particuliers.

3 « J'aime »

Merci pour ce tuto. Ça donne envie.

1 « J'aime »

J’ai également installé YunoHost sur un thin client HP la semaine dernière.
Le seul truc qui coince pour moi, c’est l’absence de double authentification et le fait que l’on ne puisse pas mettre à jour Pi-Hole.

1 « J'aime »

J’ai failli l’installer sur un HP T610 Thin client ! mais son APU (un AMD T56N) était incapable de gérer les flux 1080p 60fps devenus parfois courants de nos jours, du coup, je me suis rabattu sur le Shuttle.

J’aurais dû rajouter que le principal défaut de yunohost est le fait que l’on dépend des développeurs pour mettre à jour (ou non) les applications. Pour moi, le nombre d’application et leur facilité d’installation compense ce défaut. Mais lorsqu’on a besoin d’une fonctionnalité nouvelle dans une application et qu’elle existe dans la version officielle mais pas encore dans la version maintenue par yunohost, ça peut devenir effectivement frustrant.

J’ai justement installé sur un T610 et c’est plutôt le manque de gestion de l’EAS qui me posait problème (VPN très lent).
Je viens de prendre un Fujitsu Futro s720 (38€sur eBay) sous AMD GX-217ga qui est un poil plus puissant (~50%) et gère l’EAS. Je vais y migrer mon yunohost et conserver le T610 pour pihole.
J’ai constaté que le package Pihole foutait une merde noir dans les fichiers de dnsmasq donc je vais séparer ces services.

Énorme, je suis aussi tombé sur ce Fujitsu durant mes recherches (si je ne me trompe pas).

Mais dis-moi, pourrais-tu m’expliquer (en vulgarisant stp car je suis débutant sur Pi-Hole et les DNS) ce qui ne va pas sur Pi-Hole version Yunohost, comparé à la version officielle ?

J’ai l’intention d’installer l’application et j’aimerais apprendre un peu. Tu sais d’ailleurs si DNSSEC est implémenté sur pi-Hole ou bien il faut bricoler un peu ? merci

@prog-amateur Pour ce que j’en ai vu, PiHole modifie /etc/dnsmasq.conf ce qui fait que YunoHost ne touche plu à ce fichier même s’il doit être mis à jour pour X ou Y raison à l’avenir pour le bon fonctionnement de YunoHost.

Il a également retouché les fichiers de configuration des domaines que j’avais activés en remplacent mon IP publique par le localhost.

Bref, j’ai globalement l’impression que ça fonctionne moins bien depuis que j’ai installé PiHole sur mon YunoHost :confused:
Avant ça, j’utilisait le t610 sous CentOS avec PiHole, un serveur Mumble en babyphone et OpenVPN qui ramé (j’ai découvert par la suite que le proc n’avait pas les accélérations matériels pour le chiffrement…) mais globalement, ça fonctionnait bien mieux.

La version de PiHole packagé pour YunoHost gère DNSSEC.

Le plus gros problème je trouve, comme dis plus haut, le manque de mise à jour, la 5.9 beta commence alors que l’on est en 3.3.1 sur YunoHost, ça fait potentiellement un paqué de fixs de sécurités qui ne sont pas implémentés.

1 « J'aime »

Merci pour toutes ces précisions !
J’ai regardé la liste des bugs sur le github yunohost/pi-hole, et si j’ai bien compris, l’équipe Yunohost ne compte plus upgrader Pi-Hole après la version 3.3.31.
En effet, depuis la version d’après :

  • l’équipe officielle de Pi-Hole utilise sa propre version de dnsmasq
  • tandis que la version de Yunohost utilise la version dnsmasq mise à jour par Debian (Ndlr : ce qui expliquerait les conflits que tu rencontres depuis cette version ?)

Le développeur principal qui maintient Pi-Hole sur Yunohost assure qu’il ne peut pas avoir de problème de sécurité car :

  • seule la partie dnsmasq est à maintenir au niveau mise-à-jour de sécurité (Ndlr : or dnsmasq sur Pi-Hole est maintenu par Debian, ce qui est en général gage de qualité)
  • le reste de Pi-Hole fonctionne en local et donc ne risquerait rien

Et dans le Readme français, il y a mentionné :

Limitations

  • Activer DHCP avec Pi-hole nécessite une configuration manuelle de votre routeur.
  • Pi-Hole ne peut pas être mis à jour au-delà de la version 3.3.1, car les versions supérieures utilisent une version intégrée de dnsmasq. Ce qui oblige a désactiver la version de dnsmasq utilisée par YunoHost.

Bien sûr, c’est ma compréhension de ce qui a été dit, à confirmer si j’ai bien compris, et surtout si le développeur principal chez Yunohost a évalué correctement tous les risques possibles (j’ai personnellement pour habitude de dire qu’il faut rarement garder une appli non mise à jour).

C’est effectivement tout ce que j’ai lu au sujet de PiHole sur YunoHost.

J’ai également AdGuard dans le collimateur, il n’existe pas encore sous Yunohost (du moins, portage en cours) et une rapide recherche semble dire qu’il est aussi bien si ce n’est mieux :
AdGuard Home à la place de Pi-hole (cachem.fr)
je le testerais quand mon S720 arrivera.

Merci pour l’article, je l’ai lu ainsi que les commentaires : y a des pro Pi-Hole et des pro AdGuard on dirait ^^
En tout cas, je suis content que l’équipe de Yunohost se penche sur AdGuard, l’idéal étant toujours d’avoir le choix.

Et puis, le fait que l’approche d’AdGuard soit un peu différente que celle de Pi-Hole rend les choses plus intéressantes et permet de faciliter le choix.

Apres quelques temps sous AdGuard, j’ai finalement réinstallé Pi-hole sur le T610. L’interface est certes désuète mais le fait d’avoir une appli android pour monitorer est un plus, ça et le fait de pouvoir trouver les requetés d’un périphérique en un clic plutôt que de devoir filtrer les logs (sous AdGuard).
Après, j’ai utilisé deux SSD donc j’ai toujours l’install de AdGuard dispo en un swap de disque si je veux re-tester.

1 « J'aime »

Dis moi Luz, j’ai ouvert un ticket sur Yunohost concernant mon installation. J’aimerais un avis sur la cohésion DNS avec mon ensemble d’applications. Pour l’instant j’ai pas reçu de réponse concrète à ma question (une personne a contourné ce souci, mais je ne peux pas me permettre de faire comme elle) :

  • Yunohost est installé à distance (pas chez moi), et j’y ai configuré un reverse DNS (via la freebox à laquelle il est connecté).
  • J’aimerais utiliser pi-Hole à distance (pas en local), et la doc pi-Hole propose d’utiliser wireguard pour cela.
  • Enfin, j’aimerais utiliser un recursive DNS afin d’améliorer la sécurité/confidentialité du serveur et la doc pi-Hole propose de mettre en place unbound pour cela. A noter que unbound s’installe via Debian, mais il n’existe pas d’app officielle Yunohost (on trouve un brouillon sur la liste des app souhaitées, mais il date de 3 ans).

Je recopie donc ma question ici vu que tu as l’air de gérer les DNS :

  1. Cette config (reverse DNS Freebox + pi-Hole en mode recursive DNS + Wireguard) ne risque-t-elle pas de générer des conflits sur mon serveur (le fait d’avoir configuré un reverse DNS via la freebox, etc.) ?

  2. Aurais-tu des idées de bonnes pratiques (ordre d’installation pour chaque app, ou bien une option à utiliser/ne surtout pas utiliser, etc.) pour éviter une erreur ?

Merci beaucoup !

PS : je ne sais pas si tu as lu mais si j’ai bien compris les dév qui adaptent pi-Hole sur Yunohost essayent de régler le souci de dnsmasq j’espère que ça te plaira.

Pour ce que j’en ai testé, j’ai constaté que le Recursive DNS ajoute une méchante latence voir des timeout (je dois confirmer que ça vient bien de là toute fois).

N’ayant pas de freebox, je vois pas ce qui est configuré dans le reverse DNS, il y a une redirection vers une IP interne avec tout les ports ou il faut configurer le NAT aussi ?
En théorie, ça doit fonctionner comme ça, le VPN ajoute une couche de sécurité et permet de ne pas avoir tout l’internet qui peu se connecter sur ton Pi-hole.

Si je devais donner un ordre, ce serait reverse DNS, wireguard fonctionnel, pi-hole fonctionnel et unbound en dernier.

Ca me fait quand même tiquer d’utiliser un VPN sur chaque machine à la maison pour taper sur le DNS de pi-hole à distance. Ce serait tellement plus simple d’avoir un deuxième pi-hole à la maison (sous raspberry pour limiter les couts).

Je ne sais pas exactement comment c’est géré dans les détails, mais en gros t’as juste à donner ton nom de domaine dans les paramètres de la freebox et cliquer sur le bouton d’activation du recursive DNS. Pas de bidouillage manuel de NAT.

Oui, je suis d’accord, en fait c’est entre autres pour le côté apprentissage que je fais ça. J’ai pas l’intention d’y connecter beaucoup de machines dessus (quoique, si ça marche bien, pourquoi pas), et donc pour une ou deux machines par exemple, ça ne me dérange pas trop.

Sauf erreur, le fait de mettre en place le VPN implique que tout le trafic de la machine va passer par le VPN, pas que les requêtes DNS.

Oui c’est ce que j’ai aussi compris. Dis-moi si ça pose problème (si ça se trouve j’ai pas bien compris ta remarque).

Mon idée, c’est par exemple de prendre mon smartphone 4G dehors, le connecter via wireguard sur mon serveur distant afin qu’il passe par pi-Hole pour le DNS (comme ça pas de pub, et les requêtes DNS ne passent pas par Free). Pour moi, c’est pas grave si tout mon trafic passe par le VPN sachant que le serveur m’appartient (c’est pas comme si je passais par un serveur tiers). Du coup le circuit serait :

Smartphone qui veut aller sur domaine.com > Wireguard VPN > Serveur > DNS récursif via pi-Hole > domaine.com

C’est pas bon ?

Je corrige un peu :
Smartphone qui veut aller sur domaine.com et est déjà connecté au serveur yunohost distant via Wireguard > requête vers pi-hole > DNS récursif (unbound) > pi-hole > domaine.com depuis l’IP du serveur Yunohost, ce dernier étant serveur de VPN.

Il faudra configurer l’adresse du DNS directement sous android. Le truc, c’est que si un seul maillon de la chaine tombe en panne, plu d’internet sur le téléphone.

Bonjour
Je souhaite installer 2 ou 3 petits serveurs chez moi, je viens de lire cet article, et, pas de Shuttle XS35V4 sur ebay (uniquement un v3 à 85€) ni sur LBC (que des V2 avec des atom)
J’ai quelques vieux PC mais ce sont des intel C2D dans de grosses boites, avec de grosses alim, donc hors sujets.
Il y a la solution Pi, mais il faut les boitiers, les alim …
Des mini PC dans lesquels changer les HD et la mémoire m’intéressent plus.
Mais que choisir en occasion / très bon plan ?

Merci

1 « J'aime »

Bonjour Emmanuel, c’est pas toujours évident de réunir tous les critères que l’on veut dans le marché d’occasion. En revanche, ce qui est bien est qu’on y trouve de tout en terme de prix.
J’ai en ma possession un Asus VivoPC vc62b-b002 qui m’a servi de NAS Nextcloud en RAID1 fut une époque, il a 3 points inférieurs au Shuttle XS35V4 :

  • il tourne à 1,4GHz (contre 2-2,4GHz pour le J1900 du Shuttle)
  • de souvenir, il n’est pas fanless (mais le ventilateur est quasi inaudible)
  • il consomme légèrement plus (15W contre 10W pour le Shuttle XS35V4)

Après, il a des avantages indéniables :

  • il a 2 baies 2,5 pouces très facilement installables
  • cause du premier point : l’accès aux composants est facilité par ASUS via le toit coulissant
  • une connectique assez riche (4 USB 3, 2 USB 2, 1 RJ45 Gigabit, 1 HDMI, 1 Display Port
  • une connexion sans fil Wifi 802.11a/b/g/n/ac pour une installation sans câble ethernet.

Sachant qu’un foudre de guerre n’est pas nécessaire pour faire tourner des OS comme Yunohost ou Nextcloud, etc. Si tu n’as pas besoin de VM ou de truc hyper complexe, il peut faire l’affaire. Je l’ai en barbone sans mémoire (quoique faudrait que je vérifie y a peut-être 4GB avec)/ ni disque pour 40€ si ça te dit, c’est pas cher, pour 1 appareil acheté, 1 appareil acheté lol.

Si celui ne te dis pas, faudrait que tu me donnes tes critères rédhibitoires/obligatoires/budget pour que je cerne mieux tes idées. Passe une bonne soirée.

Merci de la proposition
J’ai trouvé des Futro S720 à 40€ sur ebay, ainsi que sur LBC, je vais voir tout ça.
Je suis en train d’essayer de faire la liste des besoins.
Il y a à la fois du perso et du pro (pour la TPE de ma femme)
Perso : serveur de fichiers pour du stockage / échanges de fichiers => NAS
Pro : serveur de fichiers en stockage, serveur de sauvegardes de 2 postes + 1
Pro : serveur de messagerie, avec la possibilité e travailler à 2 sur les mails reçus, avec indication du traitement par la seconde personne : si A ouvre le mail et le traite B doit pouvoir savoir que le mail est traité ; si A ouvre le mail et ne le traite pas B doit pouvoir savoir que le mail a été lu et non traité ; si A ouvre le mail et traite une partie du mail, B doit pouvoir le voir …
Nous travaillons avec Thunderbird et utilisons les étiquettes pour indiquer l’état du mail. Ill faut la même chose, mais sur un serveur en local (les mails sont chez OVH qui sont passés sur les outils MS :frowning:
donc je verrais bien 3 serveurs … avec, pourquoi pas des sauvegardes croisées entre pro/perso ainsi que sur des disques externes, et le Pro doit aussi être sauvegardé sur le cloud.
Pas d’accès depuis l’extérieur aux données stockées elles sont à usage interne. Acccès au net par ADSL (sosh), la fibre serait prévue dans la rue au premier semestre 2023.
Voici pour l’instant les infos en ma possession.

a bientôt