Configuração de Túnel IPsec Site-to-Site entre Mikrotik e VPS

11 min de leitura Redes e Segurança
Configuração de Túnel IPsec Site-to-Site entre Mikrotik e VPS

Introdução à Interligação Segura de Redes com Mikrotik e VPS

Em um cenário corporativo moderno, a necessidade de interligar redes remotas de forma segura e eficiente é crítica. A configuração de uma VPN Site to Site Mikrotik VPS permite que você conecte sua infraestrutura local (seja um escritório físico ou uma filial) a servidores remotos, nuvens privadas ou data centers utilizando um túnel criptografado. Essa arquitetura elimina a dependência de linhas físicas dedicadas caras e oferece segurança de rede VPS robusta contra interceptações na internet pública.

O objetivo deste tutorial é guiar sysadmins e profissionais de TI na implementação de uma conexão estável entre um roteador Mikrotik (local) e um servidor Linux em ambiente VPS. Utilizaremos o protocolo IPsec, amplamente suportado e padronizado, garantindo que todo o tráfego entre as sub-redes passe por um túnel privado VPS, mantendo a integridade e a confidencialidade dos dados transmitidos.

Pré-requisitos e Topologia de Rede

Antes de iniciar a configuração, é fundamental mapear os endereços IP para evitar conflitos de roteamento. A topologia básica envolve dois segmentos de rede distintos que precisam se comunicar através da internet.

  • Rede Local (Mikrotik): Sub-rede 192.168.10.0/24. O gateway padrão do Mikrotik será 192.168.10.1.
  • Rede Remota (VPS Linux): Sub-rede 192.168.20.0/24. O servidor terá um IP interno, por exemplo, 192.168.20.5.
  • IP Público do VPS: Um endereço IP público estático (ex: 203.0.113.50) acessível da internet.

Garanta que o firewall do seu provedor de VPS permita a comunicação nas portas e protocolos necessários para o IPsec (UDP 500, UDP 4500 para NAT-Traversal, e protocolo ESP - 50). No Mikrotik, certifique-se de que a interface WAN tenha acesso à internet.

Passo 1: Configuração do Servidor VPN Linux (Side Server)

O primeiro passo é preparar o servidor VPS para aceitar conexões IPsec entrantes. Utilizaremos o strongSwan, uma implementação robusta e open-source de IPsec para Linux, amplamente utilizada em ambientes de produção por sua estabilidade e compatibilidade.

Instale os pacotes necessários no seu servidor VPS (exemplo baseado em Debian/Ubuntu):

sudo apt update
sudo apt install strongswan libstrongswan-standard-plugin libstrongswan-extra-plugins -y

Após a instalação, devemos configurar o arquivo principal do daemon. O caminho padrão é /etc/ipsec.conf. Vamos definir as redes locais e remotas, o método de autenticação (usaremos chaves pré-compartilhadas para simplicidade inicial) e os algoritmos de criptografia.

Edite o arquivo de configuração:

sudo nano /etc/ipsec.conf

Insira a seguinte estrutura, ajustando os IPs conforme sua topologia:

config setup
    charondebug="ike 2, knl 2, cfg 2, net 2, esp 2, dmn 2, ikev2 0"
    uniqueids=yes

conn remote-network
    left=192.168.20.5          # IP interno do seu VPS Linux
    leftsubnet=192.168.20.0/24 # Rede local do VPS
    right=%any                 # Aceita conexões de qualquer IP externo (Mikrotik)
    rightsubnet=192.168.10.0/24 # Rede local do Mikrotik
    rightid=@mikrotik-router   # ID opcional para identificação
    
    ike=aes256-sha256-modp2048!
    esp=aes256-sha256-modp2048!
    
    authby=secret              # Uso de chave pré-compartilhada
    auto=add                   # Adiciona a conexão ao daemon, mas não inicia automaticamente (útil para debug)
    
    keyexchange=ikev2          # Força o uso do IKEv2 por segurança e performance

Agora, defina a chave secreta no arquivo /etc/ipsec.secrets. Este arquivo deve ter permissões restritas para garantir a segurança de rede VPS.

sudo nano /etc/ipsec.secrets

Adicione a linha abaixo, substituindo SENHA_SECRETA_FORTE por uma string complexa. Esta será a mesma chave configurada no Mikrotik.

: PSK "SENHA_SECRETA_FORTE"

Aplique as permissões corretas:

sudo chmod 600 /etc/ipsec.secrets

Habilite o encaminhamento de pacotes (IP Forwarding) no kernel do Linux para que os pacotes encapsulados possam ser roteados entre a interface tunelada e a rede local:

sudo sysctl -w net.ipv4.ip_forward=1

Para tornar essa configuração permanente, edite o arquivo /etc/sysctl.conf e adicione ou altere a linha:

net.ipv4.ip_forward = 1

Reinicie o serviço strongSwan para aplicar as alterações:

sudo systemctl restart strongswan
sudo systemctl enable strongswan

Passo 2: Configuração do Cliente VPN Mikrotik (Side Client)

Agora que o servidor está pronto, direcionamos os olhos para o roteador Mikrotik. A configuração no RouterOS pode ser feita via Terminal (CLI) ou Interface Gráfica (WinBox). Para este tutorial, utilizaremos comandos de terminal para garantir precisão e replicabilidade.

O processo envolve criar uma política de IPsec que defina quem fala com quem, gerar as chaves criptográficas e configurar o peer (par) de comunicação.

2.1 Definindo as Propostas de Segurança

Primeiro, definimos a proposta de criptografia. É crucial que os parâmetros coincidam exatamente com os do lado do Linux para evitar falhas de negociação.

/ip ipsec mode-config
add name=vpn-mikrotik-rw response-only

/ip ipsec policy
add dst-address=192.168.20.0/24 src-address=192.168.10.0/24 template=yes priority=1 security=encrypt
add dst-address=192.168.10.0/24 src-address=192.168.20.0/24 template=yes priority=1 security=encrypt

Nota: A primeira regra protege o tráfego saindo da rede local (Mikrotik) para a rede remota (VPS). A segunda regra protege o retorno. O uso de template=yes é essencial em Mikrotik, pois permite que a política capture tráfego dinâmico sem precisar listar cada IP individualmente.

2.2 Configurando as Chaves e Propostas

Criamos o profile (perfil) de segurança e definimos a chave compartilhada.

/ip ipsec profile
add name=ike2-profile use-nat-t=yes dpd-maximum-failure=5

/ip ipsec peer
add address=203.0.113.50 # IP Público do VPS
    exchange-mode=ike2
    profile=ike2-profile
    auth-as-initiator=yes
    identity=mikrotik-client
    generate-policy=port-strict
    psk="SENHA_SECRETA_FORTE" # A MESMA CHAVE DO LINUX
    
/ip ipsec proposal
add name=ipsec-proposal pfs-group=none enc-algorithm=aes-256 auth-algorithm=sha256

Aqui, definimos o psk (Pre-Shared Key) idêntico ao do servidor Linux. Também habilitamos o use-nat-t=yes, que é vital caso algum dispositivo esteja atrás de um NAT, embora em configurações Site-to-Site puras seja menos comum, é uma boa prática de resiliência.

2.3 Ativando a Conexão

No Mikrotik, ao contrário do Linux onde usamos auto=add, geralmente queremos que a conexão seja estabelecida assim que possível, mas o strongSwan com auto=add requer que o tráfego "desperte" a conexão. Para forçar a criação da chave de troca (SA) imediatamente para testes:

/ip ipsec active-peers
# Verifique se o peer foi adicionado e está aguardando negociação

Para iniciar a negociação manualmente no Mikrotik, você pode clicar com o botão direito na linha do Peer no WinBox e selecionar "Initiate", ou via CLI gerar tráfego entre as redes. Uma vez que há pacotes indo de 192.168.10.x para 192.168.20.x, o Mikrotik acionará o IPsec.

Passo 3: Roteamento e Regras de Firewall

Muitas vezes, a VPN é estabelecida, mas os pingos falham. Isso geralmente ocorre por dois motivos: roteamento incorreto ou bloqueio no firewall do Linux.

3.1 Roteamento no Mikrotik

Se você não possui rotas estáticas pré-configuradas para a rede 192.168.20.0/24, o Mikrotik não saberá por onde enviar os pacotes destinados à rede remota. Adicione uma rota estática:

/ip route
add dst-address=192.168.20.0/24 gateway=203.0.113.50 # Ou use o ID do Peer se configurado dinamicamente

No entanto, com template=yes nas políticas de IPsec, o Mikrotik muitas vezes encapsula os pacotes automaticamente antes de consultar a tabela de rotas padrão, desde que a política esteja ativa. O ideal é garantir que o gateway da rota aponte para a interface WAN ou para o peer IPsec.

3.2 Regras de Firewall no Linux (UFW/Iptables)

O strongSwan cria interfaces virtuais (como ipsec0) e gerencia suas próprias regras, mas o firewall do sistema operacional pode bloquear o tráfego entre a interface tunelada e a interface local.

Se estiver usando UFW:

sudo ufw allow in on ipsec0
sudo ufw allow out on ipsec0

Verifique se o FORWARD chain está permitindo o tráfego. No Linux, por padrão, o forwarding pode estar bloqueado. Certifique-se de que suas regras de iptables ou nftables permitam o FORWARD entre eth0 (WAN) e a interface tunelada.

Passo 4: Testes de Conexão e Troubleshooting

Com ambas as extremidades configuradas, é hora de validar a integridade do túnel privado VPS.

4.1 Verificando o Status no Linux

No servidor VPS, utilize o comando ipsec status ou ipsec auto --status. Você deve ver a conexão remote-network como "RUNNING" e os SAs (Security Associations) estabelecidos.

sudo ipsec status

O log do sistema também é valioso. Verifique o arquivo /var/log/syslog ou use journalctl -u strongswan para identificar erros de handshake ou falhas de chave.

4.2 Teste de Ping e Roteamento

No Mikrotik, tente fazer um ping de uma máquina na rede local (ex: 192.168.10.50) para um IP na rede do VPS (ex: 192.168.20.100). Se o ping responder, o túnel está funcional.

Para visualizar as estatísticas de tráfego no Mikrotik:

/ip ipsec active-peers print

Você verá o tempo de atividade (uptime) e os bytes trocados. Se o uptime aumentar, a conexão está viva.

4.3 Problemas Comuns

  • Falha na Negociação IKE: Verifique se as portas 500/4500 estão abertas no firewall do provedor de VPS. Muitos provedores bloqueiam essas portas por padrão em instâncias EC2/Azure.
  • Diferença de Propostas: Se o Mikrotik usa AES-128 e o Linux AES-256, a conexão falhará. Padronize aes-256 e sha256 em ambos os lados.
  • Máscara de Sub-rede: Certifique-se de que as sub-redes definidas no leftsubnet (Linux) e rightsubnet (Mikrotik) são corretas. Um erro comum é definir a máscara /32 quando se deseja rotear toda a rede /24.

Otimizações de Segurança e Boas Práticas

Embora uma chave pré-compartilhada (PSK) funcione para testes e pequenas implantações, ela tem limitações. Para ambientes de alta exigência:

  1. Uso de Certificados Digitais: Substitua o PSK por autenticação baseada em certificados X.509. Isso elimina o risco de a chave ser descoberta e permite revogação granular de acesso.
  2. IKEv2 com MOBIKE: O protocolo IKEv2 suportado pelo strongSwan e Mikrotik permite que a VPN mantenha a conexão mesmo se o IP público do cliente mudar (útil para conexões móveis), desde que configurado corretamente.
  3. DHCP no Túnel: Em vez de usar sub-redes estáticas, considere usar DHCP over IPsec para atribuição dinâmica de IPs aos clientes remotos, facilitando a gestão de endereços.

Além disso, monitore o tráfego. Configure alertas no Mikrotik (System -> Scripts) ou no Linux (Nagios/Zabbix) para notificar se o túnel cair ou se houver um pico anormal de tráfego encapsulado, o que pode indicar tentativas de ataque ou vazamento de dados.

Conclusão

A configuração de uma VPN Site to Site Mikrotik VPS é uma habilidade essencial para qualquer profissional de infraestrutura. Ao dominar a integração entre o roteador Mikrotik e o servidor Linux, você garante que seus dados trafeguem por um caminho seguro e criptografado, protegendo sua rede privada virtual contra ameaças externas.

Lembre-se sempre de testar em ambientes isolados antes de aplicar em produção, documentar as chaves e sub-redes utilizadas, e manter os softwares (RouterOS e strongSwan) atualizados para corrigir vulnerabilidades conhecidas. Com esta base sólida, você está preparado para escalar sua infraestrutura com confiança.

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