Por que eu amo o IKEv2 mais do que outras VPNs



Agora, todos ao redor estão configurando uma VPN para funcionários remotos. Dói-me observar como as pessoas instalam programas monstruosos de bugs, configuram algum tipo de certificado, instalam drivers TUN / TAP e realizam muitas operações complexas, enquanto a melhor solução já está embutida no sistema operacional.

O IKEv2 é um protocolo VPN moderno desenvolvido pela Microsoft e Cisco. É usado por padrão para novas conexões VPN no Windows, macOS, iOS. É mais rápido e seguro do que a maioria dos protocolos VPN e pode ser facilmente configurado no lado do cliente em dois cliques sem usar programas de terceiros.

Acredito que o IPsec IKEv2 seja ótimo não apenas para conectar servidores, mas também para conexões regulares de usuário final da VPN. Neste post, tentarei convencê-lo a usar o IPsec IKEv2 para usuários domésticos regulares em vez do OpenVPN.

IKEv2 mais rápido


Sendo tudo igual, o IKEv2 sempre será mais rápido que o OpenVPN. Isso é especialmente perceptível em sistemas de baixo consumo de energia com memória lenta, como roteadores ou computadores de placa única.

O fato é que o IPsec funciona no contexto do kernel do sistema operacional e o OpenVPN no contexto do usuário (espaço do usuário), e o processamento de cada pacote alterna o contexto entre os processos do kernel e os processos do usuário. Isso afeta a taxa de transferência e a latência.


Comparação de atrasos para diferentes protocolos VPN.

A captura de tela acima mostra a diferença de atraso pela metade entre o IPsec e o OpenVPN. Obviamente, é impossível notar a diferença de 1ms a olho nu, mas com uma carga no sistema, esses valores podem variar significativamente. Além disso, os indicadores reais dependem fortemente das características de um sistema específico, portanto não darei números absolutos para comparar os dois protocolos. Atrasos são muito importantes ao usar voz e vídeo por VPN.

De acordo com meus sentimentos subjetivos, o IKEv2 no Windows 10 funciona visivelmente mais responsivo que o OpenVPN. Afinal, o uso real de um computador de mesa é muito diferente dos testes sintéticos dos protocolos VPN. A carga no processador e na memória não é constante, o usuário pode executar programas exigentes, tudo isso afetará o desempenho.

IKEv2 mais fácil de configurar


Todos os sistemas operacionais modernos (exceto o Android) suportam o IPsec IKEv2 imediatamente. Não é necessário instalar nenhum programa , drivers virtuais TUN / TAP, etc. Todo o gerenciamento de VPN vem do menu do sistema.

Ao mesmo tempo, a configuração no cliente pode ser simplificada para três linhas:

  • Domínio - para IPsec, é necessário um domínio, pois um certificado SSL é emitido para ele
  • Conecte-se
  • senha

Você não precisa mais transferir arquivos com certificados e chaves para o cliente, forçando-o a importar certificados raiz para o armazenamento do sistema. Um nome de usuário e senha são suficientes, e a conexão será tão segura quanto no OpenVPN ao usar certificados, porque a conexão usa o mesmo certificado x.509 que para sites com HTTPS.

Instalação no Windows 10


O assistente de configuração da VPN é chamado no menu de conexão WiFi. Um usuário de qualquer qualificação pode lidar com a configuração de uma janela. A conexão criada é ativada no menu com uma lista de redes WiFi.


Interface para configurar uma nova conexão IKEv2 no Windows 10

Configuração do MacOS
macOS IKEv2 10.11 (El Capitan). .

image

. .

image

, . «Server Address» IP- , «Remote ID», DNS-, .

image

/etc/ipsec.secrets

image

Configuração do IOS
iOS , mobileconfig.

macOS:

-> VPN -> VPN

IKEv2 é seguro


Na etapa anterior, descobrimos que um login e uma senha são suficientes para configurar a conexão. Mas como o cliente pode verificar se a conexão não está sendo tocada, se os dados não estão sendo substituídos e se o servidor realmente é quem afirma ser? Para isso, são usados ​​certificados SSL comuns, com os quais estamos acostumados a usar sites e HTTPS.



O cliente instala um túnel SSL seguro com o servidor e uma senha de login já é transmitida dentro dele. Por padrão, no Windows e no macOS, o algoritmo mschapv2 é usado para transmitir a senha. Assim, com a ajuda de um certificado SSL, o cliente verifica a autenticidade do servidor e, usando a senha de login, o servidor verifica a autenticidade do cliente.

Um servidor IKEv2 pode usar o mesmo certificado com um servidor web, por exemplo, no popular Let's Encrypt. Isso simplifica bastante o gerenciamento de certificados.

O mesmo modelo é usado no OpenVPN e, se desejado, você pode usar um certificado da Lets Encrypt, no entanto, em qualquer caso, o administrador precisará transferir o arquivo para o usuário para configurar a VPN.

Configurar servidor IKEv2


Você pode implantar o servidor IKEv2 em alguns minutos usando scripts de instalação automatizados ou contêineres prontos. O uso da janela de encaixe não é recomendado, pois seu subsistema de rede reduz o desempenho do IPsec a taxas VPS baratas. Você também pode configurar o servidor IKEv2 manualmente. Existem artigos no Habré com exemplos de configurações do servidor Strongswan .

Usaremos um dos scripts de configuração automática mais bem-sucedidos github.com/jawj/IKEv2-setup
Esse script é bom porque usa certificados do Lets Encrypt e gera automaticamente um certificado válido.

Etapa 1: seleção do servidor


Para iniciar o servidor VPN, precisamos do VDS. A configuração mais simples com um único núcleo de processador serve. O script do nosso exemplo é melhor testado no Ubuntu 18.04, portanto, ao criar o servidor, selecione esta imagem do sistema operacional.



Estamos aguardando a instalação do servidor para concluir e copiar os detalhes da conexão. A senha root será enviada para o correio ou pode ser configurada manualmente através da interface da web. Em seguida, inserimos todos os comandos



Etapa 2: Instale o Strongswan


Estamos conectados pelo cliente SSH e executamos o script de instalação:

#     IKEv2 
wget https://raw.githubusercontent.com/jawj/IKEv2-setup/master/setup.sh
chmod u+x setup.sh
./setup.sh
....
#      IP- 
#   sslip.io     
Hostname for VPN: 123-45-67-89.sslip.io
#   VPN
VPN username: coolguy
#  
VPN password (no quotes, please):
....
#     SSH-,    .

Etapa 3: configuração do cliente


Os detalhes do usuário da VPN inseridos agora devem ser usados ​​para configuração no cliente. É importante usar exatamente o nome de domínio que você digitou em Hostname for VPN .

Etapa 4: adicionar novos usuários


Para adicionar um novo usuário a um servidor já criado, edite o arquivo /etc/ipsec.sectes.

# nano /etc/ipsec.secrets
123-45-67-89.sslip.io : RSA "privkey.pem"
coolguy : EAP "C00lPassword"
badguy : EAP "bAdP$$word"

Após adicionar o usuário, execute o comando ipsec secrets para que o Strongswan re-leia a configuração.

Conclusão


Analisamos a experiência do usuário do IKEv2. A administração desse servidor não é mais complicada e, às vezes, mais fácil que o OpenVPN. Se você planeja organizar apenas o acesso remoto para seus funcionários, verifique o IKEv2. Não force seus usuários a instalar programas desnecessários se tudo o que você precisa já estiver no computador. É mais conveniente, mais seguro e muito mais avançado.


All Articles