
Hoje, vamos explorar as opções de configuração de VPN que o NSX Edge nos oferece.
De modo geral, podemos dividir as tecnologias de VPN em dois tipos principais:
- VPN site-a-site. O IPSec é mais comumente usado para criar um túnel seguro, por exemplo, entre a rede da sede e uma rede em uma localização remota ou na nuvem.
- VPN de Acesso Remoto. Usado para conectar usuários individuais a redes privadas de organizações via software cliente VPN.
O NSX Edge nos permite usar ambas as opções.
Faremos a configuração usando um ambiente de teste com dois NSX Edge, um servidor Linux com o daemon e um laptop com Windows para testar a VPN de Acesso Remoto.
IPsec
- Na interface do vCloud Director, vamos à seção Administração e selecionamos o vDC. Na aba Gateways Edge, escolhemos o Edge desejado, clicamos com o botão direito e selecionamos Serviços de Gateway Edge.

- Na interface do NSX Edge, vamos para a aba VPN-IPsec VPN, em seguida, na seção Sites IPsec VPN e clicamos em + para adicionar um novo site.

- Preencha os campos necessários:
- Ativado – ativa o site remoto.
- PFS – garante que cada nova chave criptográfica não esteja relacionada a nenhuma chave anterior.
- ID Local e Endpoint Local– endereço externo do NSX Edge.
- Sub-rede Local– sub-redes locais que utilizarão a VPN IPsec.
- ID do Par e Endpoint do Par – endereço do site remoto.
- Sub-redes do Par – redes que utilizarão a VPN IPsec no lado remoto.
- Algoritmo de Criptografia – algoritmo de criptografia do túnel.

- Autenticação – como autenticaremos o par. Podemos usar Pre-Shared Key ou certificado.
- Chave Pré-Compartilhada – especificamos a chave que será usada para autenticação e que deve ser a mesma em ambos os lados.
- Grupo Diffie-Hellman – algoritmo de troca de chaves.
Após preencher os campos necessários, clique em Manter.

- Pronto.

- Depois de adicionar o site, vamos para a aba Status de Ativação e ativamos o Serviço IPsec.

- Após aplicar as configurações, vamos para a aba Estatísticas —> VPN IPsec e verificamos o status do túnel. Vemos que o túnel está ativo.

- Vamos verificar o status do túnel a partir do console do Edge gateway:
- show service ipsec – verificação do estado do serviço.

- show service ipsec site – informações sobre o estado do site e parâmetros acordados.

- show service ipsec sa – verificação do status da Associação de Segurança (SA).

- show service ipsec – verificação do estado do serviço.
- Verificação de conectividade com o site remoto:
root@racoon:~# ifconfig eth0:1 | grep inet inet 10.255.255.1 netmask 255.255.255.0 broadcast 0.0.0.0 root@racoon:~# ping -c1 -I 10.255.255.1 192.168.0.10 PING 192.168.0.10 (192.168.0.10) from 10.255.255.1 : 56(84) bytes of data. 64 bytes from 192.168.0.10: icmp_seq=1 ttl=63 time=59.9 ms --- 192.168.0.10 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 59.941/59.941/59.941/0.000 msArquivos de configuração e comandos adicionais para diagnóstico do servidor Linux remoto:
root@racoon:~# cat /etc/racoon/racoon.conf log debug; path pre_shared_key "/etc/racoon/psk.txt"; path certificate "/etc/racoon/certs"; listen { isakmp 80.211.43.73 [500]; strict_address; } remote 185.148.83.16 { exchange_mode main,aggressive; proposal { encryption_algorithm aes256; hash_algorithm sha1; authentication_method pre_shared_key; dh_group modp1536; } generate_policy on; } sainfo address 10.255.255.0/24 any address 192.168.0.0/24 any { encryption_algorithm aes256; authentication_algorithm hmac_sha1; compression_algorithm deflate; } === root@racoon:~# cat /etc/racoon/psk.txt 185.148.83.16 testkey === root@racoon:~# cat /etc/ipsec-tools.conf #! /usr/sbin/setkey -f flush; spdflush; spdadd 192.168.0.0/24 10.255.255.0/24 any -P in ipsec esp/tunnel/185.148.83.16-80.211.43.73/require; spdadd 10.255.255.0/24 192.168.0.0/24 any -P out ipsec esp/tunnel/80.211.43.73-185.148.83.16/require; === root@racoon:~# racoonctl show-sa isakmp Destination Cookies Created 185.148.83.16.500 2088977aceb1b512:a4c470cb8f9d57e9 2019-05-22 13:46:13 === root@racoon:~# racoonctl show-sa esp 80.211.43.73 185.148.83.16 esp mode=tunnel spi=1646662778(0x6226147a) reqid=0(0x00000000) E: aes-cbc 00064df4 454d14bc 9444b428 00e2296e c7bb1e03 06937597 1e522ce0 641e704d A: hmac-sha1 aa9e7cd7 51653621 67b3b2e9 64818de5 df848792 seq=0x00000000 replay=4 flags=0x00000000 state=mature created: May 22 13:46:13 2019 current: May 22 14:07:43 2019 diff: 1290(s) hard: 3600(s) soft: 2880(s) last: May 22 13:46:13 2019 hard: 0(s) soft: 0(s) current: 72240(bytes) hard: 0(bytes) soft: 0(bytes) allocated: 860 hard: 0 soft: 0 sadb_seq=1 pid=7739 refcnt=0 185.148.83.16 80.211.43.73 esp mode=tunnel spi=88535449(0x0546f199) reqid=0(0x00000000) E: aes-cbc c812505a 9c30515e 9edc8c4a b3393125 ade4c320 9bde04f0 94e7ba9d 28e61044 A: hmac-sha1 cd9d6f6e 06dbcd6d da4d14f8 6d1a6239 38589878 seq=0x00000000 replay=4 flags=0x00000000 state=mature created: May 22 13:46:13 2019 current: May 22 14:07:43 2019 diff: 1290(s) hard: 3600(s) soft: 2880(s) last: May 22 13:46:13 2019 hard: 0(s) soft: 0(s) current: 72240(bytes) hard: 0(bytes) soft: 0(bytes) allocated: 860 hard: 0 soft: 0 sadb_seq=0 pid=7739 refcnt=0 - Tudo pronto, o VPN IPsec site-to-site está configurado e funcionando.
Neste exemplo, usamos PSK para autenticação do peer, mas a autenticação baseada em certificados também é uma opção. Para isso, deve-se ir até a aba Configuração Global, habilitar a autenticação por certificados e selecionar o próprio certificado.
Além disso, será necessário mudar o método de autenticação nas configurações do site.


Vale lembrar que o número de túneis IPsec depende do tamanho do Edge Gateway implantado (leia sobre isso em nosso ).
SSL VPN
SSL VPN-Plus é uma das opções de VPN de Acesso Remoto. Ele permite que usuários remotos individuais se conectem com segurança a redes privadas que estão atrás do gateway NSX Edge. Um túnel criptografado no caso da SSL VPN-Plus é estabelecido entre o cliente (Windows, Linux, Mac) e o NSX Edge.
- Vamos começar a configuração. No painel de controle dos serviços do Edge Gateway, vá até a guia SSL VPN-Plus, depois em Configurações do Servidor. Escolha o endereço e a porta em que o servidor escutará as conexões de entrada, ative o log e escolha os algoritmos de criptografia necessários.

Aqui também é possível alterar o certificado que será utilizado pelo servidor.
- Após tudo pronto, ative o servidor e não esqueça de salvar as configurações.

- Em seguida, precisamos configurar o pool de endereços que iremos fornecer aos clientes ao se conectarem. Esta rede é separada de qualquer sub-rede existente no seu ambiente NSX, não é necessário configurá-la em outros dispositivos nas redes físicas, exceto as rotas que a direcionam.
Vá para a guia Pools de IP e clique em +.

- Escolha os endereços, a máscara de sub-rede e o gateway. Aqui também é possível alterar as configurações para os servidores DNS e WINS.

- O pool resultante.

- Agora, vamos adicionar as redes às quais os usuários conectados à VPN terão acesso. Vá para a guia Redes Privadas e clique em +.

- Preencha:
- Rede — a rede local à qual os usuários remotos terão acesso.
- Enviar tráfego, possui duas opções:
— através do túnel – enviar tráfego para a rede através do túnel,
— desviar do túnel – enviar tráfego para a rede diretamente, ignorando o túnel. - Ativar Otimização TCP – marque se escolheu a opção através do túnel. Quando a otimização está ativada, você pode especificar os números das portas para as quais o tráfego deve ser otimizado. O tráfego para as restantes portas desta rede específica não será otimizado. Se os números das portas não forem especificados, o tráfego para todas as portas será otimizado. Leia mais sobre essa função .

- Em seguida, vá para a guia Autenticação e clique em +. Para autenticação, utilizaremos um servidor local no próprio NSX Edge.

- Aqui podemos escolher políticas para a geração de novas senhas e configurar opções para bloqueio de contas de usuários (por exemplo, o número de tentativas ao inserir a senha incorretamente).


- Como utilizamos autenticação local, é necessário criar usuários.

- Além das coisas básicas como nome e senha, aqui é possível, por exemplo, proibir o usuário de alterar a senha ou, ao contrário, obrigá-lo a mudar a senha na próxima entrada.

- Depois que todos os usuários necessários forem adicionados, vamos para a aba Pacotes de Instalação, clicamos em + e criamos o instalador que será baixado para a instalação do funcionário remoto.

- Clicamos em +. Escolhemos o endereço e a porta do servidor ao qual o cliente irá se conectar, e as plataformas para as quais precisamos gerar o pacote de instalação.

Abaixo, nesta janela, podemos especificar os parâmetros do cliente para Windows. Escolhemos:- iniciar cliente ao logon – o cliente VPN será adicionado ao autoload na máquina remota;
- criar ícone na área de trabalho – criará um ícone do cliente VPN na área de trabalho;
- validação do certificado de segurança do servidor – irá validar o certificado do servidor durante a conexão.
A configuração do servidor foi concluída.

- Agora vamos baixar o pacote de instalação que criamos na última etapa para o PC remoto. Durante a configuração do servidor, indicamos seu endereço externo (185.148.83.16) e porta (445). Precisamos acessar esse endereço no navegador da web. No meu caso, é :445.
Na janela de autorização, é necessário inserir as credenciais do usuário que criamos anteriormente.

- Após a autorização, aparecerá uma lista dos pacotes de instalação criados disponíveis para download. Criamos apenas um - vamos baixá-lo.

- Clicamos no link, o download do cliente começa.

- Descompactamos o arquivo baixado e executamos o instalador.

- Após a instalação, iniciamos o cliente, na janela de autorização, clicamos em Login.

- Na janela de verificação do certificado, selecionamos Sim.

- Inserimos as credenciais do usuário criado anteriormente e vemos que a conexão foi estabelecida com sucesso.


- Verificamos as estatísticas do cliente VPN no computador local.


- No prompt de comando do Windows (ipconfig /all) vemos que um adaptador virtual adicional apareceu e a conectividade com a rede remota está funcionando:


- E por último – verificar a partir do console do Edge Gateway.

L2 VPN
L2VPN será necessário quando for preciso unir várias redes geograficamente
distribuídas em um único domínio de broadcast.
Isso pode ser útil, por exemplo, ao migrar uma máquina virtual: ao transferir a VM para outro local geográfico, a máquina manterá as configurações de endereçamento IP e não perderá a conectividade com outras máquinas que estejam no mesmo domínio L2 que ela.
Em nosso ambiente de teste, vamos conectar duas plataformas, chamadas, respectivamente, A e B. Temos dois NSX e duas redes roteáveis criadas de forma idêntica, ligadas a diferentes Edges. A máquina A tem o endereço 10.10.10.250/24, e a máquina B – 10.10.10.2/24.
- No vCloud Director, vamos para a guia Administração, entramos no VDC necessário, vamos para a guia Org VDC Networks e adicionamos duas novas redes.

- Selecionamos o tipo de rede roteada e conectamos essa rede ao nosso NSX. Marcamos a caixa de seleção Criar como subinterface.

- No final, devemos ter duas redes. Em nosso exemplo, elas são chamadas de network-a e network-b, com as mesmas configurações de gateway e a mesma máscara.


- Agora vamos às configurações do primeiro NSX. Este será o NSX ao qual a rede A está vinculada. Ele atuará como servidor.
Retornamos à interface NSX Edge / Vamos para a guia VPN → L2VPN. Ativamos o L2VPN, selecionamos o modo de operação Servidor, nas configurações do Servidor Global informamos o endereço IP externo do NSX que escutará a porta para o túnel. Por padrão, o socket será aberto na porta 443, mas pode ser alterado. Não esqueçamos de selecionar as configurações de criptografia para o túnel futuro.

- Vamos para a guia Sites do Servidor e adicionamos um par.

- Ativamos o par, configuramos um nome, descrição, se necessário, e definimos um nome de usuário e senha. Esses dados serão necessários mais tarde na configuração do site cliente.
No Endereço do Gateway de Otimização de Egress, definimos o endereço do gateway. Isso é necessário para evitar conflitos de endereços IP, já que o gateway das nossas redes possui o mesmo endereço. Após isso, clicamos no botão SELECIONAR SUB-INTERFACES.

- Aqui selecionamos a subinterface necessária. Salvamos as configurações.

- Vemos que nas configurações apareceu o site cliente recém-criado.

- Agora vamos à configuração do NSX do lado do cliente.
Acessamos o NSX do lado B, vamos para VPN → L2VPN, ativamos o L2VPN e configuramos o modo L2VPN para o modo cliente. Na guia Client Global, informamos o endereço e a porta do NSX A, que informamos anteriormente como IP e Porta de escuta no lado do servidor. Também é necessário definir as mesmas configurações de criptografia para que sejam compatíveis ao estabelecer o túnel.

Role para baixo, escolha a subinterface através da qual o túnel para L2VPN será construído.
No Egress Optimization Gateway Address definimos o endereço do gateway. Definimos user-id e senha. Escolhemos a subinterface e não esquecemos de salvar as configurações.
- Basicamente, é isso. As configurações do lado do cliente e do servidor são praticamente idênticas, com algumas exceções.
- Agora podemos verificar se o nosso túnel está funcionando, indo a Statistics —> L2VPN em qualquer NSX.

- Se agora acessarmos a console de qualquer Edge Gateway, veremos em cada um deles na tabela arp os endereços de ambas as VMs.

Isso é tudo sobre VPN no NSX Edge. Perguntem, se algo ainda não estiver claro. Esta também é a última parte da série de artigos sobre o NSX Edge. Esperamos que tenham sido úteis 🙂
Fonte: habr.com























































