Utilizando o script vpnautomatica

Quem trabalha com firewalls Linux interconectados por circuitos privados, sabe que não é simples provisionar um meio de backup rápido e eficiente que não seja a aquisição de um link extra, nesse artigo mostro como fazer uma contingência usando uma VPN IPsec pela internet.

[ Hits: 8.450 ]

Por: Sergei Martao em 12/07/2017


Introdução



Recentemente publiquei um script (VPN automática entre sites), nesse artigo mostrarei qual é o cenário de aplicação do script, porquê utilizá-lo, funcionamento básico e técnicas de troubleshooting.

O cenário mais simples que o script proverá a solução de contingência pela internet está demonstrado na imagem a baixo:
A empresa XPTO possui dois sites, site A localizado em São Paulo que conta com uma rede de desktops e um servidor de arquivo, ambos na rede 172.16.10.0/24, além de um firewall Linux com iptables puro que possui acesso a internet pelo IP 200.2.2.2, o site B situado no Paraná tem apenas uma rede de desktops 172.16.20.0/24 e também um firewall Linux com iptables puro com acesso a internet pelo IP 189.9.9.9, as pessoas que estão no site B acessam diariamente o servidor de arquivos do site A sendo um recurso vital para o trabalho deles, a comunicação entre o sites é realizado um circuito P2P.

Porém um belo dia esse circuito para de funcionar e não existe previsão de retorno, seu chefe olha para você e fala: "Precisamos fazer uma contingência de alguma forma e o quanto antes!". Como os dois sites possuem conexão com a internet através de um firewall Linux e as redes de cada escritório precisam se comunicar isso torna o momento ideal para utilizar o script.

Utilização básica

Imaginando que todas as premissas para o funcionamento do script já foram atendidas (veremos nas próximas páginas), bastaria executar os passos abaixo.

1. Baixar o script para um servidor ou um dos firewalls (site A ou site B), nesse exemplo será copiado para o firewall do site A no diretório /etc/vpnautomatica.

2. Tornar o script executável.

# chmod 755 /etc/vpnautomatica/vpnautomatica.sh

3. Criar o arquivo com as configurações de rede do site A.

# vim 1.sitea.redes

Adicionar as linhas:

linux=1
left=200.2.2.2
leftnexthop=200.2.2.1
172.16.10.0/24#INTERNASITEA

4. Criar o arquivo com as configurações de rede do site B.

# vim 2.siteb.redes

Adicionar as linhas:

linux=1
left=189.9.9.9
leftnexthop=189.9.9.1
172.16.20.0/24#INTERNASITEB

5. Executar o script:

# ./vpnautomaitca.sh

Escolher a opção que deseja, nesse caso é ativar a contingência.
Escolher o site que caiu, como possui apenas duas localidades não faz muita diferença qual escolher.
Esperar a execução do script.
6. Validando se os túneis estão no ar, esse comando deve ser executado nos firewalls Linux:

# IPsec auto --status
A imagem acima exibi que os túneis foram fechado sem problemas na fase 1 e na fase 2.

Caso queira uma visão mais específica use o grep mais o comentário utilizado no arquivo redes.

# IPsec auto --status | grep -i internasitea --color
7. Validando se o site B está chegando no servidor do site A.
Quando a operadora restabelecer o circuito, basta executar o script para remover a VPN.

1. Executar o script:

# ./vpnautomaitca.sh
Informar qual site voltou a funcionar.
Esperar a execução do script.
8. Validando se os túneis foram desativados, esse comando deve ser executado nos firewall Linux.

# IPsec auto --status
9. Validando o acesso ao servidor.
Conforme a imagem acima, repare que quando o circuito está funcionando mostrará todos os saltos (apesar disso depender muito da configuração da operadora) todavia quando a contingência estiver ativada mostrará apenas o primeiro e o último salto, entrando e saindo da VPN.
A solução fornecida pelo script foi pensada nos mais diversos cenário de rede possível, na próxima página apresentarei um cenário um pouco mais complexo.

    Próxima página

Páginas do artigo
   1. Introdução
   2. Cenário complexo
   3. Premissas para funcionamento
   4. Recursos e Troubleshooting
Outros artigos deste autor

Simulando redes com o GNS

Openswan - Configurando uma conexão VPN Site-to-Site e simulando com GNS3

Planejando e migrando softwares do Windows para o Linux

Criando um template customizado para o CACTI

Configurando o segundo default gateway para um link de entrada específico

Leitura recomendada

WebHTB - Controle de banda de internet

Servidor Proxy - Parte I

Ansible - Instalação em massa Agent Zabbix

Docker - Containers em Linux (parte 2)

Roubando bits (parte 2): como resolver questões rapidamente sem calculadora

  
Comentários
[1] Comentário enviado por marcoaurelio22 em 12/07/2017 - 19:47h

Muito bom o artigo, Parabéns.
Já utilizei por um bom tempo algo parecido, atualmente utilizo strongswan + quagga(bgp), fazendo redundancia e balanceamento entre a MPLS + 2 VPNS e hoje o tempo de virada esta em 2 segundos, praticamente transparente para o usuario. é uma ótima alternativa.

[2] Comentário enviado por fabio_cirino em 13/07/2017 - 14:20h

Parabéns.... Ficou muito bom seu artigo.

[3] Comentário enviado por sergeimartao em 14/07/2017 - 14:13h


[1] Comentário enviado por marcoaurelio22 em 12/07/2017 - 19:47h

Muito bom o artigo, Parabéns.
Já utilizei por um bom tempo algo parecido, atualmente utilizo strongswan + quagga(bgp), fazendo redundancia e balanceamento entre a MPLS + 2 VPNS e hoje o tempo de virada esta em 2 segundos, praticamente transparente para o usuario. é uma ótima alternativa.



Não tinha ideia que daria pra fazer isso também usando o quagga, muito interessante, quando sai um artigo mostrando essa solução?! rs
Vlw!

[4] Comentário enviado por sergeimartao em 14/07/2017 - 14:14h


[2] Comentário enviado por fabio_cirino em 13/07/2017 - 14:20h

Parabéns.... Ficou muito bom seu artigo.


Vlw Cirino!!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts