Configurando VyOS VPN Site-to-Site com IKEv2

10 min de leitura Redes e Segurança
Configurando VyOS VPN Site-to-Site com IKEv2

Introdução à Configuração de VPN Site-to-Site com VyOS e IKEv2

A infraestrutura de redes corporativas modernas exige conectividade segura, confiável e de alta performance entre filiais ou data centers. O VyOS, distribuição Linux baseada em Debian focada em roteamento e firewall, oferece uma solução robusta para criar túneis criptografados. Neste tutorial, abordaremos a configuração completa de uma VPN Site-to-Site utilizando o protocolo IKEv2 (Internet Key Exchange version 2), que é o padrão atual recomendado pela indústria por sua segurança aprimorada e capacidade de traversal NAT.

Ao contrário da versão anterior IKEv1, o IKEv2 suporta melhor a mobilidade (MOBIKE) e oferece uma negociação mais rápida. Para este cenário, configuraremos dois roteadores VyOS simulando duas redes distintas: o "Roteador A" (Sede) e o "Roteador B" (Filial). O objetivo é permitir que as sub-redes locais se comuniquem através da internet pública como se estivessem na mesma VLAN lógica.

Pré-requisitos e Topologia de Rede

Antes de iniciar a configuração, certifique-se de ter acesso SSH administrativo a ambos os nós VyOS. A topologia utilizada neste exemplo é a seguinte:

  • Roteador A (Sede):
    • Interface WAN (externa): eth0
    • Rede Local (LAN): 192.168.10.0/24
  • Roteador B (Filial):
    • Interface WAN (externa): eth0
    • Rede Local (LAN): 192.168.20.0/24

Substitua os endereços IP externos e internos pelos valores reais da sua infraestrutura. A comunicação fluirá do 192.168.10.0/24 para o 192.168.20.0/24 e vice-versa, protegida por criptografia AES-GCM.

Configuração do Roteador A (Sede)

A configuração no VyOS é realizada via CLI ou através da API JSON, mas o método clássico via terminal é o mais didático para entendimento conceitual. Entraremos em modo de configuração e definiremos os parâmetros de segurança.

1. Definindo a Política de Segurança e Identidade

O primeiro passo é definir a identidade local e remota. No IKEv2, utilizamos endereços IP ou DNS para identificar os nós. Para este exemplo, usaremos IPs estáticos externos.

set vpn ipsec site-to-site peer ROTEADOR_B identity '1.2.3.4'
set vpn ipsec site-to-site peer ROTEADOR_B authentication id 'Roteador-A'
set vpn ipsec site-to-site peer ROTEADOR_B authentication pre-shared-secret 'SEU_SEGUNDO_SECRETO_AQUI'

Aqui, 1.2.3.4 representa o IP público do Roteador B. O identificador de autenticação Roteador-A é uma string arbitrária que deve coincidir com a identidade do outro lado no momento da troca de chaves.

2. Configurando os Grupos IKE e Propostas de Criptografia

O grupo IKEv1 controla o algoritmo de troca de chaves (Diffie-Hellman), enquanto o grupo IKEv2 define a proposta de segurança para o túnel IPsec. Utilizaremos algoritmos modernos.

set vpn ipsec ike-group IKE_GROUP_V2 description 'IKE Group V2 Policy'
set vpn ipsec ike-group IKE_GROUP_V2 ikev2-retransmit-timeout 2000
set vpn ipsec ike-group IKE_GROUP_V2 proposal 1 dh-group 14
set vpn ipsec ike-group IKE_GROUP_V2 proposal 1 encryption aes256
set vpn ipsec ike-group IKE_GROUP_V2 proposal 1 hash sha256

set vpn ipsec ipsec-group IPSec_GROUP_V2 description 'IPSec Group V2 Policy'
set vpn ipsec ipsec-group IPSec_GROUP_V2 esp-group ESP_PROPOSAL_V2 pfs
set vpn ipsec ipsec-group IPSec_GROUP_V2 esp-group ESP_PROPOSAL_V2 cipher aes256gcm
set vpn ipsec ipsec-group IPSec_GROUP_V2 esp-group ESP_PROPOSAL_V2 mode tunnel

Note o uso de aes256gcm. O modo GCM (Galois/Counter Mode) é altamente eficiente e fornece autenticação integrada, eliminando a necessidade de um algoritmo de integridade separado como SHA-256 para encapsulamento, embora o IKE ainda use SHA-256 para a negociação inicial.

3. Configurando o Túnel Site-to-Site

Agora, vinculamos os peers aos grupos definidos e especificamos as redes locais (local-net) e remotas (remote-net).

set vpn ipsec site-to-site peer ROTEADOR_B ike-group IKE_GROUP_V2
set vpn ipsec site-to-site peer ROTEADOR_B connection-type respond
set vpn ipsec site-to-site peer ROTEADOR_B ipv4 route-internal enable
set vpn ipsec site-to-site peer ROTEADOR_B hold-time 30

set vpn ipsec site-to-site tunnel TUNNEL_A_B authentication mode pre-share
set vpn ipsec site-to-site tunnel TUNNEL_A_B authentication pre-shared-key 'SEU_SEGUNDO_SECRETO_AQUI'
set vpn ipsec site-to-site tunnel TUNNEL_A_B encryption ike-group IKE_GROUP_V2
set vpn ipsec site-to-site tunnel TUNNEL_A_B encryption esp-group ESP_PROPOSAL_V2
set vpn ipsec site-to-site tunnel TUNNEL_A_B local-address '1.2.3.5'
set vpn ipsec site-to-site tunnel TUNNEL_A_B remote-address '1.2.3.4'
set vpn ipsec site-to-site tunnel TUNNEL_A_B ike-group IKE_GROUP_V2

set vpn ipsec site-to-site tunnel TUNNEL_A_B ipv4 network 192.168.20.0/24
set vpn ipsec site-to-site tunnel TUNNEL_A_B local-address '192.168.10.1'

commit
save

A diretiva ipv4 route-internal enable é crucial: ela instrui o VyOS a adicionar automaticamente rotas estáticas para a rede remota via interface de tunelamento, facilitando o tráfego sem necessidade de configuração manual de roteamento adicional.

Configuração do Roteador B (Filial)

A configuração no segundo nó deve ser simétrica, mas invertendo os papéis de local e remoto. Certifique-se de usar o mesmo segredo compartilhado (pre-shared key) que foi definido no Roteador A.

1. Definindo a Identidade Remota

set vpn ipsec site-to-site peer ROTEADOR_A identity '1.2.3.5'
set vpn ipsec site-to-site peer ROTEADOR_A authentication id 'Roteador-B'
set vpn ipsec site-to-site peer ROTEADOR_A authentication pre-shared-secret 'SEU_SEGUNDO_SECRETO_AQUI'

Lembre-se de trocar 1.2.3.5 pelo IP público real do Roteador A.

2. Aplicando os Mesmos Grupos de Segurança

Para garantir interoperabilidade, os grupos de criptografia devem ser idênticos aos do lado A. Se o VyOS já tiver a configuração padrão ou se você copiou a estrutura anterior, verifique se IKE_GROUP_V2 e ESPROPOSAL_V2 existem.

set vpn ipsec ike-group IKE_GROUP_V2 description 'IKE Group V2 Policy'
set vpn ipsec ike-group IKE_GROUP_V2 ikev2-retransmit-timeout 2000
set vpn ipsec ike-group IKE_GROUP_V2 proposal 1 dh-group 14
set vpn ipsec ike-group IKE_GROUP_V2 proposal 1 encryption aes256
set vpn ipsec ike-group IKE_GROUP_V2 proposal 1 hash sha256

set vpn ipsec ipsec-group IPSec_GROUP_V2 description 'IPSec Group V2 Policy'
set vpn ipsec ipsec-group IPSec_GROUP_V2 esp-group ESP_PROPOSAL_V2 pfs
set vpn ipsec ipsec-group IPSec_GROUP_V2 esp-group ESP_PROPOSAL_V2 cipher aes256gcm
set vpn ipsec ipsec-group IPSec_GROUP_V2 esp-group ESP_PROPOSAL_V2 mode tunnel

3. Configurando o Túnel e As Redes

set vpn ipsec site-to-site peer ROTEADOR_A ike-group IKE_GROUP_V2
set vpn ipsec site-to-site peer ROTEADOR_A connection-type initiate
set vpn ipsec site-to-site peer ROTEADOR_A hold-time 30

set vpn ipsec site-to-site tunnel TUNNEL_B_A authentication mode pre-share
set vpn ipsec site-to-site tunnel TUNNEL_B_A authentication pre-shared-key 'SEU_SEGUNDO_SECRETO_AQUI'
set vpn ipsec site-to-site tunnel TUNNEL_B_A encryption ike-group IKE_GROUP_V2
set vpn ipsec site-to-site tunnel TUNNEL_B_A encryption esp-group ESP_PROPOSAL_V2
set vpn ipsec site-to-site tunnel TUNNEL_B_A local-address '1.2.3.4'
set vpn ipsec site-to-site tunnel TUNNEL_B_A remote-address '1.2.3.5'
set vpn ipsec site-to-site tunnel TUNNEL_B_A ike-group IKE_GROUP_V2

set vpn ipsec site-to-site tunnel TUNNEL_B_A ipv4 network 192.168.10.0/24
set vpn ipsec site-to-site tunnel TUNNEL_B_A local-address '192.168.20.1'

commit
save

Neste passo, definimos connection-type initiate. Embora o VyOS tente iniciar a conexão se possível, em configurações site-to-site simétricas, ambos os lados devem estar prontos para negociar. A rede local é agora 192.168.20.0/24 e a rede remota esperada é 192.168.10.0/24.

Verificação do Status da Conexão

Após aplicar as configurações, é fundamental verificar se o túnel subiu corretamente. No VyOS, utilize os comandos de monitoramento abaixo.

1. Verificando a Troca de Chaves IKEv2

show vpn ipsec ike-peer ROTEADOR_A status

Você deve ver o estado como established. Se houver falha, verifique logs em /var/log/messages ou use debugging enable para troubleshootar erros de handshake.

2. Verificando o Estado do Túnel IPsec

show vpn ipsec sa

O status deve indicar que os pacotes estão sendo criptografados e descriptografados. Procure por estados como ESTABLISHED. Se o túnel estiver em RUNNING mas sem tráfego, verifique as ACLs (Access Control Lists).

3. Teste de Conectividade

Execute um ping da rede local A para a rede local B:

ping 192.168.20.100

Se o ping responder, o tunelamento seguro está ativo e funcional.

Habilitação do Firewall (NAT e Permissões)

Um erro comum em configurações de VyOS é a falha de conexão devido ao firewall bloqueando o tráfego IPsec ou aplicando NAT incorretamente no tráfego criptografado. O VyOS possui uma configuração automática de "VPN Policy Firewall" que deve ser ativada.

set system vpn config ipsec esp-proxy-mode disable
set system vpn config ipsec nat-traversal enable

Além disso, garanta que o firewall permita os protocolos UDP 500 (IKE), UDP 4500 (NAT-Traversal) e o protocolo IP 50 (ESP).

set firewall global-name INGRESS-FILTER rule 10 description 'Allow IKE'
set firewall global-name INGRESS-FILTER rule 10 protocol udp
set firewall global-name INGRESS-FILTER rule 10 destination port 500
set firewall global-name INGRESS-FILTER rule 10 action accept

set firewall global-name INGRESS-FILTER rule 20 description 'Allow NAT-T'
set firewall global-name INGRESS-FILTER rule 20 protocol udp
set firewall global-name INGRESS-FILTER rule 20 destination port 4500
set firewall global-name INGRESS-FILTER rule 20 action accept

set firewall global-name INGRESS-FILTER rule 30 description 'Allow ESP'
set firewall global-name INGRESS-FILTER rule 30 protocol esp
set firewall global-name INGRESS-FILTER rule 30 action accept

Lembre-se de aplicar essas regras à interface WAN (eth0) no direction in.

Otimizações e Boas Práticas

Para ambientes de produção, considere as seguintes otimizações:

  • DHCP Dinâmico: Se um dos lados possui IP público dinâmico, utilize o comando set vpn ipsec site-to-site peer <PEER> dynamic-resolution enable. Isso permite que o VyOS atualize a rota quando o IP mudar.
  • Keepalives: Ative keepalives para detectar falhas de link mais rapidamente. No VyOS, isso é feito configurando set vpn ipsec site-to-site peer <PEER> ikev2-retransmit-timeout.
  • MTU: Túneis IPsec adicionam overhead (geralmente 60 bytes). Ajuste o MTU da interface de túnel ou use set interfaces ipsec tunX mtu 1436 para evitar fragmentação e perda de pacotes em links com largura de banda limitada.
  • Monitoramento: Integre o VyOS com sistemas como Zabbix, Prometheus ou Grafana monitorando o estado do túnel via SNMP ou API RESTful do VyOS.

Conclusão

A configuração de uma VPN Site-to-Site com IKEv2 no VyOS oferece um equilíbrio excelente entre segurança moderna e facilidade de gerenciamento. Ao seguir os passos definidos — desde a definição dos pares até a validação do firewall — você estabelece um canal criptografado robusto para sua rede corporativa.

Lembre-se sempre de testar a configuração em um ambiente isolado antes de aplicar em produção e de manter backups das configurações (copy /config running-config /config/backup/config-$(date +%Y%m%d).txt). A segurança da sua infraestrutura depende da precisão na implementação desses protocolos fundamentais.

Compartilhar: Link copiado!
Esse tutorial foi útil?

Comentários (0)

Seja o primeiro a comentar.

Deixe seu comentário

Seu comentário será analisado antes de ser publicado.

0/2000