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!