2 de dezembro de 2021

Do bit Ao Byte

Embarcados, Linux e programação

Configurar OpenVPN server em menos de 1 minuto

Configurar OpenVPN server

Para quem não conhece, uma VPN é uma rede privada virtual ou, Virtual Private Network, diretamente do acrônimo. Nesse artigo deixarei um kit de instalação para configurar OpenVPN server com gerador de chaves, tudo da maneira mais simples possível!

Configurar OpenVPN server e client

Existem algumas configurações diferentes possíveis, dentre as quais essa que disponho. A exemplo, temos “computadores” a serem acessados em uma rede remota e estamos em nossa casa. Como acessar os recursos dos computadores remotos como se estivessem em minha rede local? – Para isso, fechamos um túnel VPN pela Internet, que nos atribuirá os recursos necessários para fazer a comunicação com esses computadores de forma transparente, usando seus IPs de rede LAN. Os recursos disponibilizados pela VPN podem incluir rotas, servidores DNS, firewall, forwarding e outros recursos que forem necessários.

Para quem ainda não conhece, vale esclarecer que o computador que servirá a conexão VPN precisa mandatoriamente ter um IP público. Não precisa ser fixo, mas se for usar com um IP dinâmico será necessário usar algum serviço como dynDNS ou outro.

Para se conectar ao servidor VPN precisamos configurar as chaves de acesso – e mais uma vez esse kit de instalação entra em ação, criando um diretório chamado geradorDeChaves que com a execução de 1 comando, deixará pronto um arquivo ovpn no diiretório /home/admin. Se não estiver configurando em Debian, há duas opções; modificar o script do gerador de chaves ou simplesmente criar o diretório para a recepção das chaves:

sudo mkdir -p /home/admin
sudo chmod 0777 /home/admin

Com isso, qualquer usuário do sistema poderá acessar o diretório e copiar as chaves de lá.

Como configurar o OpenVPN server

Essa é a parte boa. Além de não precisar saber configurar uma VPN, ainda poderá aprender o processo se guiando pelo script de instalação automática. Se já sabe configurar, concordamos que não é um processo que dá vontade de repetir, certo? Portanto, esse instalador vai ser útil a você também.

Clone o repositório autoVPN

Estando dentro de um sistema Linux (ainda mais se for remoto), provavelmente preferirá clonar, mas no repositório tem também a opção de baixar o arquivo .zip. Para clonar:

git clone https://github.com/DjamesSuhanko/autoVPN.git

Presume-se que tudo será executado a partir de /root, por isso após clonar, execute esses comandos:

sudo su
mv autoVPN /root
cd /root/autoVPN
./magicVPNsetup.sh

A configuração acontecerá em menos de 1 minuto. Quando terminar, confirme a existência da interface tun0 com o comando:

ifconfig

Para gerar as chaves para seus usuários, entre no diretório /root/geradorDeChaves e execute:

./criar_credencial_para.exp nome-que-quiser

Normalmente cria-se nome-sobrenome, seguido por alguma descrição do ambiente da chave; por exemplo, development-env, o que resultaria em um arquivo nome-sobrenome-development-env.ovpn, que será disponibilizado em /home/admin, bastando copiá-lo à posteriori, usando scp.

Assim fica fácil, né? É, eu sei. De nada.

Uma observação

Para validar partes do processo de criação, testes de criação de uma chave precisam ser feitos. Essa chave de teste nem é copiada, mas se desejar apagar os resíduos ou modificar o nome de teste, verifique os seguintes pontos dentro do arquivo magicVPNsetup.sh:

  • final da função onCA()
  • além da metade da função onVPN

Estão explícitas as referências e o nome dos arquivos de testes estão como djames-suhanko:

Configurar OpenVPN server

Na função setupOpenVPN tem linhas que começam com a palavra PERSONAL, que são as configurações que você pode querer mudar. Por exemplo, a VPN empurrará uma rota para 172.31.0.0, considerando a VPC padrão da AWS (sim, essa VPN funcionará na AWS). Nesse caso, considerando também o DNS padrão para resolução de nomes e o DNS do Google para resolver nomes para a Internet (a não ser que queira ficar preso dentro da conexão com a AWS).

Se esses endereçamentos forem mudados, mais abaixo nessa configuração haverá também as regras de firewall. Basta ajustar os endereços, não precisa sequer saber iptables.

Se vai rodar na aws, é só executar os comandos descritos e começar a usar sua VPN.