Passo-a-passo: Como criar uma VPN para acessar seu lab remotamente

Este é o passo-a-passo derivado do workshop realizado anteriormente. Acredito que, seguindo as instruções que publico à seguir, qualquer um conseguirá criar uma VPN que permita o acesso aos seus elementos internos de rede (e isso pode ser qualquer coisa que esteja conectada à sua rede interna: webcams, elementos de rede simulados em seu lab, roteador do seu provedor de acesso, etc).

Neste post eu uso o OpenVPN, apenas por conveniência. As vantagens que vi no OpenVPN são as seguintes:

  • Baseado no protocolo SSL
  • 100% baseado em GUI e não em linha de comando
  • Fácil instalação e configuração

Topologia do Exemplo

Para este workshop, a topologia adotada foi a abaixo. Observe que meu servidor VPN (Ubuntu 18.04LTS) possui duas interfaces, uma conectada ao mundo externo (minha rede doméstica) e a outra conectada ao ambiente que eu quero prover o acesso remoto (rede 5.x.x.x).

Instalação

Para instalar o OpenVPN server, acesse o website deles e siga as instruções para o seu sistema. No exemplo que vou dar, usarei Ubuntu Linux 18.04LTS.

Em um servidor Ubuntu 18.04LTS, execute os seguintes comandos:

apt update && apt -y install ca-certificates wget net-tools gnupg

wget -qO - https://as-repository.openvpn.net/as-repo-public.gpg | apt-key add -

echo "deb http://as-repository.openvpn.net/as/debian bionic main">/etc/apt/sources.list.d/openvpn-as-repo.list

apt update && apt -y install openvpn-as

Os 3 primeiros adicionam a chave pública e o repositório OpenVPN em sua lista de repositórios APT. O último comando atualiza a lista de pacotes disponíveis em todos os repositórios que você tem configurados e, na sequência, procede com a instalação do servidor OpenVPN-AS (e todas as dependências) em seu Ubuntu.

NOTA: Observe que este post foca na versão OpenVPN-AS (Access Server).

Assim que a instalação finalizar, você verá as instruções para acesso em seu terminal. Basicamente, você terá que alterar a senha para o usuário administrativo do OpenVPN (usuário openvpn). E isso é feito executando o seguinte comando:

sudo passwd openvpn

Uma vez alterada a senha, você pode acessar a interface gráfica de seu novo servidor para configurá-lo, usando um browser e apontando-o para o endereço IP de seu servidor Ubuntu, seguido da porta 943 e do path admin. Algo assim (obviamente você deve usar o SEU endereço IP)

https://172.16.16.1:943/admin

Configuração

Lembre-se de usar o usuário openvpn e a senha redefinida anteriormente em seu primeiro acesso. Uma vez logado, as opções serão apresentadas como na tela abaixo:

Obviamente a versão do sistema e o status da licença podem ser diferentes no de vocês (no meu, eu tenho licença para até 1024 dispositivos). A licença FREE do OpenVPN AS permite apenas um máximo de 2 dispositivos conectados simultaneamente ao servidor – imagino que mais que suficiente para usuários domésticos!

Observe que no menu lateral, temos várias opções para configuração do servidor, incluindo:

  • Protocolo TLS (default para 1.2, mas você pode configurar o servidor para usar a versão 1.3, mais recente e mais segura).
  • Network Settings – Logo a primeira opção aqui é a definição do hostname ou endereço IP de seu servidor. Esta é a informação que será usada pelo software client depois, para se conectar ao servidor. Assim, o endereço IP aqui TEM QUE SER SEU IP PÚBLICO, ou um nome que seja resolvido pelos servidores DNS da internet para o seu IP público. Mais adiante eu falo sobre isso. Por hora, sugiro acessar um site como https://www.whatsmyip.org/, anote o endereço IP que aparece e coloque-o aqui. Outra configuração importante aqui é a definição de quais interfaces no seu servidor ficarão ativas para conexões VPN (normalmente, você apenas habilitará a interface externa). Eu diria que não é preciso alterar mais nada nesta seção.
  • VPN Settings – É nesta seção que a mágica acontece…! Aqui você vai definir uma série de elementos de sua futura VPN. Vou comentar os parâmetros mais importantes, a seguir.

Quando você clica na opção “VPN Settings”, a primeira coisa que você deve definir é a rede que será alocada para os usuários de sua VPN. No meu exemplo (figura abaixo), eu escolhi a rede 5.5.1.0/24. A configuração “Group Default IP …” é opcional e não precisa ser definida.

Na sequência – tela abaixo – você precisa definir a parte de roteamento. Por exemplo, a quais redes internas os usuários da VPN terão acesso, e como será este acesso (roteado, via NAT, ou sem acesso). No exemplo abaixo, eu permito aos usuários da minha VPN o acesso às redes 5.5.2.0/24 até 5.5.6.0/24. A opção “Allow access from these private subnets to all VPN client IP addresses and subnets” funciona no modo inverso: Se habilitado, vai permitir o acesso de elementos existentes nestas subredes (5.5.2.0 – 5.5.6.0) aos endereços IP alocados pela VPN aos seus clientes. Isso significa dizer que, da rede 5.5.6.0, por exemplo, eu conseguiria pingar um usuário na rede 5.5.1.0.

Outras configurações importantes nesta tela: “Should client Internet traffic be routed through the VPN?” – Isso diz ao servidor OpenVPN se o modo split tunneling deve ser habilitado ou não. Por exemplo, alterar esta configuração para YES fará com que TODO o tráfego do usuário atravesse a VPN criada. Deixando em NO (default), fará com que apenas o tráfego destinado às redes que você adicionou anteriormente (no meu exemplo, 5.5.2.0 a 5.5.6.0) atravesse a VPN (este é o split tunneling).

Finalmente, a última opção relevante é “Should clients be allowed to access network services on the VPN gateway IP address?” – O default é NO. Se alterado para YES, permite que usuários conectados à VPN possam acessar o default gateway do seu servidor, o que pode eventualmente permitir que eles tenham acesso a recursos existentes em outras redes.

Finalmente, para adicionar, remover ou alterar usuários, acesse a opção User Management > User Permissions (ver abaixo).

Basicamente, seria este o básico para você ter a VPN funcionando. Existem mais configurações, claro… mas elas são opcionais. Vocês podem dar uma olhada com mais calma depois.

Acesso externo

Bom, seu servidor VPN está instalado e configurado. E agora, como acessá-lo de fora de sua casa – afinal, é exatamente este o motivo de você ter feito tudo isso até agora, certo?

O primeiro passo é configurar seu roteador internet (o “modem” ou roteador DSL, ou cable modem, ou seja lá como você o chame) para realizar o encaminhamento de portas (port forwarding). Se o seu roteador (ou provedor de Internet) não suporta esta configuração, você está sem sorte… não há muito o que fazer neste caso. Se ele suporta, acesso seu roteador e configure algo semelhante ao ilustrado abaixo:

No exemplo, 172.16.255.177 é o endereço IP do meu servidor OpenVPN (a VM Ubuntu na qual instalei o servidor). Vocês terão que configurar o roteador Internet para encaminhar conexões destinadas às portas TCP 943 e UDP 1194 para o endereço IP do servidor de vocês. Feito isso, restam agora 2 opções para vocês usarem a VPN.

  1. Acesso direto ao IP público do roteador Internet (não recomendado pois este endereço IP é dinâmico e muda de tempos em tempos). Se optar por este caminho, basta descobrir qual seu IP público (acesse https://www.whatsmyip.org/) e conectar-se a VPN com ele, na porta 943. Exemplo, se seu IP público for 1.2.3.4, conecte-se à sua VPN usando um navegador e apontando-o para https://1.2.3.4:943.
  2. Acesso via um hostname – Este seria o modo ideal, pois usando um serviço como o https://no-ip.com você pode monitorar dinamicamente alterações no seu endereço IP público e, de quebra, usar um hostname para acessar seus serviços, ao invés do seu IP público. O serviço no-ip é gratuito. Crie um conta, selecione um domínio dentre os disponíveis e instale o cliente no-ip para que ele monitore alterações no seu endereço IP. Depois, é só adicionar o hostname escolhido em sua configuração VPN (abaixo, um exemplo).

Se você optou por usar um hostname, a conexão a sua VPN vai ocorrer usando o nome, e não o IP – ex: https://webinarblogccna.no-ip.com:943

Seria isso. Acho que cobrimos tudo. A gravação do workshop está disponível na sala de webinars do blog (apenas para usuários registrados).

Abs!

Marco



Comente usando o Facebook!

3 comentários

  1. Foi muito massa esse Webinar Filippetti !
    Valeu!

  2. Bom dia Marco, tudo bem ?

    Eu to com problema relacionado ao Client para os usuários, tem alguma flag na criação dos usuários que são destinados a VPN ?

    Eu fiz um teste, instalei os pacotes, conectei no servidor com a maquina client, baixei o pacote etc, mais da Failed na conexão.

    Capturando os pacotes com o TCPDUMP chega requisição somente na porta 443(tsl) na 1194 não chega nada.

    O estranho que fiz os Port Forwarding no router normal.

    No Client mesmo marcando para usar apenas UDP não chega nada.

    Se tiver alguma dica, ou alguma coisa a mais para verifiacr agradeceria.

    Desde já agradeço.

    KIND REGARDS.
    EDIR

    1. Eu faria primeiro um teste dentro da rede interna (sem Internet). Se funcionar, o problema está ou no encaminhamento das portas no seu roteador ou no seu provedor de acesso que está bloqueando a porta 1194.

Deixe uma resposta