Communitygithub.com

homelab-vlan-segmentation

Segmentation du réseau domestique en VLANs pour le trafic IoT, invité, de confiance et serveur avec UniFi, pfSense/OPNsense et MikroTik — incluant la configuration des ports trunk, les règles de pare-feu et le mappage SSID-VLAN. À utiliser lors de la division d'un réseau domestique en VLANs IoT, invité, de confiance et serveur sur UniFi, pfSense/OPNsense ou MikroTik.

Qu'est-ce que homelab-vlan-segmentation ?

Ce skill guide la mise en place de la segmentation VLAN pour les réseaux domestiques sur trois plateformes populaires : UniFi, pfSense/OPNsense et MikroTik. Il explique comment créer des VLANs isolés (confiance, IoT, serveurs, invité et gestion) avec des sous-réseaux dédiés, configurer des ports trunk et d'accès sur les commutateurs, et mapper des SSID Wi-Fi aux VLANs correspondants. L'accent est mis sur les règles de pare-feu essentielles pour bloquer le trafic IoT vers les segments de confiance tout en autorisant un accès sélectif (par exemple, DNS vers Pi-hole). Le skill inclut un modèle de conception, des configurations étape par étape, des anti-patrons à éviter et des bonnes pratiques pour garantir la sécurité dès le départ. Il est idéal pour les débutants comme pour les passionnés expérimentés cherchant à améliorer la sécurité du réseau domestique sans surcharge inutile.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/affaan-m/ECC/tree/main/skills/homelab-vlan-segmentation

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Segmentation VLAN pour le laboratoire domestique

Comment diviser un réseau domestique en VLANs isolés afin que les appareils IoT, les invités et vos PC principaux ne puissent pas communiquer entre eux. La mise à niveau de sécurité la plus impactante pour un réseau domestique.

Toutes les règles de pare-feu présentées ici ajoutent une isolation entre les segments — elles ne suppriment pas les protections existantes. Appliquez les modifications durant une fenêtre de maintenance et vérifiez la connectivité entre les segments après chaque étape avant de continuer.

Quand l'utiliser

  • Configurer des VLANs sur un réseau domestique pour la première fois
  • Isoler les appareils IoT (ampoules connectées, caméras, téléviseurs) des appareils de confiance
  • Créer un réseau Wi-Fi invité qui ne peut pas atteindre les appareils domestiques
  • Expliquer le fonctionnement des VLANs à une personne non familière avec le concept
  • Configurer les ports trunk, les ports d'accès et le mappage SSID-VLAN
  • Résoudre les problèmes de routage inter-VLAN ou de règles de pare-feu sur pfSense/OPNsense/UniFi

Comment ça fonctionne

Sans VLANs — réseau plat :
  Tous les appareils sur 192.168.1.0/24
  Smart TV (logiciel malveillant potentiel) → peut atteindre votre NAS, vos PC, tout

Avec VLANs :
  VLAN 10 — Confiance    192.168.10.0/24  (PCs, téléphones, ordinateurs portables)
  VLAN 20 — IoT          192.168.20.0/24  (Smart TV, ampoules, caméras)
  VLAN 30 — Serveurs     192.168.30.0/24  (NAS, Pi, VMs)
  VLAN 40 — Invité       192.168.40.0/24  (Wi-Fi visiteur)
  VLAN 99 — Gestion      192.168.99.0/24  (interfaces Web commutateur/point d'accès)

  Smart TV → bloquée pour atteindre 192.168.10.0/24 et 192.168.30.0/24
  Invités → internet uniquement, ne peuvent voir aucun appareil domestique

Modèle de conception VLAN

VLAN  Nom         Sous-réseau          Passerelle         Objectif
10    confiance   192.168.10.0/24       192.168.10.1       PCs, téléphones, ordinateurs portables
20    iot         192.168.20.0/24       192.168.20.1       Appareils connectés
30    serveurs    192.168.30.0/24       192.168.30.1       NAS, Pi, auto-hébergé
40    invité      192.168.40.0/24       192.168.40.1       Wi-Fi visiteur
99    gestion     192.168.99.0/24       192.168.99.1       Interfaces Web équipement réseau

Exemples

Laboratoire domestique typique avec point d'accès UniFi et commutateur géré :

Scénario : Maison 3 chambres, UniFi Dream Machine + commutateur 8 ports UniFi + 2 points d'accès

VLAN 10 — Confiance    192.168.10.0/24   MacBook, iPhones, iPad
VLAN 20 — IoT          192.168.20.0/24   Thermostat Nest, Philips Hue, sonnette Ring, Smart TV
VLAN 30 — Serveurs     192.168.30.0/24   Synology NAS (192.168.30.10), Pi-hole (192.168.30.2)
VLAN 40 — Invité       192.168.40.0/24   Wi-Fi visiteur — internet uniquement

Mappage SSID → VLAN :
  "Maison"      → VLAN 10 (WPA2, mot de passe fort, appareils de confiance uniquement)
  "IoT"         → VLAN 20 (WPA2, mot de passe séparé, imprimé sur le routeur pour la configuration)
  "Invité"      → VLAN 40 (WPA2, mot de passe simple que vous pouvez partager librement)

Comportement des ports du commutateur :
  Port 1  → trunk vers le routeur (VLANs tagués 10,20,30,40,99)
  Port 2  → trunk vers les points d'accès (VLANs tagués 10,20,40 ; le point d'accès gère le marquage par SSID)
  Port 3  → accès VLAN 30 (NAS — non tagué, aucune connaissance VLAN nécessaire)
  Port 4  → accès VLAN 30 (Pi-hole — non tagué)
  Port 5–8 → accès VLAN 10 (postes de travail filaires)

Règles de pare-feu appliquées (toutes les règles ajoutent de l'isolation, aucune ne supprime les protections existantes) :
  IoT → Confiance : BLOQUER
  IoT → Serveurs : BLOQUER sauf 192.168.30.2:53 (DNS Pi-hole autorisé)
  IoT → Internet : AUTORISER
  Invité → Réseaux locaux : BLOQUER
  Invité → Internet : AUTORISER
  Confiance → partout : AUTORISER

Configuration UniFi

Créer des réseaux dans le contrôleur UniFi

Paramètres → Réseaux → Créer un nouveau réseau

Pour chaque VLAN :
  Nom : IoT
  Objectif : Corporate (fournit DHCP + routage)
  ID VLAN : 20
  Réseau : 192.168.20.0/24
  Adresse IP passerelle : 192.168.20.1
  DHCP : Activer
  Plage DHCP : 192.168.20.100 – 192.168.20.254

Mapper les SSID aux VLANs (UniFi)

Paramètres → WiFi → Créer un nouveau WiFi

  Nom : IoT-Network
  Mot de passe : <mot de passe séparé>
  Réseau : IoT  ← sélectionnez votre VLAN ici
  # Tous les appareils se connectant à ce SSID atterrissent dans le VLAN 20

  Nom : Invité
  Mot de passe : <mot de passe invité>
  Réseau : Invité
  Politique invité : Activer  ← isole également les invités entre eux

Règles de pare-feu UniFi (Règles de trafic)

Paramètres → Trafic et sécurité → Règles de trafic

# Bloquer IoT pour atteindre le VLAN de confiance
  Action : Bloquer
  Catégorie : Réseau local
  Source : IoT (192.168.20.0/24)
  Destination : Confiance (192.168.10.0/24)

# Autoriser IoT à atteindre uniquement internet
  Action : Autoriser
  Source : IoT
  Destination : Internet

# Bloquer Invité de tous les réseaux locaux
  Action : Bloquer
  Source : Invité
  Destination : Réseaux locaux

Configuration pfSense / OPNsense

Créer des VLANs

Interfaces → Assignations → VLANs → Ajouter

  Interface parent : em1 (votre carte réseau LAN)
  Tag VLAN : 20
  Description : IoT

# Répéter pour chaque VLAN, puis assigner chaque VLAN à une interface :
Interfaces → Assignations → Ajouter
  Sélectionnez le VLAN créé → cliquez sur Ajouter
  Activez l'interface, définissez l'IP comme adresse de passerelle (192.168.20.1/24)

DHCP pour chaque VLAN

Services → Serveur DHCP → Sélectionnez votre interface VLAN

  Activer DHCP
  Plage : 192.168.20.100 à 192.168.20.254
  Serveurs DNS : 192.168.30.2  ← IP Pi-hole si vous en avez un

Règles de pare-feu (pfSense/OPNsense)

# Les règles sont traitées de haut en bas, la première correspondance l'emporte.

# Sur l'interface IoT (VLAN 20) :
  Règle 1 : Autoriser IoT → DNS Pi-hole  ← DOIT venir avant la règle de blocage RFC1918
    Protocole : UDP/TCP
    Source : Réseau IoT
    Destination : 192.168.30.2 port 53
    Action : Autoriser

  Règle 2 : Bloquer IoT → RFC1918 (toutes les plages IP privées)
    Protocole : any
    Source : Réseau IoT
    Destination : RFC1918 (192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12)
    Action : Bloquer

  Règle 3 : Autoriser IoT → internet
    Protocole : any
    Source : Réseau IoT
    Destination : any
    Action : Autoriser

# Sur l'interface de confiance (VLAN 10) :
  Autoriser tout (les appareils de confiance peuvent atteindre tout)
    Source : Réseau de confiance
    Destination : any
    Action : Autoriser

# Exceptions supplémentaires pour les appareils IoT nécessitant des services locaux spécifiques :
  Insérer avant la règle 2 (le blocage RFC1918) :
    Protocole : TCP
    Source : Réseau IoT
    Destination : 192.168.30.x port 8123  ← Home Assistant
    Action : Autoriser

Configuration MikroTik

# Étape 1 : Créer un pont avec filtrage VLAN activé
/interface bridge
add name=bridge vlan-filtering=yes

# Étape 2 : Ajouter les ports physiques au pont
# Port trunk vers le routeur/liaison montante (tagué pour tous les VLANs)
/interface bridge port
add bridge=bridge interface=ether1 frame-types=admit-only-vlan-tagged

# Port d'accès pour les appareils de confiance (VLAN 10 non tagué)
/interface bridge port
add bridge=bridge interface=ether2 pvid=10 frame-types=admit-only-untagged-and-priority-tagged

# Port d'accès pour les appareils IoT (VLAN 20 non tagué)
/interface bridge port
add bridge=bridge interface=ether3 pvid=20 frame-types=admit-only-untagged-and-priority-tagged

# Étape 3 : Définir quels VLANs sont autorisés sur quels ports
/interface bridge vlan
add bridge=bridge tagged=ether1 untagged=ether2 vlan-ids=10
add bridge=bridge tagged=ether1 untagged=ether3 vlan-ids=20

# Étape 4 : Créer des interfaces VLAN sur le pont (adresses IP passerelle)
/interface vlan
add interface=bridge name=vlan10 vlan-id=10
add interface=bridge name=vlan20 vlan-id=20

# Étape 5 : Attribuer les adresses IP passerelle
/ip address
add interface=vlan10 address=192.168.10.1/24
add interface=vlan20 address=192.168.20.1/24

# Étape 6 : Pools et serveurs DHCP
/ip pool
add name=pool-trusted ranges=192.168.10.100-192.168.10.254
add name=pool-iot ranges=192.168.20.100-192.168.20.254

/ip dhcp-server
add interface=vlan10 address-pool=pool-trusted name=dhcp-trusted
add interface=vlan20 address-pool=pool-iot name=dhcp-iot

/ip dhcp-server network
add address=192.168.10.0/24 gateway=192.168.10.1
add address=192.168.20.0/24 gateway=192.168.20.1

# Étape 7 : Pare-feu — bloquer IoT pour atteindre le VLAN de confiance
/ip firewall filter
add chain=forward src-address=192.168.20.0/24 dst-address=192.168.10.0/24 \
    action=drop comment="Bloquer IoT vers Confiance"

Ports trunk vs ports d'accès du commutateur

# Port trunk : transporte plusieurs VLANs (tagués) — relie commutateur-commutateur, commutateur-routeur, commutateur-point d'accès
# Port d'accès : transporte un seul VLAN (non tagué) — se connecte aux appareils finaux (PC, caméra, NAS)

# Un port de commutateur géré connecté à votre routeur doit être un trunk :
  VLANs autorisés : 10, 20, 30, 40, 99

# Un port connecté à un PC doit être un port d'accès :
  VLAN : 10 (confiance)
  Pas de marquage — le PC ne sait pas et ne se soucie pas des VLANs

# Un port connecté à un point d'accès doit être un trunk :
  Le point d'accès marque le trafic de chaque SSID avec l'ID VLAN approprié
  VLANs autorisés : 10, 20, 40 (quels que soient les SSID que le point d'accès fournit)

Anti-patrons

# MAUVAIS : Créer des VLANs sans ajouter de règles de pare-feu
# Les VLANs sans règles de pare-feu ne fournissent pas de sécurité — le routage inter-VLAN est ouvert par défaut
# BON : Ajouter des règles de blocage explicites immédiatement après la création des VLANs

# MAUVAIS : Placer le Pi-hole dans le VLAN IoT
# Les appareils IoT peuvent l'atteindre mais les appareils de confiance ne le peuvent pas (sans règles supplémentaires)
# BON : Pi-hole dans le VLAN Serveurs avec une règle autorisant tous les VLANs à atteindre le port 53

# MAUVAIS : VLAN natif égal au VLAN de gestion
# Le trafic non tagué atterrissant dans votre VLAN de gestion permet des attaques de saut VLAN
# BON : Utiliser un VLAN inutilisé dédié comme natif (par exemple, VLAN 999), garder le trafic de gestion tagué

# MAUVAIS : Même mot de passe Wi-Fi pour le SSID IoT et le SSID de confiance
# Quiconque apprend le mot de passe peut connecter des appareils IoT au mauvais segment

Bonnes pratiques

  • Commencez avec 4 VLANs : Confiance, IoT, Serveurs, Invité — ajoutez-en plus si nécessaire
  • Placez Pi-hole dans le VLAN Serveurs (192.168.30.x)
  • Ajoutez une règle de pare-feu autorisant le DNS (port 53) depuis tous les VLANs vers l'IP du Pi-hole — avant toute règle de blocage RFC1918
  • Testez l'isolation après chaque modification de règle : depuis le VLAN IoT, essayez de pinguer un appareil de confiance — cela devrait échouer
  • Utilisez un VLAN de gestion pour les interfaces Web du commutateur et des points d'accès et restreignez l'accès au seul VLAN de confiance
  • Documentez votre conception VLAN dans un tableau (ID VLAN, nom, sous-réseau, objectif)

Compétences connexes

  • homelab-network-setup
  • homelab-pihole-dns
  • homelab-wireguard-vpn

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

accessibility

Design, implement, and audit inclusive digital products using WCAG 2.2 Level AA. Use when building or auditing UI that must meet WCAG 2.2 Level AA, or when reviewing a change for keyboard, contrast, or screen-reader support.

affaan-m/content-engine

Create platform-native content systems for X, LinkedIn, TikTok, YouTube, newsletters, and repurposed multi-platform campaigns. Use when the user wants social posts, threads, scripts, content calendars, or one source asset adapted cleanly across platforms.

affaan-m/ECC

Multi-platform content distribution across X, LinkedIn, Threads, and Bluesky. Adapts content per platform using content-engine patterns. Never posts identical content cross-platform. Use when the user wants to distribute content across social platforms.

affaan-m/fal-ai-media

Unified media generation via fal.ai MCP — image, video, and audio. Covers text-to-image (Nano Banana), text/image-to-video (Seedance, Kling, Veo 3), text-to-speech (CSM-1B), and video-to-audio (ThinkSound). Use when the user wants to generate images, videos, or audio with AI.

affaan-m/manim-video

日本語翻訳:このファイルは manim-video 用の日本語翻訳が必要です

affaan-m/remotion-video-creation

Remotion のベストプラクティス - React で動画を作成する。3D、アニメーション、音声、字幕、チャート、トランジションなどをカバーするドメイン固有の29のルール。

affaan-m/video-editing

AI-assisted video editing workflows for cutting, structuring, and augmenting real footage. Covers the full pipeline from raw capture through FFmpeg, Remotion, ElevenLabs, fal.ai, and final polish in Descript or CapCut. Use when the user wants to edit video, cut footage, create vlogs, or build video content.

agent-architecture-audit

Full-stack diagnostic for agent and LLM applications. Audits the 12-layer agent stack for wrapper regression, memory pollution, tool discipline failures, hidden repair loops, and rendering corruption. Produces severity-ranked findings with code-first fixes. Essential for developers building agent applications, autonomous loops, or any LLM-powered feature. Use when an agent or LLM feature misbehaves and the failing layer is unknown, or before shipping an agent stack.

agent-eval

Head-to-head comparison of coding agents (Claude Code, Aider, Codex, etc.) on custom tasks with pass rate, cost, time, and consistency metrics. Use when choosing between coding agents, or when a change to an agent setup needs measured pass rate, cost, and time rather than an impression.

agent-harness-construction

Design and optimize AI agent action spaces, tool definitions, and observation formatting for higher completion rates. Use when defining or revising an agent

agentic-engineering

Operate as an agentic engineer using eval-first execution, decomposition, and cost-aware model routing. Use when planning or executing engineering work that agents will carry out end to end.

agentic-os

Build persistent multi-agent operating systems on Claude Code. Covers kernel architecture, specialist agents, slash commands, file-based memory, scheduled automation, and state management without external databases. Use when building a persistent multi-agent system on Claude Code with its own memory, commands, and scheduling.

agent-introspection-debugging

Structured self-debugging workflow for AI agent failures using capture, diagnosis, contained recovery, and introspection reports. Use when an agent run fails and you need a reproducible diagnosis instead of a retry.

agent-payment-x402

Add x402 payment execution to AI agents with per-task budgets, spending controls, and non-custodial wallets. Supports Base through agentwallet-sdk and X Layer through OKX Payments / OKX Agent Payments Protocol. Use when an agent must pay for something itself and needs per-task budgets, spending controls, and a non-custodial wallet.

agent-self-evaluation

Use after completing any non-trivial task. The agent self-rates its output on 5 axes — accuracy, completeness, clarity, actionability, conciseness — with concrete evidence per criterion. Produces a structured 1-5 scorecard with specific improvement suggestions.

agent-sort

Build an evidence-backed ECC install plan for a specific repo by sorting skills, commands, rules, hooks, and extras into DAILY vs LIBRARY buckets using parallel repo-aware review passes. Use when ECC should be trimmed to what a project actually needs instead of loading the full bundle.

ai-first-engineering

Engineering operating model for teams where AI agents generate a large share of implementation output. Use when setting team process, review gates, or ownership rules for a codebase largely written by agents.

ai-regression-testing

Regression testing strategies for AI-assisted development. Sandbox-mode API testing without database dependencies, automated bug-check workflows, and patterns to catch AI blind spots where the same model writes and reviews code. Use when adding regression coverage to AI-assisted code, or when the same model both wrote and reviewed a change.

android-clean-architecture

Clean Architecture patterns for Android and Kotlin Multiplatform projects — module structure, dependency rules, UseCases, Repositories, and data layer patterns. Use when structuring modules, layers, or data flow in an Android or KMP project.

angular-developer

Generates Angular code and provides architectural guidance. Trigger when creating projects, components, or services, or for best practices on reactivity (signals, linkedSignal, resource), forms, dependency injection, routing, SSR, accessibility (ARIA), animations, styling (component styles, Tailwind CSS), testing, or CLI tooling.

Skills associés