Pular para o conteúdo

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.
Sergei Martao sergeimartao
Hits: 10.587 Categoria: Linux Subcategoria: Redes
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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.

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
   1. Introdução
   2. Cenário complexo
   3. Premissas para funcionamento
   4. Recursos e Troubleshooting

Simulando redes com o GNS

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

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

Instalando DNS Server (BIND) no CentOS 7

NET Virtua, Bloqueio de DNS, SmartTVs, Netflix e Youtube, uma mistura explosiva

Análise de Desempenho: Web API

"TORIFICANDO" todo um sistema GNU/Linux utilizando a rede TOR

Instalando o oVirt 4.3 Single Host

#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

Entre na sua conta para comentar.