HOWTO Configurar Wireguard Site-a-Site

Started by ludarkstar99, November 02, 2024, 09:57:32 PM

Previous topic - Next topic
======================================================
===              OPNSENSE - CONFIGURAR WIREGUARD SITE A SITE                      ===
======================================================
Responsável: ludarkstar99
Data: 02/11/2024
Versão: 1.0
======================================================



=== OBSERVAÇÃO
- Este procedimento guia a configuração de comunicação site-a-site (geralmente matriz <--> filial) usando VPN do tipo Wireguard.
- Este howto não cobre um ambiente de alta disponibilidade. Caso almeja este cenário, use o modo "roteado" do wireguard, fechando mais de um túnel por links diferentes e usando o bgp ou ospf para puxar as rotas dinamicamente.


=== PRÉ-REQUISITOS
a)_ Ao menos 1 dos lados (o lado servidor da VPN) deve ter um IP público, não necessariamente fixo, e com possibilidade de abertura de portas.
b)_ Na dúvida, consulte seu provedor se seu link permite a abertura de portas.
c)_ Caso esteja usando modem roteado, certificar de encaminhar a porta (ou dmz) para o IP de seu firewall na interface WAN.
d)_ Não deve haver redes iguais nas duas pontas, ou seja, a rede interna da matriz (ex.: 192.168.xx.xx/24) não pode ser igual a rede interna da filial (ex.: 192.168.xx.xx/24).


=== ETAPAS NA MATRIZ (Lado servidor da conexão, onde há o IP público)
1. Criado a regra de firewall para permitir conexão com o serviço de VPN
1.1. Acesse o menu Firewall > Rules > Wan
1.2. Crie uma regra de firewall da seguinte forma:
  Actin: Pass
  Protocol: UDP
  Source: Any
  Destination: Wan Address
  Port: (Other) 51820
  Log: *marcar
  Descrição: Libera wireguard
1.3. Salvar a regra e aplicar a configuração (botão laranja apply que aparece ao topo após salvar a regra).


2. Criar o túnel (instância) VPN na matriz
2.1. Acesse o menu VPN > Wireguard > Instances
2.2. Marcar a caixa "Enable Wireguard" e clicar em Apply
2.3. Clicar em adicionar (+) uma nova instância e preencher os seguintes dados:
  Name: Tunnel_Filial
  Public key: *clicar na engrenagem para gerar automaticamente
  Listen port: 51820
  Tunnel Address: 10.9.0.1/24
2.4. Clicar em Save e depois que fechar o dialogo modal, clicar em Apply novamente.


3. Criar o túnel (instância) VPN na filial
3.1. Acesse o menu VPN > Wireguard > Instances
3.2. Marcar a caixa "Enable Wireguard" e clicar em Apply
3.3. Clicar em adicionar (+) uma nova instância e preencher os seguintes dados:
  Name: Tunnel_Matriz
  Public key: *clicar na engrenagem para gerar automaticamente
  Tunnel Address: 10.9.0.2/32
  Clicar em Save e depois que fechar o dialogo modal, clicar em Apply novamente.


4. Registrar o peer da Matriz na Filial
4.1. Ainda na filial, acesse a guia Peers do wireguard.
4.2. Clique em adicionar um novo peer (+)
4.3. Preencha o formulário como se segue:
  Name: Matriz
  Public Key: **Volte na matriz, clique para editar a instância, copie o campo Public key. Voltei no firewall da filial e cole a Public Key copiada.
  Allowed IPs: Preencha com a rede do túnel, além das subredes da matriz na qual a filial terá acesso. ex.: 10.9.0.0/24 (túnel), 10.0.10.0/24 (lan matriz).
  Endpoint Address: *IP ou DNS Dinâmico ou nome fqdn que aponte para o IP público do firewall da matriz.
  Endpoint port: 51820 *conforme cadastramos na instância da matriz
  Instances: Selecione a instância Tunnel_Matriz
  Keep live: 25
4.4. Clicar em Save e depois em Apply


5. Liberar a entrada de tráfego da Matriz acessando a Filial
5.1. Ainda na filial, atualize a página (F5) e acesse o menu Firewall > Rules > Wireguard (Group)
5.2. Crie uma nova regra de firewall liberando todo o tráfego de entrada (inicialmente, depois você fecha como quiser)
  Action: Pass
  Potocol: Any
  Destination: Any
  Log: *Marcar
  Descrição: Libera tráfego vindo da matriz pela VPN
5.3. Clique em Save depois em apply changes para aplicar a regra


6. Registrar o peer da Filial na Matriz
6.1. Volte na Matriz, acesse a guia Peers do wireguard.
6.2. Clique em adicionar um novo peer (+)
6.3. Preencha o formulário como se segue:
  Name: Filial
  Public Key: **Volte na filial, clique para editar a instância, copie o campo Public key. Voltei no firewall da matriz e cole a Public Key copiada.
  Allowed IPs: Preencha com o endereço IP de túnel da Filial, 10.9.0.2/32 e também com as subredes da filial na qual a matriz terá acesso. ex.: 172.16.0.0/24.
  Instances: Selecione a instância Tunnel_Filial
  Keep live: 25
6.4. Clicar em Save e depois em Apply



7. Liberar a entrada de tráfego da Filial acessando a Matriz
7.1. Ainda na matriz, atualize a página (F5) e acesse o menu Firewall > Rules > Wireguard (Group)
7.2. Crie uma nova regra de firewall liberando todo o tráfego de entrada (inicialmente, depois você fecha como quiser)
  Action: Pass
  Potocol: Any
  Destination: Any
  Log: *Marcar
  Descrição: Libera tráfego vindo da filial pela VPN
7.3. Clique em Save depois em apply changes para aplicar a regra



8. Liberar a Passagem de Tráfego da LAN Matriz para LAN Filial sem forçar gateway
8.1. Ainda na matriz, acesse o menu Firewall > Rules > LAN
8.2. Crie uma nova regra de firewall liberando o tráfego da rede local LAN para a rede local (LAN) da filial
  Action: Pass
  Potocol: Any
  Source: Lan Net
  Destination: *Single Host or network. Preencher com a rede lan da filial ex.: 172.16.0.0/24
  Log: *Marcar
  Descrição: Libera Lan Local para Lan Filial
8.3. Clique em Save para salvar a regra
8.4. Suba com a regra recem criada para acima das regras com gateway.
8.5. Clique em apply changes para aplicar a regra. É importante que esta regra tenha prioridade (esteja acima) das outras, pois caso haja alguma outra regra que corresponda o tráfego e tenha gateway definido (load-balance ou failover) irá forçar a saída da conexão pela interface de rede que não o túnel VPN.


9. Liberar a Passagem de Tráfego da LAN Filial para LAN Matriz sem forçar gateway
9.1. Agora na Filial, acesse o menu Firewall > Rules > LAN
9.2. Crie uma nova regra de firewall liberando o tráfego da rede local LAN para a rede local (LAN) da Matriz
  Action: Pass
  Potocol: Any
  Source: Lan Net
  Destination: *Single Host or network. Preencher com a rede lan da matriz ex.: 10.0.10.0/24
  Log: *Marcar
  Descrição: Libera Lan Local para Lan Matriz
9.3. Clique em Save para salvar a regra
9.4. Suba com a regra recem criada para acima das regras com gateway.
9.5. Clique em apply changes para aplicar a regra. É importante que esta regra tenha prioridade (esteja acima) das outras, pois caso haja alguma outra regra que corresponda o tráfego e tenha gateway definido (load-balance ou failover) irá forçar a saída da conexão pela interface de rede que não o túnel VPN.



That's all folks.
Remember: Open source is Free as in Speech, not as in beer.
- nothing broken, nothing missing;

Olá ludarkstar99 , tudo bem?

Se me permite adicionar uma dúvida aqui:

Na parte dos Peer´s, em que  inserimos as redes locais as quais permitiremos passar no tunel. É possível eu inserir apenas um IP da rede Local do Site Filial a ser acessado na Matriz? Ou seja, não gostaria que de dentro da rede local da Matriz, acessassem toda minha rede local da Filial, apenas 1 ou 2 IP´s.

Obrigado!
 

Olá Pipe,
É possível sim.
No firewall matriz ao cadastrar o Peer referenciando a filial, no campo "Allowed IPs" você preenche com o endereço IP de túnel da Filial, ex.: 10.9.0.2/32 e também com os hosts da filial na qual a matriz terá acesso. ex.: 172.16.0.10/32 172.16.0.15/32 (hosts na lan filial).
- nothing broken, nothing missing;

Quote from: ludarkstar99 on February 22, 2025, 01:16:14 AMOlá Pipe,
É possível sim.
No firewall matriz ao cadastrar o Peer referenciando a filial, no campo "Allowed IPs" você preenche com o endereço IP de túnel da Filial, ex.: 10.9.0.2/32 e também com os hosts da filial na qual a matriz terá acesso. ex.: 172.16.0.10/32 172.16.0.15/32 (hosts na lan filial).
Obrigado !

Vou tentar, pois havia feito isso e não funcionou. VOu revisar.