Un homelab utile doit rester compréhensible quand quelque chose tombe en panne. Le réseau transporte les échanges, le pare-feu décide des accès et la sauvegarde permet de revenir à un état connu. Mélanger ces rôles complique chaque incident.

Identifier les rôles réseau

Le routeur relie des réseaux et applique souvent le NAT, le DHCP, le DNS local et les règles de pare-feu. Le switch relie les équipements sur un même réseau et peut transporter des VLANs. Il ne remplace pas automatiquement le routage ou le filtrage.

Un homelab pour l'IA localeLa vue réseau montre le chemin de la requête. La vue données isole le stockage et la sauvegarde.
Ouvrir en grand

Commencer simple

Un seul réseau local bien documenté vaut mieux qu'une segmentation complexe mal comprise. Listez les équipements, attribuez des adresses stables aux services importants et nommez clairement chaque rôle.

Ajoutez une séparation seulement pour une raison précise : isoler des objets connectés, protéger l'administration, séparer un laboratoire risqué ou limiter un service exposé.

Limiter l'exposition

Une interface d'IA locale n'a pas besoin d'être accessible depuis Internet pour fonctionner sur le réseau domestique. Préférez un accès VPN lorsque vous êtes à distance. Fermer un port public supprime une classe entière d'attaques.

Pour chaque service, relevez :

  • L'adresse et le port d'écoute.
  • Les utilisateurs autorisés.
  • Le protocole et le chiffrement.
  • Les données accessibles.
  • Les journaux produits.
  • La procédure de mise à jour.

Commencez par l'inventaire réel des ports ouverts, avec le processus qui les écoute :

Terminal
sudo ss -tlnp

Sous Ubuntu, UFW pose un pare-feu lisible. Cet exemple refuse toute connexion entrante, sauf SSH depuis le réseau local 192.168.1.0/24. Adaptez l'adresse à votre réseau, et autorisez SSH avant d'activer le pare-feu si vous êtes connecté à distance :

Terminal
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow from 192.168.1.0/24 to any port 22 proto tcp
sudo ufw enable
sudo ufw status verbose

Comptes et administration

Séparez le compte d'administration du compte utilisé au quotidien. Utilisez des clés SSH, désactivez les accès inutiles et conservez les secrets hors des fichiers de configuration partagés.

Depuis votre poste, créez une clé puis copiez sa partie publique sur le serveur :

Terminal
ssh-keygen -t ed25519 -C "poste-admin"
ssh-copy-id [email protected]

Une fois la connexion par clé vérifiée dans un second terminal, désactivez les mots de passe en plaçant PasswordAuthentication no dans /etc/ssh/sshd_config, puis rechargez le service avec sudo systemctl reload ssh. Gardez la première session ouverte tant que la nouvelle connexion n'a pas réussi.

Les containers isolent des processus, mais ils ne constituent pas une frontière absolue. Réduisez leurs privilèges, montez seulement les dossiers nécessaires et évitez de leur donner accès au socket Docker sans raison.

Sauvegarder ce qui est irremplaçable

Les poids publics peuvent souvent être retéléchargés. Vos documents, configurations, clés, index et travaux personnels sont plus importants. Classez les données selon leur coût de reconstruction.

Données actives→Copie locale séparée→Copie hors site

La règle 3-2-1 reste un bon repère : trois copies, sur deux supports différents, dont une hors site. Elle décrit un objectif, pas un outil particulier.

restic est un outil libre qui chiffre, déduplique et versionne les sauvegardes. Le dépôt peut se trouver sur un disque externe, un NAS ou un stockage distant. Cet exemple utilise un disque monté sur /mnt/sauvegarde :

Terminal
restic -r /mnt/sauvegarde/restic init
restic -r /mnt/sauvegarde/restic backup /srv/ia/config /srv/ia/documents
restic -r /mnt/sauvegarde/restic snapshots

init crée le dépôt et demande un mot de passe. Conservez-le dans un gestionnaire de mots de passe, hors du serveur : sans lui, la sauvegarde est illisible. Pour limiter l'espace occupé, gardez par exemple sept sauvegardes quotidiennes, quatre hebdomadaires et six mensuelles :

Terminal
restic -r /mnt/sauvegarde/restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune

Tester la restauration

Une sauvegarde n'est prouvée qu'après une restauration. Choisissez un petit service, restaurez-le dans un environnement isolé et mesurez ce qui manque : secrets, volumes, configuration réseau, version du logiciel ou documentation.

Avec restic, restaurez la dernière sauvegarde dans un dossier temporaire, puis comparez-le aux originaux :

Terminal
restic -r /mnt/sauvegarde/restic restore latest --target /tmp/test-restauration
diff -r /srv/ia/config /tmp/test-restauration/srv/ia/config

Documenter l'état connu

Conservez un schéma réseau, la liste des services, les ports, les volumes, l'emplacement des sauvegardes et l'ordre de restauration. Une documentation courte et à jour vaut mieux qu'un inventaire exhaustif abandonné.

L’essentiel

  • Routeur, switch et pare-feu jouent des rôles distincts : ne les confondez pas pendant un incident.
  • Commencez par un réseau simple et documenté ; ajoutez une segmentation pour une raison précise.
  • Préférez un VPN à un port public, et des clés SSH à des mots de passe.
  • Les ports publiés par Docker contournent UFW : publiez sur une adresse précise.
  • La règle 3-2-1 fixe l'objectif ; seule une restauration testée prouve la sauvegarde.

Testez-vous

Répondez de tête ou par écrit, puis vérifiez. Se tester juste après la lecture aide à retenir.

  1. Que signifie une écoute sur 0.0.0.0 ?

    Voir la réponse

    Le service accepte les connexions sur toutes les interfaces réseau de la machine, donc potentiellement depuis tout le réseau local, voire Internet si un port est redirigé.

  2. Pourquoi un pare-feu UFW fermé ne protège-t-il pas toujours un container ?

    Voir la réponse

    Docker écrit ses propres règles réseau pour les ports publiés, qui passent avant celles d'UFW. Il faut publier sur une adresse précise, comme 127.0.0.1, ou ne pas publier le port.

  3. Que décrit la règle 3-2-1 ?

    Voir la réponse

    Trois copies des données, sur deux supports différents, dont une hors site. C'est un objectif, indépendant de l'outil utilisé.

Sources et pour aller plus loin