Communitygithub.com

Segmentação de VLANs para Homelab

Segmentação de redes domésticas em VLANs para IoT, convidados, dispositivos confiáveis e servidores usando UniFi, pfSense/OPNsense e MikroTik — incluindo configuração de porta trunk, regras de firewall e mapeamento de SSID para VLAN. Use ao dividir uma rede doméstica em VLANs de IoT, convidados, confiáveis e servidores no UniFi, pfSense/OPNsense ou MikroTik.

O que é Segmentação de VLANs para Homelab?

Esta habilidade fornece um guia completo para segmentar uma rede doméstica em VLANs isoladas, aumentando significativamente a segurança da rede. Ela ensina como criar e configurar VLANs para dispositivos IoT, convidados, dispositivos confiáveis e servidores, utilizando roteadores e switches gerenciáveis das plataformas UniFi, pfSense/OPNsense e MikroTik. A habilidade explica detalhadamente a configuração de portas trunk e access, o mapeamento de SSIDs Wi-Fi para VLANs específicas e a criação de regras de firewall para bloquear o tráfego indesejado entre segmentos, como impedir que dispositivos IoT acessem a rede confiável. O conteúdo inclui exemplos práticos, um template de design de VLAN, anti-padrões a serem evitados e boas práticas, como a colocação do Pi-hole na VLAN de servidores. É ideal para entusiastas de homelab e administradores de rede iniciantes que desejam implementar uma segmentação de rede robusta e segura.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/affaan-m/everything-claude-code/tree/main/skills/homelab-vlan-segmentation

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

O que Segmentação de VLANs para Homelab faz?

Como dividir uma rede doméstica em VLANs isoladas para que dispositivos IoT, convidados e seus PCs principais não possam se comunicar entre si. A atualização de segurança de maior impacto para uma rede doméstica.

Todas as regras de firewall mostradas aqui adicionam isolamento entre os segmentos — elas não removem proteções existentes. Aplique as mudanças em uma janela de manutenção e verifique a conectividade entre os segmentos após cada etapa antes de prosseguir.

Quando Usar

  • Configurar VLANs em uma rede doméstica pela primeira vez
  • Isolar dispositivos IoT (lâmpadas inteligentes, câmeras, TVs) de dispositivos confiáveis
  • Criar uma rede Wi-Fi para convidados que não possa alcançar dispositivos da rede doméstica
  • Explicar como as VLANs funcionam para alguém não familiarizado com o conceito
  • Configurar portas trunk, portas access e mapeamento SSID-para-VLAN
  • Solucionar problemas de roteamento entre VLANs ou regras de firewall no pfSense/OPNsense/UniFi

Como Funciona

Sem VLANs — rede plana:
  Todos os dispositivos em 192.168.1.0/24
  Smart TV (potencial malware) → pode alcançar seu NAS, PCs, tudo

Com VLANs:
  VLAN 10 — Confiável    192.168.10.0/24  (PCs, celulares, laptops)
  VLAN 20 — IoT          192.168.20.0/24  (smart TV, lâmpadas, câmeras)
  VLAN 30 — Servidores   192.168.30.0/24  (NAS, Pi, VMs)
  VLAN 40 — Convidados   192.168.40.0/24  (Wi-Fi para visitantes)
  VLAN 99 — Gerenciamento 192.168.99.0/24  (interfaces web do switch/AP)

  Smart TV → bloqueada de alcançar 192.168.10.0/24 e 192.168.30.0/24
  Convidados → apenas internet, não podem ver nenhum dispositivo doméstico

Template de Design de VLAN

VLAN  Nome          Sub-rede              Gateway             Propósito
10    confiavel     192.168.10.0/24       192.168.10.1        PCs, celulares, laptops
20    iot           192.168.20.0/24       192.168.20.1        Dispositivos smart home
30    servidores    192.168.30.0/24       192.168.30.1        NAS, Pi, auto-hospedado
40    convidados    192.168.40.0/24       192.168.40.1        Wi-Fi para visitantes
99    gerenciamento 192.168.99.0/24       192.168.99.1        Interfaces web dos equipamentos de rede

Exemplos

Homelab típico com UniFi AP e switch gerenciado:

Cenário: Casa de 3 quartos, UniFi Dream Machine + UniFi switch de 8 portas + 2 APs

VLAN 10 — Confiável    192.168.10.0/24   MacBook, iPhones, iPad
VLAN 20 — IoT          192.168.20.0/24   Nest thermostat, Philips Hue, Ring doorbell, smart TVs
VLAN 30 — Servidores   192.168.30.0/24   Synology NAS (192.168.30.10), Pi-hole (192.168.30.2)
VLAN 40 — Convidados   192.168.40.0/24   Wi-Fi para visitantes — apenas internet

Mapeamento SSID → VLAN:
  "Home"      → VLAN 10 (WPA2, senha forte, apenas dispositivos confiáveis)
  "IoT"       → VLAN 20 (WPA2, senha separada, impressa no roteador para configuração)
  "Guest"     → VLAN 40 (WPA2, senha simples que você pode compartilhar livremente)

Comportamento das portas do switch:
  Porta 1  → trunk para o roteador (VLANs marcadas 10,20,30,40,99)
  Porta 2  → trunk para APs (VLANs marcadas 10,20,40; o AP gerencia a marcação por SSID)
  Porta 3  → access VLAN 30 (NAS — não marcada, sem necessidade de conhecimento de VLANs)
  Porta 4  → access VLAN 30 (Pi-hole — não marcada)
  Porta 5–8 → access VLAN 10 (estações de trabalho com fio)

Regras de firewall aplicadas (todas as regras adicionam isolamento, nenhuma remove proteções existentes):
  IoT → Confiável: BLOQUEAR
  IoT → Servidores: BLOQUEAR exceto 192.168.30.2:53 (DNS do Pi-hole permitido)
  IoT → Internet: PERMITIR
  Convidados → Redes locais: BLOQUEAR
  Convidados → Internet: PERMITIR
  Confiável → todos os lugares: PERMITIR

Configuração UniFi

Criar Redes no Controlador UniFi

Configurações → Redes → Criar Nova Rede

Para cada VLAN:
  Nome: IoT
  Propósito: Corporativa (fornece DHCP + roteamento)
  ID VLAN: 20
  Rede: 192.168.20.0/24
  IP do Gateway: 192.168.20.1
  DHCP: Habilitar
  Faixa DHCP: 192.168.20.100 – 192.168.20.254

Mapear SSIDs para VLANs (UniFi)

Configurações → WiFi → Criar Novo WiFi

  Nome: IoT-Network
  Senha: <senha separada>
  Rede: IoT  ← selecione sua VLAN aqui
  # Todos os dispositivos conectados a este SSID caem na VLAN 20

  Nome: Guest
  Senha: <senha do convidado>
  Rede: Guest
  Política de Convidado: Habilitar  ← isola os convidados entre si também

Regras de Firewall UniFi (Regras de Tráfego)

Configurações → Tráfego e Segurança → Regras de Tráfego

# Bloquear IoT de alcançar a VLAN Confiável
  Ação: Bloquear
  Categoria: Rede Local
  Origem: IoT (192.168.20.0/24)
  Destino: Confiável (192.168.10.0/24)

# Permitir IoT alcançar apenas a internet
  Ação: Permitir
  Origem: IoT
  Destino: Internet

# Bloquear Convidados de todas as redes locais
  Ação: Bloquear
  Origem: Guest
  Destino: Redes Locais

Configuração pfSense / OPNsense

Criar VLANs

Interfaces → Atribuições → VLANs → Adicionar

  Interface Pai: em1 (sua NIC LAN)
  Tag VLAN: 20
  Descrição: IoT

# Repita para cada VLAN, então atribua cada VLAN a uma interface:
Interfaces → Atribuições → Adicionar
  Selecione a VLAN que você criou → Clique em Adicionar
  Habilite a interface, defina o IP para o endereço do gateway (192.168.20.1/24)

DHCP para Cada VLAN

Serviços → Servidor DHCP → Selecione sua interface VLAN

  Habilitar DHCP
  Faixa: 192.168.20.100 a 192.168.20.254
  Servidores DNS: 192.168.30.2 ← IP do Pi-hole se você tiver um

Regras de Firewall (pfSense/OPNsense)

# As regras são processadas de cima para baixo, a primeira correspondência vence.

# Na interface IoT (VLAN 20):
  Regra 1: Permitir IoT → DNS do Pi-hole ← DEVE vir antes da regra de bloqueio RFC1918
    Protocolo: UDP/TCP
    Origem: Rede IoT
    Destino: 192.168.30.2 porta 53
    Ação: Permitir

  Regra 2: Bloquear IoT → RFC1918 (todos os intervalos IP privados)
    Protocolo: any
    Origem: Rede IoT
    Destino: RFC1918 (192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12)
    Ação: Bloquear

  Regra 3: Permitir IoT → internet
    Protocolo: any
    Origem: Rede IoT
    Destino: any
    Ação: Permitir

# Na interface Confiável (VLAN 10):
  Permitir tudo (dispositivos confiáveis podem alcançar tudo)
    Origem: Rede Confiável
    Destino: any
    Ação: Permitir

# Exceções adicionais para dispositivos IoT que precisam de serviços locais específicos:
  Inserir antes da Regra 2 (bloqueio RFC1918):
    Protocolo: TCP
    Origem: Rede IoT
    Destino: 192.168.30.x porta 8123 ← Home Assistant
    Ação: Permitir

Configuração MikroTik

# Passo 1: Criar uma bridge com filtragem VLAN habilitada
/interface bridge
add name=bridge vlan-filtering=yes

# Passo 2: Adicionar portas físicas à bridge
# Porta trunk para roteador/uplink (marcada para todas as VLANs)
/interface bridge port
add bridge=bridge interface=ether1 frame-types=admit-only-vlan-tagged

# Porta access para dispositivos confiáveis (VLAN 10 não marcada)
/interface bridge port
add bridge=bridge interface=ether2 pvid=10 frame-types=admit-only-untagged-and-priority-tagged

# Porta access para dispositivos IoT (VLAN 20 não marcada)
/interface bridge port
add bridge=bridge interface=ether3 pvid=20 frame-types=admit-only-untagged-and-priority-tagged

# Passo 3: Definir quais VLANs são permitidas em quais portas
/interface bridge vlan
add bridge=bridge tagged=ether1 untagged=ether2 vlan-ids=10
add bridge=bridge tagged=ether1 untagged=ether3 vlan-ids=20

# Passo 4: Criar interfaces VLAN na bridge (IPs de gateway)
/interface vlan
add interface=bridge name=vlan10 vlan-id=10
add interface=bridge name=vlan20 vlan-id=20

# Passo 5: Atribuir IPs de gateway
/ip address
add interface=vlan10 address=192.168.10.1/24
add interface=vlan20 address=192.168.20.1/24

# Passo 6: Pools DHCP e servidores
/ip pool
add name=pool-confiável 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-confiável name=dhcp-confiável
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

# Passo 7: Firewall — bloquear IoT de alcançar VLAN Confiável
/ip firewall filter
add chain=forward src-address=192.168.20.0/24 dst-address=192.168.10.0/24 \
    action=drop comment="Bloquear IoT para Confiável"

Portas Trunk vs Access no Switch

# Porta trunk: transporta múltiplas VLANs (marcadas) — conecta switch-a-switch, switch-ao-roteador, switch-ao-AP
# Porta access: transporta uma VLAN (não marcada) — conecta a dispositivos finais (PC, câmera, NAS)

# Uma porta de switch gerenciado conectada ao seu roteador deve ser uma trunk:
  VLANs Permitidas: 10, 20, 30, 40, 99

# Uma porta conectada a um PC deve ser uma porta access:
  VLAN: 10 (confiável)
  Sem marcação — o PC não sabe ou se importa com VLANs

# Uma porta conectada a um AP deve ser uma trunk:
  O AP marca o tráfego de cada SSID com o ID VLAN correto
  VLANs Permitidas: 10, 20, 40 (quaisquer SSIDs que o AP serve)

Anti-Padrões

# RUIM: Criar VLANs sem adicionar regras de firewall
# VLANs sem regras de firewall não fornecem segurança — o roteamento entre VLANs é aberto por padrão
# BOM: Adicione regras de bloqueio explícitas imediatamente após criar as VLANs

# RUIM: Colocar o Pi-hole na VLAN IoT
# Dispositivos IoT podem alcançá-lo, mas dispositivos confiáveis não (sem regras extras)
# BOM: Pi-hole na VLAN de Servidores com uma regra permitindo que todas as VLANs alcancem a porta 53

# RUIM: VLAN nativa igual à VLAN de gerenciamento
# Tráfego não marcado caindo na sua VLAN de gerenciamento permite ataques de saltos de VLAN
# BOM: Use uma VLAN não utilizada dedicada como nativa (ex.: VLAN 999), mantenha o tráfego de gerenciamento marcado

# RUIM: Mesma senha Wi-Fi para SSID IoT e SSID confiável
# Qualquer pessoa que aprender a senha pode conectar dispositivos IoT ao segmento errado

Boas Práticas

  • Comece com 4 VLANs: Confiável, IoT, Servidores, Convidados — adicione mais conforme necessário
  • Coloque o Pi-hole na VLAN de Servidores (192.168.30.x)
  • Adicione uma regra de firewall permitindo DNS (porta 53) de todas as VLANs para o IP do Pi-hole — antes de qualquer regra de bloqueio RFC1918
  • Teste o isolamento após cada mudança de regra: da VLAN IoT, tente pingar um dispositivo confiável — deve falhar
  • Use uma VLAN de gerenciamento para interfaces web do switch e AP e restrinja o acesso apenas à VLAN Confiável
  • Documente seu design de VLAN em uma tabela (ID VLAN, nome, sub-rede, propósito)

Habilidades Relacionadas

  • 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/claude-api

Anthropic Claude API patterns for Python and TypeScript. Covers Messages API, streaming, tool use, vision, extended thinking, batches, prompt caching, and Claude Agent SDK. Use when building applications with the Claude API or Anthropic SDKs.

affaan-m/everything-claude-code

End-to-end marketing campaign planning and execution. Covers audience research, positioning, campaign angle definition, landing page copy, email sequences, social posts, ad copy, short-form video scripts, and content calendars. Use as the orchestration layer for multi-channel product launches. Use when planning or executing a multi-channel product launch, or producing landing page, email, social, or ad copy.

affaan-m/everything-claude-code

Development conventions and patterns for everything-claude-code. JavaScript project with conventional commits.

affaan-m/everything-claude-code-conventions

Development conventions and patterns for everything-claude-code. JavaScript project with conventional commits.

affaan-m/frontend-design

Create distinctive, production-grade frontend interfaces with high design quality. Use when the user asks to build web components, pages, or applications and the visual direction matters as much as the code quality.

affaan-m/gget

gget CLI and Python workflow for quick genomic database queries, sequence lookup, BLAST-style searches, enrichment checks, and reproducible bioinformatics evidence logs.

affaan-m/literature-review

Systematic literature-review workflow for academic, biomedical, technical, and scientific topics, including search planning, source screening, synthesis, citation checks, and evidence logging.

affaan-m/motion-ui

Production-ready UI motion system for React/Next.js. Use when implementing animations, transitions, or motion patterns.

affaan-m/project-guidelines-example

Example project-specific skill template based on a real production application.

affaan-m/pubmed-database

Direct PubMed and NCBI E-utilities search workflows for biomedical literature, MeSH queries, PMID lookup, citation retrieval, and API-backed literature monitoring.

affaan-m/scholar-evaluation

Structured scholarly-work evaluation for papers, proposals, literature reviews, methods sections, evidence quality, citation support, and research-writing feedback.

affaan-m/uspto-database

USPTO patent and trademark data workflow for official record lookup, PatentSearch queries, TSDR checks, assignment data, and reproducible IP research logs.

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.

Habilidades Relacionadas