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.502 ]

Por: Sergei Martao em 12/07/2017


Recursos e Troubleshooting



Configuração básica

Dentro do script existe uma função com o nome CARREGACONF.
Conforme os próprios comentários do script, nela que é possível alterar algum parâmetro de execução.

Logs de execução

Por padrão o script cria um diretório chamado logs no mesmo diretório que está o script e todas as execuções são salvas lá.

Arquivos de IPsec

Toda vez que o script é executado os arquivos de IPsec gerados ficarão no diretório raiz, possibilitando a análise do que foi copiado para cada firewall.
Após executar o procedimento para desativar a contingência os arquivos são deletados.

Arquivo .redes

Existem certas regras para a criação do arquivo .redes.

Nome
Deve terminar sempre com .redes, caso contrário o script o ignorara.

Conteúdo

linux=1
Caso o servidor VPN seja um Linux usando Openswan use linux=1, caso o firewall seja de outro tipo utilize=0, isso é importante porque torna o script útil mesmo para as localidades que não tem firewall Linux, no entanto nesses sites os túneis precisam ser configuradas manualmente.

left=200.2.2.2
IP válido do site usado para fechar a VPN, ou seja, se o arquivo for o 1.saopaulo.redes, adicione nele o IP valido do site de São Paulo.

leftnexthop=200.2.2.1
Gateway do IP válido, todo link com a internet possui um gateway, basta adicioná-lo aqui para direcionar por onde o pacotes serão direcionados.

172.16.10.0/24#INTERNASITEA
Rede que será feita a contingência em caso de queda, redes internas devem ter o comentário #INTERNA para identificação, pode-se adicionar quantas redes internas forem necessário.

10.10.10.0/24#CLIENTEXPTOA1
Rede que o site possui com um cliente, essa rede também terá contingência no entanto não correrá o risco de ser fechado um túnel entre clientes que estão em localidades diferentes como por exemplo CLIENTEXPTOA1 com o CLIENTEXPTOB1, pode-se adicionar quantas redes forem necessário.

Troubleshooting

Na execução do script é mostrado um checklist se a ação foi executado com sucesso ou não, tornando o processo de identificação de problema mais fácil, segue alguns exemplos.

Falha geral em um determinado site:
Possíveis causas:
  • IP do left está errado.
  • Porta SSH está errada ou bloqueada.
  • Host está inacessível, queda do circuito que faz a comunicação com a internet.

Falha para mover o arquivo do IPsec e reiniciar o serviço.
Possíveis causas:
  • Usuário utilizado não existe ou não está no grupo do sudo.
  • Arquivo /etc/hosts configurado com hostname errado.

Falha para reiniciar o IPsec.
Possíveis causas:
  • Serviço do IPsec não está instalado.
  • Falha em algum dos módulos que o IPsec utiliza.

Conclusão

Quem teve toda a ideia da solução foi o Nelys Santos, contudo o primeiro script era um pouco mais simples, um dia conversamos ele deu carta branca para se basear na solução e fazer uma melhor, sinceramente levei um tempo aceitar a empreitada porque recriar um script de uma forma melhor baseado no que outra pessoa pensou não é uma tarefa fácil, o resultado final está aí para toda comunidade utilizar como desejarem.

Quero fazer um agradecimento especial para o Nelys Santos que é uma pessoa extremamente competente naquilo que faz, sempre ensinando e mostrando formas diferentes de abordar um problema, evolui imensamente em Linux e em redes graças a gigantesca paciência dele em explicar quantas vezes for necessário uma ideia ou conceito novo. É muito gratificante poder trabalhar com um profissional como ele.

É possível fazer manualmente tudo o que o script executa, no entanto acredito que gastaria muito tempo desnecessário. O principal foco do script é facilitar o trabalho de quem precisa fechar uma VPN pela internet como forma de contingência de um circuito privado, além de simplificar a adição ou remoção das redes que entrarão na VPN.

Para quem tiver interesse fique a vontade para alterá-lo ou melhorá-lo conforme a necessidade.

Espero sinceramente que esse script possa ajudar alguém.

Vlw!

Página anterior    

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

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

Planejando e migrando softwares do Windows para o Linux

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

Simulando redes com o GNS

Criando um template customizado para o CACTI

Leitura recomendada

Instalação e configuração do Nagios (versões 3.2.1 e 4.0.8)

Sincronizando Bases OpenLDAP e Active Directory

Instalação do OCS Inventory (última versão, 2.9.2 - 2022) no Debian 11

Asterisk - Recebimento de Fax com encaminhamento por e-mail

Configurando Zabbix 3.4 no CentOS 7

  
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