Pourquoi j'aime IKEv2 plus que les autres VPN



Maintenant, tout le monde met en place un VPN pour les employés distants. Cela me fait mal de voir comment les gens installent des programmes de buggy monstrueux, configurent une sorte de certificats, installent des pilotes TUN / TAP et effectuent de nombreuses opérations complexes, tandis que la meilleure solution est déjà intégrée au système d'exploitation.

IKEv2 est un protocole VPN moderne développé par Microsoft et Cisco. Il est utilisé par défaut pour les nouvelles connexions VPN sous Windows, macOS, iOS. Il est plus rapide et plus sûr que la plupart des protocoles VPN et peut être facilement configuré côté client en deux clics sans utiliser de programmes tiers.

Je crois que IPsec IKEv2 est idéal non seulement pour la connexion des serveurs, mais aussi pour les connexions utilisateur final VPN régulières. Dans cet article, je vais essayer de vous convaincre d'utiliser IPsec IKEv2 pour les utilisateurs domestiques réguliers au lieu d'OpenVPN.

IKEv2 plus rapide


Toutes choses étant égales par ailleurs, IKEv2 sera toujours plus rapide qu'OpenVPN. Cela est particulièrement visible sur les systèmes à faible consommation d'énergie avec une mémoire lente, tels que les routeurs ou les ordinateurs à carte unique.

Le fait est qu'IPsec fonctionne dans le contexte du noyau du système d'exploitation, et OpenVPN dans le contexte de l'utilisateur (espace utilisateur), et le traitement de chaque paquet fait basculer le contexte entre les processus du noyau et les processus utilisateur. Cela affecte à la fois le débit et la latence.


Comparaison des retards pour différents protocoles VPN.

La capture d'écran ci-dessus montre la différence de retard de moitié entre IPsec et OpenVPN. Bien sûr, la différence de 1 ms est impossible à remarquer à l'œil nu, mais avec une charge sur le système, ces valeurs peuvent varier considérablement. De plus, les indicateurs réels dépendent fortement des caractéristiques d'un système particulier, donc je ne donnerai pas de chiffres absolus pour comparer les deux protocoles. Les délais sont très importants lors de l'utilisation de la voix et de la vidéo sur VPN.

Selon mes sentiments subjectifs, IKEv2 sur Windows 10 fonctionne sensiblement plus réactif que OpenVPN. Après tout, l'utilisation réelle d'un ordinateur de bureau est très différente des tests synthétiques des protocoles VPN. La charge sur le processeur et la mémoire n'est pas constante, l'utilisateur peut exécuter des programmes exigeants, tout cela affectera les performances.

IKEv2 plus facile Ă  configurer


Tous les systèmes d'exploitation modernes (sauf Android) prennent en charge IPsec IKEv2 dès la sortie de l'emballage. Pas besoin d'installer de programmes , de pilotes TUN / TAP virtuels, etc. Toute la gestion VPN provient du menu système.

Dans le même temps, la configuration sur le client peut être simplifiée en trois lignes:

  • Domaine - pour IPsec, un domaine est requis, car un certificat SSL est Ă©mis pour celui-ci
  • s'identifier
  • mot de passe

Vous n'avez plus besoin de transférer des fichiers avec des certificats et des clés vers le client, forcez-le à importer des certificats racine dans le stockage système. Un nom d'utilisateur et un mot de passe suffisent, et la connexion sera tout aussi sécurisée que dans OpenVPN lors de l'utilisation de certificats, car la connexion utilise le même certificat x.509 que pour les sites Web avec HTTPS.

Configuration sur Windows 10


L'assistant de configuration VPN est appelé à partir du menu de connexion WiFi. Un utilisateur de n'importe quelle qualification peut gérer la configuration d'une fenêtre. La connexion créée est activée à partir du menu avec une liste de réseaux WiFi.


Interface pour configurer une nouvelle connexion IKEv2 dans Windows 10

Configuration de MacOS
macOS IKEv2 10.11 (El Capitan). .

image

. .

image

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

image

/etc/ipsec.secrets

image

Configuration IOS
iOS , mobileconfig.

macOS:

-> VPN -> VPN

IKEv2 est sûr


À l'étape précédente, nous avons découvert qu'un identifiant et un mot de passe suffisaient pour configurer la connexion. Mais comment le client peut-il vérifier que la connexion n'est pas exploitée, que les données ne sont pas remplacées et que le serveur est vraiment qui il prétend être? Pour cela, des certificats SSL ordinaires sont utilisés, ce que nous avons l'habitude d'utiliser pour les sites Web et HTTPS.



Le client installe un tunnel SSL sécurisé avec le serveur, et un mot de passe de connexion est déjà transmis à l'intérieur. Par défaut, sous Windows et macOS, l'algorithme mschapv2 est utilisé pour transmettre le mot de passe. Ainsi, à l'aide d'un certificat SSL, le client vérifie l'authenticité du serveur, et en utilisant le mot de passe de connexion, le serveur vérifie l'authenticité du client.

Un serveur IKEv2 peut utiliser le même certificat avec un serveur Web, par exemple du populaire Let's Encrypt. Cela simplifie considérablement la gestion des certificats.

Le même modèle est utilisé dans OpenVPN, et si vous le souhaitez, vous pouvez utiliser un certificat de Lets Encrypt, cependant, dans tous les cas, l'administrateur devra transférer le fichier à l'utilisateur pour configurer le VPN.

Configurer le serveur IKEv2


Vous pouvez déployer votre serveur IKEv2 en quelques minutes à l'aide de scripts d'installation automatisée ou à l'aide de conteneurs prêts à l'emploi. L'utilisation de Docker n'est pas recommandée, car son sous-système réseau réduit les performances IPsec à des taux VPS bon marché. Vous pouvez également configurer le serveur IKEv2 manuellement, il y a des articles sur le Habré avec des exemples de paramètres de serveur Strongswan .

Nous utiliserons l'un des scripts de configuration automatique les plus réussis github.com/jawj/IKEv2-setup
Ce script est bon car il utilise des certificats de Lets Encrypt et génère automatiquement un certificat valide.

Étape 1: sélection du serveur


Pour démarrer le serveur VPN, nous avons besoin de VDS. La configuration la plus simple avec un seul cœur de processeur suffira. Le script de notre exemple est mieux testé sur Ubuntu 18.04, donc lors de la création du serveur, sélectionnez cette image de système d'exploitation.



Nous attendons la fin de l'installation du serveur et copions les détails de la connexion. Le mot de passe root sera envoyé par courrier électronique, ou il peut être défini manuellement via l'interface Web. Ensuite, nous entrons toutes les commandes



Étape 2: installer Strongswan


Nous sommes connectés par le client SSH et exécutons le script d'installation:

#     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-,    .

Étape 3: configuration du client


Les détails de l'utilisateur VPN saisis doivent maintenant être utilisés pour la configuration sur le client. Il est important d'utiliser exactement le nom de domaine que vous avez entré dans Hostname for VPN .

Étape 4: ajouter de nouveaux utilisateurs


Pour ajouter un nouvel utilisateur à un serveur déjà créé, modifiez le fichier /etc/ipsec.sectes.

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

Après avoir ajouté l'utilisateur, exécutez la commande ipsec secrets pour que Strongswan relise la configuration.

Conclusion


Nous avons examiné l'expérience utilisateur d'IKEv2. L'administration d'un tel serveur n'est pas plus compliquée, et parfois même plus simple qu'OpenVPN. Si vous prévoyez uniquement d'organiser l'accès à distance pour vos employés, assurez-vous de regarder vers IKEv2. Ne forcez pas vos utilisateurs à installer des programmes inutiles si tout ce dont vous avez besoin se trouve déjà sur leur ordinateur. Il est plus pratique, plus sûr et beaucoup plus avancé.


All Articles