A maioria dos homelabs começa plana: um Raspberry Pi com Pi-hole, um NAS, um mini PC com Proxmox e uma dúzia de containers, tudo na rede 192.168.1.0/24 que o roteador da operadora entregou. A smart TV e uma câmera que não recebe mais atualizações de firmware dividem a rede com a página de administração do seu NAS, e o redirecionamento de porta do Jellyfin de dois anos atrás continua aberto.
Este post projeta uma rede de homelab que isola IoT e convidados, expõe serviços com segurança e é fácil de recuperar, e depois a desenha.
O que a rede precisa fazer
- Isolamento. TVs, câmeras e celulares de convidados chegam à internet, não ao seu NAS nem ao hypervisor.
- Exposição segura. Uma única entrada autenticada e criptografada, não uma porta por serviço.
- Recuperabilidade. Quando um disco morre, você reconstrói a partir de backups e de um diagrama, não da memória.
O hardware: um modem da operadora em modo bridge, para não haver NAT duplo; um firewall OPNsense ou pfSense CE, ambos open source, que roteia entre VLANs e executa DHCP, DNS e VPNs; um switch gerenciável com suporte a VLAN 802.1Q; um ponto de acesso que associa SSIDs a VLANs; um host Proxmox VE para VMs e containers LXC; e um NAS.
O plano de VLANs
Escolha um /16 entre as faixas privadas da RFC 1918 (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) e dê um /24 a cada VLAN. Evite 192.168.0.0/24 e 192.168.1.0/24, comuns nas redes de onde você vai se conectar à sua casa, além de 172.17.0.0/16 (a bridge padrão usual do Docker) e 100.64.0.0/10 (os endereços do Tailscale). Este exemplo usa 10.23.0.0/16 com o ID da VLAN como terceiro octeto.
| VLAN | Nome | Sub-rede | O que fica lá | Saída permitida |
|---|---|---|---|---|
| 10 | Management | 10.23.10.0/24 | Interfaces de administração de firewall, switch, AP e Proxmox | Só atualizações |
| 20 | Trusted | 10.23.20.0/24 | Seus notebooks e celulares | Internet, proxy, management a partir de dispositivos de admin |
| 30 | Servers | 10.23.30.0/24 | VMs, containers, NAS, proxy, Pi-hole | Internet para atualizações |
| 40 | IoT | 10.23.40.0/24 | TV, caixas de som, câmeras, tomadas | Só internet |
| 50 | Guest | 10.23.50.0/24 | Visitantes | Só internet |
Do firewall ao switch, do switch ao ponto de acesso e do switch ao Proxmox, os links são trunks com tags; a documentação do OPNsense avisa para não misturar VLANs sem tag no trunk do firewall. Os demais dispositivos recebem portas de acesso sem tag.
No Proxmox, deixe a bridge ciente de VLANs e coloque o endereço de gerenciamento do host na VLAN 10, como na documentação de rede do Proxmox VE. Cada VM recebe então a sua própria tag de VLAN:
auto vmbr0
iface vmbr0 inet manual
bridge-ports eno1
bridge-stp off
bridge-fd 0
bridge-vlan-aware yes
bridge-vids 2-4094
auto vmbr0.10
iface vmbr0.10 inet static
address 10.23.10.5/24
gateway 10.23.10.1
Crie um SSID por VLAN sem fio: Trusted, IoT e Guest. A Cisco Meraki recomenda no máximo três por ponto de acesso, porque cada SSID envia o próprio beacon a cada 100 ms na menor taxa de dados.
Regras de firewall entre VLANs
O OPNsense e o pfSense avaliam as regras na interface por onde o tráfego entra, de cima para baixo: vale a primeira que casar, e o que não casar com nenhuma cai no bloqueio padrão. Os dois são stateful, então permitir que Trusted acesse o proxy na 443 também deixa as respostas voltarem.
Para cada VLAN, permita o que ela precisa, bloqueie todas as faixas privadas com um alias chamado RFC1918 e só então libere a internet. Na interface IoT:
| # | Ação | Origem | Destino | Porta | Por quê |
|---|---|---|---|---|---|
| 1 | Pass | IoT net | Pi-hole, 10.23.30.53 | 53 | DNS filtrado |
| 2 | Block | IoT net | Os próprios endereços do firewall | any | Sem páginas de admin |
| 3 | Block | IoT net | Alias RFC1918 | any | Sem outras VLANs |
| 4 | Pass | IoT net | any | any | Internet |
A regra 2 cobre o endereço WAN público do firewall, que o alias não inclui; o pfSense chama esse destino de This firewall (self). As exceções pontuais vão acima dos bloqueios: Trusted para o proxy na 443, seu notebook de admin para a interface web do Proxmox na 8006, Home Assistant para IoT. O alias é só IPv4, então, se suas VLANs recebem prefixos IPv6, bloqueie esses também.
O casting é a surpresa de sempre. AirPlay e Google Cast descobrem dispositivos com DNS multicast em 224.0.0.251, que, segundo a Apple, normalmente não é roteado entre sub-redes. Execute um repetidor de mDNS entre Trusted e IoT, como o plugin os-mdns-repeater do OPNsense, e permita que Trusted acesse a TV.
Serviços atrás de um proxy reverso
Um único proxy reverso, como Caddy, Traefik ou Nginx Proxy Manager, na VLAN Servers termina o TLS e roteia pelo nome do host, então o firewall libera a 443 para um só endereço.
Use nomes sob um domínio que você possui, como jellyfin.home.example.com. Evite .local, que a RFC 6762 reserva para o DNS multicast; nomes sob .internal ou home.arpa funcionam localmente, mas nenhuma CA pública emite certificados para eles.
Obtenha certificados do Let's Encrypt com o desafio DNS-01: seu cliente ACME cria um registro TXT em _acme-challenge.<name> pela API do seu provedor de DNS, então nada precisa estar acessível pela internet. É também o único tipo de desafio que emite wildcards, e você quer um. O Let's Encrypt envia todo certificado a logs públicos de Certificate Transparency, então *.home.example.com publica um só nome em vez da sua lista de serviços. Desde o Caddy 2.10, os outros sites reaproveitam um certificado wildcard correspondente:
*.home.example.com {
tls {
dns cloudflare {env.CF_API_TOKEN}
}
abort
}
jellyfin.home.example.com {
reverse_proxy 10.23.30.21:8096
}
Isso exige um build do Caddy com o módulo caddy-dns/cloudflare e um token limitado a Zone.Zone:Read e Zone.DNS:Edit. Hoje os certificados duram 90 dias e, até fevereiro de 2028, durarão 45, então automatize a renovação.
Opções de acesso remoto
| Opção | O que a internet vê | Esforço | Trade-offs |
|---|---|---|---|
| Redirecionar a 443 para o proxy | Seu IP e a página de login de cada app | Baixo | O login de cada app é a única barreira; não funciona atrás de CGNAT |
| WireGuard no firewall | Uma porta UDP que ignora pacotes não autenticados | Médio | Exige um IP público alcançável e um par de chaves por dispositivo |
| Tailscale | Nada de entrada | Baixo | Depende do serviço de coordenação do Tailscale ou do Headscale self-hosted; plano Personal gratuito no momento da escrita (novembro de 2026) |
| Cloudflare Tunnel | Nada de entrada | Baixo a médio | A Cloudflare termina o TLS e vê seu tráfego; seu domínio precisa estar na Cloudflare |
O WireGuard é um bom padrão para você mesmo: segundo o artigo do WireGuard, ele nunca responde a pacotes não autenticados, então scanners não o enxergam. Ainda assim ele precisa de uma porta de entrada, o que o NAT de nível de operadora (CGNAT) impede; um endereço WAN em 100.64.0.0/10, a faixa compartilhada da RFC 6598, é um sinal claro disso.
O Tailscale e o Cloudflare Tunnel conectam para fora. Os relays DERP do Tailscale só encaminham pacotes que continuam criptografados com WireGuard, e um subnet router alcança a VLAN Servers sem um cliente em cada VM. Um túnel serve para serviços compartilhados com quem não vai instalar uma VPN; o Cloudflare Access pode adicionar um login. O diagrama de arquitetura zero trust explica por que a identidade vale mais que a localização na rede.
DNS e DHCP por VLAN
O firewall atende o DHCP em cada VLAN, com reservas para os servidores. O OPNsense ativa por padrão o Unbound, um resolvedor recursivo com validação. Execute Pi-hole ou AdGuard Home na VLAN Servers para Trusted e IoT: os dois filtram anúncios e rastreadores, guardam os registros locais que apontam *.home.example.com para o proxy e encaminham as demais consultas ao Unbound (como o DNS funciona acompanha uma consulta de ponta a ponta). Os convidados usam o firewall diretamente. Execute uma segunda instância de filtragem em outra máquina: se a única existente parar, essas VLANs perdem a resolução de nomes.
Backups e energia
Siga o 3-2-1: três cópias, dois tipos de armazenamento, uma externa. Suas VMs são a primeira cópia, backups noturnos no NAS ou em um Proxmox Backup Server são a segunda, e uma cópia criptografada em um bucket na nuvem é a terceira. O Proxmox Backup Server faz backups incrementais, deduplicados e criptografados que a Proxmox considera seguros até em destinos em que você não confia totalmente. RAID e snapshots não são backups. Exporte a configuração do firewall (um arquivo XML no OPNsense e no pfSense), guarde-a junto com este diagrama e teste as restaurações; o diagrama de arquitetura de disaster recovery trata de RPO e RTO.
Coloque o firewall, o switch, o host Proxmox e o NAS em um nobreak (UPS). Com o Network UPS Tools (NUT), a máquina ligada ao nobreak avisa as outras pela rede para desligar, então o switch também precisa estar no nobreak. Dimensione-o pelo consumo medido na tomada e pelo gráfico de autonomia da folha de dados: você precisa de minutos, não de horas.
O diagrama de rede de homelab
Conteúdo do diagrama
- Internet
- OPNsense or pfSense
- Managed switch
- Access point
- VLAN 20 · Trusted
- Laptops and phones
- VLAN 40 · IoT
- TV, cameras, plugs
- VLAN 50 · Guest
- VLAN 30 · Servers
- Reverse proxy (Caddy)
- Proxmox VE host
- NAS (backups)
- Links
- deny inbound
- WireGuard UDP 51820
- trunk: 10–50
- trunk: 10, 20, 40, 50
- trunk: 10, 30
- HTTPS 443 from Trusted and VPN
- HTTP to apps
- nightly backups
- SSID home
- SSID iot
- SSID guest
Como ler:
- Linha superior: internet, firewall, switch. A WAN bloqueia todo o tráfego de entrada, exceto WireGuard em UDP 51820 (tracejado).
- Os trunks levam VLANs com tag: de 10 a 50 até o switch, 10, 20, 40 e 50 até o ponto de acesso por PoE, 10 e 30 até o Proxmox.
- Os quadros são VLANs com ID, nome e CIDR. Management, a VLAN 10, é o rótulo sob o switch.
- As arestas verde-azuladas são fluxos permitidos: HTTPS 443 de Trusted e dos clientes VPN até o proxy, depois HTTP até os apps. O cinza tracejado é o backup noturno.
- O ponto de acesso associa os SSIDs home, iot e guest às VLANs 20, 40 e 50.
- O bloco Markdown contém o plano de VLANs e as configurações; a legenda explica as cores dos links.
Como desenhar com clareza diagramas de rede de homelab
- Rotule cada VLAN com ID, nome e CIDR no próprio quadro.
- Marque os trunks com as VLANs que eles levam. Uma VLAN ausente em um trunk é o bug clássico.
- Desenhe o firewall como o único caminho entre VLANs, com os fluxos permitidos rotulados por porta.
- Mostre a entrada vinda de fora, mesmo que seja uma única porta UDP.
- Deixe de fora containers, endereços MAC e números de porta do switch. Eles pertencem a um diagrama físico, como explica o guia do diagrama de topologia de rede.
- Guarde-o junto com os backups de configuração e atualize-o quando uma regra mudar.
Monte no Archboard
- Entre com Google ou GitHub e crie um diagrama.
- No pack Rede, adicione Internet, um Firewall rotulado OPNsense ou pfSense e um Comutador em uma linha, e um nó Sem fio para o ponto de acesso, abaixo e à direita.
- Adicione quatro quadros Sub-rede para as VLANs 20, 30, 40 e 50, cada um com seu nome e CIDR.
- Em Servers, adicione um Balanceador de carga como proxy reverso (o pack não tem um tipo proxy), um Servidor para o Proxmox e um Dispositivo com Tipo definido como NAS. Adicione um Dispositivo de notebook em Trusted e um Dispositivo IoT em IoT.
- Conecte tudo, defina o tipo de conexão de cada link como WAN, Ethernet, PoE ou Wi-Fi e rotule-o com suas VLANs ou o SSID. Desenhe os fluxos permitidos em verde-azulado, e o WireGuard e os backups tracejados.
- Adicione uma Legenda de rede do pack Rede, um bloco Markdown do pack Básico com o plano de VLANs e rótulos de Texto do pack Básico para a regra de cada VLAN.
Se seus apps estão em um compose.yaml, a ferramenta Docker Compose para diagrama monta um rascunho da parte de serviços, e a página de diagramas de rede mostra o pack inteiro. O exemplo usa 15 nós de diagrama e fica dentro do plano Free, que é também o limite do Free por diagrama.
Perguntas frequentes
Quais VLANs um homelab deve ter? Normalmente cinco: management, trusted, servers, IoT e guest. Só adicione mais quando dispositivos precisarem de regras diferentes; cada VLAN soma regras e, muitas vezes, um SSID.
Preciso de um switch gerenciável para usar VLANs? Sim, um switch gerenciável ou smart com suporte a 802.1Q, além de um ponto de acesso que associe SSIDs a VLANs. Switches não gerenciáveis não conseguem colocar portas em VLANs.
Devo executar o OPNsense ou o pfSense como VM no Proxmox? Isso poupa um equipamento, mas cada reinicialização do host deixa a casa inteira sem rede. Um pequeno firewall dedicado é mais fácil de recuperar. Se for virtualizar, dê à WAN uma NIC própria e mantenha uma exportação da configuração fora do host.
É seguro abrir uma porta para um serviço self-hosted? Isso coloca a página de login do app na internet, então as atualizações de segurança dele passam a ser a sua defesa. Prefira uma VPN; se precisar redirecionar, envie só a 443 ao proxy reverso e adicione autenticação na frente.
Posso usar o Let's Encrypt para serviços somente internos? Sim, com DNS-01: um registro TXT prova que você controla o domínio, então o serviço nunca precisa estar acessível pela internet. Um wildcard mantém os nomes dos serviços fora dos logs de Certificate Transparency.