WireGuard no MikroTik RouterOS 7: acesso remoto para notebooks e celulares, túnel com a VM WireGuard no Proxmox, firewall, rotas e monitoramento.
Para que serve
O WireGuard no MikroTik (nativo desde o RouterOS 7) resolve dois cenários comuns: (1) a equipe acessa a rede do escritório de casa, pelo notebook ou celular, usando o MikroTik como servidor de VPN; (2) o MikroTik do escritório mantém um túnel permanente com a VM WireGuard que roda no Proxmox do seu servidor dedicado, para que todos acessem ERP, banco e RDP das VMs. O passo a passo básico do túnel escritório ↔ servidor, com pfSense e OPNsense, está no artigo «Como configurar VPN site-to-site entre o escritório e o servidor dedicado (WireGuard com MikroTik, pfSense e OPNsense)» da categoria VPN. Aqui vamos além: acesso remoto pelo próprio MikroTik, o que muda quando o lado do servidor é uma VM, regras de firewall, monitoramento e túnel entre dois MikroTik (escritório e CHR).
Pré-requisitos
- RouterOS 7 atualizado (versões mais novas trazem melhorias no WireGuard, como a geração de configuração para clientes).
- Firewall base aplicado (artigo «Firewall do MikroTik: regras base de filter e raw comentadas (RouterOS 7)») e listas
WAN/LAN. - Faixas que não se sobrepõem. Exemplos deste artigo:
- LAN do escritório:
192.168.10.0/24. - Clientes remotos no MikroTik:
10.20.0.0/24(roteador em10.20.0.1). - Túnel com o servidor:
10.8.0.0/24; VM WireGuard em10.8.0.1, MikroTik em10.8.0.100. - VMs no Proxmox:
10.10.10.0/24; VM WireGuard com10.10.10.5nessa rede e IP público203.0.113.20.
- LAN do escritório:
- Safe Mode ligado durante alterações de firewall e acesso local ao MikroTik.
Parte 1: WireGuard no MikroTik para acesso remoto (road warrior)
-
Crie a interface e o endereço:
/interface wireguard add name=wg-remoto listen-port=13231 mtu=1420 /ip address add address=10.20.0.1/24 interface=wg-remoto /interface list member add list=LAN interface=wg-remotoColocar o túnel na lista
LANfaz as regras do firewall base tratá-lo como rede interna. Se quiser que usuários remotos tenham menos acesso que a LAN, crie uma lista própria (por exemploVPN) e escreva regras específicas. -
Libere a porta na WAN (antes do drop final da input):
/ip firewall filter add chain=input action=accept protocol=udp dst-port=13231 in-interface-list=WAN \ place-before=[find comment="IN: descarta o resto"] comment="IN: WireGuard" -
Cadastre cada dispositivo como peer. Gere o par de chaves no app WireGuard do notebook (botão "Add empty tunnel") e copie a chave pública:
/interface wireguard peers add interface=wg-remoto name=notebook-ana public-key="CHAVE_PUBLICA_DO_NOTEBOOK" \ allowed-address=10.20.0.2/32 comment="Ana - notebook"No peer de um cliente remoto,
allowed-addressé só o IP dele (/32). Um peer por dispositivo, nunca compartilhado. -
Monte a configuração do cliente. Pegue a chave pública do roteador com
/interface wireguard printe complete o túnel no app:[Interface] PrivateKey = (gerada pelo app) Address = 10.20.0.2/32 DNS = 192.168.10.1 [Peer] PublicKey = CHAVE_PUBLICA_DO_MIKROTIK Endpoint = IP_OU_NOME_DO_ESCRITORIO:13231 AllowedIPs = 10.20.0.0/24, 192.168.10.0/24, 10.10.10.0/24 PersistentKeepalive = 25Esse é um split tunnel: só as redes da empresa passam pela VPN. Incluir
10.10.10.0/24permite que o usuário remoto alcance também as VMs pelo túnel do escritório (Parte 2). Se o escritório não tem IP fixo, use o DDNS do próprio MikroTik (/ip cloud set ddns-enabled=yese use o nome exibido em/ip cloud print). Escritórios atrás de CGNAT não conseguem receber conexões; nesse caso, o servidor de acesso remoto deve ser a VM WireGuard do datacenter.Nas versões mais recentes do RouterOS 7, o peer aceita
client-address,client-dnseclient-endpoint, e o comando/interface wireguard peers show-client-configexibe o arquivo pronto e um QR code para o celular. É prático, mas o método manual acima funciona em qualquer versão.
Parte 2: túnel do MikroTik com a VM WireGuard no Proxmox
No padrão adotado pela E-Consulters, o WireGuard do lado do servidor roda numa VM dedicada, e não no host Proxmox. Configure o MikroTik como no artigo de VPN site-to-site (interface wg-datacenter, peer com endpoint-address=203.0.113.20, allowed-address=10.8.0.0/24,10.10.10.0/24 e persistent-keepalive=25s). Os pontos abaixo são os que mais causam problema e não aparecem no passo a passo básico.
2.1 A volta do tráfego dentro do Proxmox
Como a VM WireGuard não é o gateway das outras VMs, um servidor em 10.10.10.30 recebe o pacote do escritório e tenta responder pelo gateway padrão dele, que não conhece 192.168.10.0/24. Escolha uma das soluções:
- Rota estática no gateway das VMs (OPNsense, CHR ou o próprio host, conforme o seu desenho):
192.168.10.0/24e10.8.0.0/24via10.10.10.5. Mantém o IP real do usuário nos logs. - Masquerade na VM WireGuard para o tráfego que sai para
10.10.10.0/24: as VMs veem tudo vindo de10.10.10.5. Funciona sem mexer em rotas, mas perde-se o IP de origem.
Na VM WireGuard (Debian), lembre-se do net.ipv4.ip_forward=1 e, no peer do escritório, AllowedIPs = 10.8.0.100/32, 192.168.10.0/24. Se o firewall do Proxmox estiver ativo na placa da VM, libere 51820/udp nela.
2.2 Firewall do MikroTik para o túnel
Em vez de regras por endereço, crie uma lista de interfaces para os túneis e use-a no forward:
/interface list add name=TUNEIS
/interface list member add list=TUNEIS interface=wg-datacenter
/ip firewall filter
add chain=forward action=accept in-interface-list=LAN out-interface-list=TUNEIS comment="LAN -> datacenter" \
place-before=[find comment="FWD: descarta o resto"]
add chain=forward action=accept in-interface-list=TUNEIS out-interface-list=LAN dst-address=192.168.10.0/24 \
protocol=icmp comment="datacenter -> LAN apenas ping" place-before=[find comment="FWD: descarta o resto"]
/ip firewall nat add chain=srcnat action=accept out-interface-list=TUNEIS place-before=0 comment="sem NAT no tunel"
Assim o escritório inicia conexões para as VMs, mas as VMs só conseguem pingar o escritório. Abra mais portas apenas se houver necessidade real (por exemplo, a VM de backup buscando arquivos de um NAS do escritório).
2.3 Monitorar o túnel com Netwatch
O WireGuard não tem estado de "conectado". Use o Netwatch para registrar no log (ou disparar um e-mail) quando a VM deixar de responder pelo túnel:
/tool netwatch add host=10.8.0.1 interval=30s type=icmp \
down-script=":log warning \"WG datacenter fora\"" up-script=":log info \"WG datacenter ok\""
2.4 MTU em links PPPoE
Fibra via PPPoE (MTU 1492) é a regra no Brasil. Use mtu=1412 na interface WireGuard ou mantenha o MSS clamp no mangle. Sintoma típico de MTU errado: o ping passa, mas o RDP congela e páginas carregam pela metade.
Parte 3: MikroTik do escritório com um CHR no datacenter
Se você usa um CHR como roteador das VMs (artigo «Como instalar o MikroTik CHR no Proxmox VE (Cloud Hosted Router como roteador das VMs)»), o túnel pode ser feito diretamente entre os dois RouterOS:
# No CHR (datacenter)
/interface wireguard add name=wg-escritorio listen-port=13231
/ip address add address=10.8.1.1/30 interface=wg-escritorio
/interface wireguard peers add interface=wg-escritorio public-key="CHAVE_DO_ESCRITORIO" \
allowed-address=10.8.1.2/32,192.168.10.0/24
/ip route add dst-address=192.168.10.0/24 gateway=wg-escritorio
# No MikroTik do escritório
/interface wireguard add name=wg-chr listen-port=13232
/ip address add address=10.8.1.2/30 interface=wg-chr
/interface wireguard peers add interface=wg-chr public-key="CHAVE_DO_CHR" endpoint-address=203.0.113.19 \
endpoint-port=13231 allowed-address=10.8.1.1/32,10.10.10.0/24 persistent-keepalive=25s
/ip route add dst-address=10.10.10.0/24 gateway=wg-chr
Como o CHR é o gateway das VMs, não há problema de rota de volta. Repita as regras de firewall da seção 2.2 nos dois lados.
Como saber se funcionou
/interface wireguard peers print detailmostralast-handshakede poucos segundos e contadoresrx/txsubindo.- Do notebook remoto:
ping 10.20.0.1, depoisping 192.168.10.1e o IP de uma VM. - Do escritório:
Test-NetConnection 10.10.10.30 -Port 3389retornaTcpTestSucceeded : True. /log print where message~"WG"mostra os eventos do Netwatch.
Problemas comuns
- Sem handshake: porta UDP fechada na input, chave pública trocada ou o escritório está atrás de CGNAT (não recebe conexões).
- Handshake ok, VM não responde: problema de rota de volta (seção 2.1) ou firewall da VM de destino.
- Usuário remoto acessa o escritório, mas não as VMs: falta
10.20.0.0/24noAllowedIPsdo peer do escritório na VM WireGuard e na rota de volta do Proxmox. - Tudo parou depois de atualizar o RouterOS: confira se o peer ainda tem
endpoint-addresse se nenhuma regra nova foi parar antes do aceite da porta.
Perguntas frequentes
Qual a porta padrão do WireGuard no MikroTik?
13231/udp. Você pode usar qualquer porta UDP livre; o importante é que ela esteja liberada na input.
Preciso de IP fixo no escritório?
Para o túnel com o datacenter, não: o escritório inicia a conexão. Para receber usuários remotos no MikroTik, é preciso um IP público (fixo ou com DDNS) e não pode haver CGNAT.
WireGuard no MikroTik usa certificado?
Não. Cada lado tem um par de chaves; basta trocar as chaves públicas.
Quantos clientes o MikroTik aguenta?
Depende da CPU do modelo. Para dezenas de usuários simultâneos com tráfego alto, prefira um RouterBOARD com CPU ARM64 ou um CHR.
Leitura complementar
Precisa de ajuda?
Se o túnel não fechar, abra um ticket com a saída de /interface wireguard peers print detail (sem chaves privadas), as faixas de rede usadas e o resultado de wg show na VM WireGuard.
