Contextualização:
Configurar SSL VPN com o uso do WireGuard que permita aos usuários, a partir de servidores e desktops dentro ou fora do VDC, se conectarem a servidores/serviços hospedados dentro do Virtual Datacenter.
1) Conceitos iniciais:
a) Edge Gateway: É o gateway de borda do Virtual Datacenter. Possui, dentre as várias funcionalidades, gerenciar as conexões válidas de entrada/saída de/para o Virtual Datacenter. Abaixo, imagem que apresenta, de maneira geral, como o Edge Gateway provê às Orgs e Virtuais Datacenters, a função de roteamento VLAN para VXLAN:
b) VPN: Rede privada virtual, do inglês Virtual Private Network, é uma rede de comunicações privada construída sobre uma rede de comunicações pública. O tráfego de dados é levado pela rede pública utilizando protocolos padrões.
2) Procedimentos:
IMPORTANTE: A implementação destes procedimentos é realizada no vCloud Director, na Seção Datacenters, logando na Org do órgão/entidade com usuário, senha e função apropriada. Em caso de dúvidas sobre como logar no VCD, consulte o artigo vCloud Director: Conceito, Acesso, Recursos Gerais e Layout.
2.1) CONFIGURANDO O SERVIDOR WIREGUARD
a) Criando um vApp com a Máquina Virtual Wireguard:
-
Em Datacenters, selecione a opção (1) Compute > vApps, selecione (2) New vApp (Novo vApp):
-
Na tela seguinte, informe os dados do novo vApp que irá hospedar a Máquina Virtual WireGuard:
-
(a) Nome;
-
(b) Descrição:
-
(c) Informados Nome e Descrição, não finalize o procedimento de criação do vApp, avance clicando em ADD VIRTUAL MACHINE:
-
-
Na tela de inserção da Máquina Virtual, informe os dados da nova VM Wireguard:
-
(d) Nome;
-
(e) Computer Name (Nome do Computador), que não pode conter caracteres especiais ou espaços;
-
(f) Descrição:
-
(g) Selecione, em Type, a opção From Template:
-
(h) Selecione, na lista, o template wireguard previamente preparado para configuração da VPN. Caso necessário, utilize o filtro para localizar mais rapidamente o template;
-
(i) Findado o preenchimento, clique em OK para incluir a Máquina Virtual ou CANCEL para interromper a operação;
-
(j) Confira se a Máquina Virtual foi adicionada ao vApp:
-
(k) Finalize a criação do vApp, na tela seguinte, clicando em CREATE ou interrompa a operação clicando em CANCEL:
-
-
(l) Visualize o vApp criado na tela inicial da seção vApps:
b) Disponibilizando Rede Roteada no vApp recém-criado:
Para os próximos passos, é necessário criar em sua Org, uma Rede Roteada e conectar a Máquina Virtual nesta Rede. Para saber como criar uma Rede Roteada é importante seguir os procedimentos do Artigo Criando Redes no vCloud Director.
-
(1) Em Compute > vApps, identifique o vApp criado (no exemplo citado, vAppWireguard) e clique em (2) DETAILS. Caso necessário, utilize o filtro em foco para facilitar a pesquisa:
-
Selecione a Aba (3) NETWORK e clique em (4) NEW:
-
Em seguida, selecione a opção (c) OrgVDC Network, selecione em (d) a Rede Roteada a ser utilizada e, por fim, clique em (e) ADD para adicionar a Rede ou clique em CANCEL para interromper a operação:
-
(f) Confira a rede recém-adicionada:
c) Conectando a Máquina Virtual do Serviço Wireguard à Rede Roteada:
-
(1) Em Compute > vApps, identifique o vApp criado (no exemplo citado, vAppWireguard) e clique em (2) DETAILS. Caso necessário, utilize o filtro em foco para facilitar a pesquisa:
-
Selecione a Aba (3) Details e em (4) na lista de VM’s, clique sob o nome da VM, que no exemplo, é vmWireguard:
- Na seção Hardware em tela, preencha:
-
Em (c) selecione Connected;
-
Em (d) Network, selecione a Rede Roteada, que neste exemplo é RedeWireguard;
-
Em (e) IP mode, selecione a opção Static – IP Pool. As demais informações permanecem inalteradas:
-
Em (f), ao finalizar o preenchimento, clique em SAVE para confirmar a operação ou DICARD CHANGES para interrompê-la:
-
-
Por fim, usando o (g) Navigator da página, clicando sob o nome do vApp, volte à (h) Lista de VMs do vApp e veja que a máquina está conectada à rede:
OBSERVAÇÃO: Mantenha-se nesta mesma tela para os próximos passos.
d) Preparando a VM Wireguard com Script de Inicialização para configurações automatizadas:
Nesta etapa, há um script que será executado na inicialização da referida Máquina Virtual e que é detalhado na seção Guest OS Customization conforme telas que se seguem. O referido script tem o objetivo de chamar outro script, mais complexo e interno na Máquina, que fará os procedimentos de configuração do Wireguard. Um dos atributos que precisa ser repassado no script da Guest OS Customization, é a Faixa de Endereçamento IP PRIVADO reservada para uso da VPN. Neste exemplo, manteremos o segmento 192.168.200.1/24, mas pode ser reservada outra faixa, a critério do gestor técnico do ambiente. Acompanhe:
- Na mesma tela em que foi conferida a conexão da máquina virtual com a RedeWireguard, desça à barra de rolagem e procure a seção (a) Guest OS Customization:
-
Em (b), se for o caso, altere a Faixa de Endeçamento PRIVADO reservada para uso da VPN;
-
Em (c), caso tenha ocorrido alterações nesta etapa, clique em SAVE para confirmá-las. Caso contrário, clique em DICARD CHANGES para sair desta visão:
-
e) Estabelecendo conectividade da VM Wireguard com recursos externos ao Virtual Datacenter:
Duas conectividades são importantes neste ponto:
-
A primeira é obrigatória, que é a de entrada no Virtual Datacenter para uso do Servidor Wireguard que implementa a VPN;
-
A segunda é opcional, também de entrada, para que, por intermédio de um client intuitivo na estação de trabalho do profissional, seja possível acessar a máquina Wireguard via SSH para realizar configurações complementares.
Esta última conectividade é opcional porque o VCloud Director oferece um terminal de acesso à Máquina Virtual. No entanto, as atividades podem se tornar mais intuitivas e facilitadas utilizando um client na estação de trabalho, de preferência do usuário.
i) CONECTIVIDADE OBRIGATÓRIA – REGRA DE FIREWALL E DNAT PARA USO DO SERVIÇO DE VPN WIREGUARD PELOS CLIENTES
- REGRA DE FIREWALL:
-
Selecione (1) Edges;
-
Selecione (a) EDGE_SP_INTERNET_DEMO, na tabela da parte central superior;
-
Selecione (b) CONFIGURE SERVICES:
-
-
Na primeira aba (c) Firewall, clique em “+”, em destaque, para adicionar uma nova Regra de Firewall;
-
Em (d) Uma nova linha de registro de Regra de Firewall será apresentada. Observe:
-
Edite a linha de registro da Nova Regra de Firewall conforme detalhamento:
-
(e) Informe um título para a regra;
-
(f) Informe a Source (Origem) do tráfego pretendido;
-
(g) Informe o Destination (Destino) do tráfego pretendido;
-
(h) Informe a porta de conexão com o Serviço Destino, que neste caso, é a UDP 51820;
-
(i) Ao finalizar o preenchimento, clique em SAVE CHANGES para confirmar a criação da regra ou em DISCARD CHANGES para interromper a operação:
-
- REGRA DE DNAT:
-
Selecione (1) Edges;
-
Selecione (a) EDGE_SP_INTERNET_DEMO, na tabela da parte central superior;
-
Selecione (b) CONFIGURE SERVICE na terceira aba:
-
-
Na terceira aba (c) NAT, clique em “+ DNAT”, em destaque, para adicionar uma nova Regra de DNAT:
-
Uma nova tela será apresentada, para preenchimento dos seguintes dados:
-
(d) IP ou Range de Origem;
-
(e) Protocolo, que neste caso, será UDP;
-
(f) Porta Original, que neste caso será 51820;
-
(g) IP ou Range Convertido;
-
(h) Porta convertida, que neste caso também será 51820;
-
(i) Descrição;
-
(j) Selecione Habilitado, para que a regra fique ativa;
-
(k) Ao finalizar o preenchimento, clique em SAVE CHANGES para confirmar a criação da regra ou em DISCARD CHANGES para interromper a operação:
-
-
(l) Confirme novamente a operação na tela principal, clicando em Save changes. Para cancelar as configurações, clique Discard changes. Em foco, observe a nova regra de DNAT:
-
Após estabelecida a conectividade, acesse (1) Compute > vApps, identifique o vApp criado (no exemplo citado, vAppWireguard), clique em (2) ACTIONS e selecione a opção (3) Power on:
ii) CONECTIVIDADE OPCIONAL – REGRA DE FIREWALL E DNAT PARA ACESSAR A MÁQUINA WIREGUARD VIA SSH
Para esta conectividade, basta realizar os passos de criação de regras de firewall e NAT citados nos tópicos anteriores, usando a Porta TCP 22, como porta de conexão.
2.2) CONSULTANDO AS CONFIGURAÇÕES DO SERVIDOR WIREGUARD
No prompt de comando do Servidor Wireguard, tecle wg e consulte o Status do Serviço e a Chave Pública a ser utilizada nas configurações dos clientes:
2.3) CONFIGURANDO A MÁQUINA CLIENTE
a) Antes das configurações do Wireguard, considere:
-
A máquina cliente precisa ter acesso à internet para download do Wireguard;
-
Não foram detalhados neste artigo, os procedimentos para instalação do Wireguard na máquina cliente, mas os procedimentos podem ser encontrados neste link: https://www.wireguard.com/install/.
b) Após o Wireguard instalado no cliente, realize os seguintes procedimentos:
-
(a) Acesse o Wireguard pelo o ícone na área de notificações:
-
Avançando nas Configuração do Wireguard na Máquina Cliente, para os próximos passos, é preciso clicar em (c) Add Tunnel (Adicionar Tunnel) > Add Empty Tunnel (Adicionar Tunnel Vazio). Em seguida, atribua um (d) Name (Nome) para o novo tunnel e, finalmente, em (e) Copie a Public Key do Cliente e guarde em um bloco de notas. Avalie:
-
Copie o código a seguir e cole na linha imediatamente posterior à chave privada do cliente (PrivateKey), que é gerada automaticamente na criação do novo tunnel que será utilizado como um modelo, e efetue as alterações que serão orientadas a seguir:
(i) CÓDIGO A SER COPIADO E ALTERADO:
Address = 192.168.200.2/32
DNS = 1.1.1.1
[Peer]
PublicKey = chave_pública_do_servidor_aqui
AllowedIPs = 0.0.0.0/1, 128.0.0.0/1, ::/1, 8000::/1
Endpoint = Endereço_público_do_servidor:51820
(ii) ALTERAÇÕES NECESSÁRIAS:
-
(f) Em Adress, informe o endereço IP reservado para esta máquina na Rede Privada reservada para a VPN, neste exemplo, 192.168.200.2/24. É importante informar que cada cliente da VPN receberá um endereçamento IP próprio na Rede Reservada para a VPN. Este controle é do Gestor do Ambiente. E para saber quais IPs já foram usados, basta comandar wg, no prompt do Servidor Wireguard;
-
(g) Em Public Key, informe a Chave Pública do Servidor Wireguard, conforme consulta realizada no tópico anterior (basta comandar wg no prompt da VM Wireguard). Tenha bastante atenção neste passo e observe criteriosamente a figura abaixo;
-
(h) Em EndPoint, digite o IP válido de Gerência do Edge no Virtual Datacenter e a porta do serviço, neste caso, TCP 51820
-
(i) Finalizado o procedimento, clique em Save para confirmar as Configurações do Tunnel VPN na máquina cliente:
2.4) INFORMANDO A CHAVE PÚBLICA DO CLIENTE NO SERVIDOR WIREGUARD
-
Acesse o Servidor Wireguard via prompt de comando e, informe a (a) Chave Pública do Cliente, bem como o (b) Endereço IP Reservado para este Cliente na Rede Wireguard (lembre-se de que foi solicitada esta cópia da chave para o bloco de notas nos passos anteriores). Finalize, em (c), digitando comando para salvar as configurações. OBSERVAÇÃO: Atente-se à estrutura e sintaxe dos comandos abaixo:
2.5) ATIVANDO O TÚNEL NA MÁQUINA CLIENTE
-
Para ativar o túnel, no cliente, acesse (a) Serviço Wireguard na Área de Notificações. Em seguida, clique em (b) Activate e em (c) Confira o Túnel Ativado:
2.6) TESTANDO A CONEXÃO VPN NA MÁQUINA CLIENTE
-
Para testar o funcionamento da VPN, baixe um client na Máquina Cliente (neste exemplo foi utilizado o Putty) para acesso SSH a alguma máquina da Rede Autorizada para o acesso via VPN no Virtual Datacenter. Em (a) informe o IP da máquina e a Porta de Conexão; E Em (c) Verifique o acesso direto à máquina: