GNU/Linux >> Tutoriels Linux >  >> Ubuntu

VPN Ipsec basé sur Libreswan utilisant des clés pré-partagées et RSA sur Ubuntu

Dans ce tutoriel, LibreSwan sera installé sur la plate-forme Ubuntu. LibreSwan est une implémentation open source du protocole IPsec, il est basé sur le projet FreeSwan et est disponible en tant que package prêt à l'emploi sur les distributions Linux basées sur RedHat. Cependant, des instructions détaillées sont données dans le code source du projet pour le compiler sur d'autres plates-formes Linux. Après le processus d'installation, une passerelle vers un VPN IPsec basé sur une passerelle sera configurée pour sécuriser les données de l'expéditeur vers les pairs destinataires.

Des détails sur le protocole IPsec sont donnés dans notre article précédent. Cependant, une brève information sur les deux parties du protocole IPsec par rapport à LibreSwan est expliquée ci-dessous.

Un VPN basé sur IPsec se compose de Internet Keying Exchange protocole et Encapsulating Security Payload (ESP).

-->  IKE

Comme son nom l'indique, le but du protocole IKE est d'authentifier (à l'aide d'une clé pré-partagée, de la cryptographie à clé publique, du freeradius) les pairs d'un VPN, de générer dynamiquement des clés et de partager les clés avec les pairs VPN. Les clés de chiffrement pour la deuxième phase de l'IPsec dépendent également d'IKE. Libreswan implémente le protocole IKE en utilisant le programme pluto du projet.

-->  ESP

Le protocole ESP est la spécification réelle de la politique convenue par les pairs qui est implémentée dans la pile IPsec du noyau Linux (NETEY/XFRM).

Fonctionnalités de Libreswan

  • Prise en charge de l'authentification basée sur une clé pré-partagée.
  • Prise en charge de l'authentification basée sur une clé publique.
  • Prend en charge les versions IKE v1/v2 de l'échange de clés.
  • Bibliothèque de chiffrement NSS prise en charge.
  • Xauth et DNSSec sont également pris en charge.

Packages requis pour Ubuntu 16.04

Il est nécessaire d'installer les packages suivants sur Ubuntu pour une compilation réussie de LibreSwan. Une brève information est également donnée dans le code source pour activer ou désactiver les plugins/fonctionnalités et commandes lorsque vous installez LibreSwan.

apt-get -y update
apt-get install  libunbound-dev libevent-dev  libsystemd-dev libnss3-dev libnspr4-dev pkg-config \ libpam0g-dev libcap-ng-dev libcap-ng-utils libselinux1-dev libcurl4-nss-dev flex bison gcc make libnss3-tools

L'installation des packages requis est illustrée ci-dessous.

Le dernier code source de l'outil IPsec est téléchargé à l'aide de la commande wget et extrait à l'aide de la commande tar suivante.

wget https://download.libreswan.org/libreswan-3.20.tar.gz
tar -xzf libreswan-3.20.tar.gz
cd libreswan-3.20

Il n'est pas nécessaire d'exécuter la commande configure, exécutez simplement le make commande qui montrera deux façons de construire LibreSwan comme indiqué ci-dessous.

Enfin, exécutez make all  commande pour compiler LibreSwan sur la plateforme.

make all

Maintenant, lancez make install commande pour installer le programme IPsec.

Démarrage du service IPsec

Comme indiqué dans la capture d'écran ci-dessus, il est nécessaire d'activer le service IPSec sur la plate-forme Ubuntu à l'aide de la commande suivante.

systemctl enable ipsec.service

Il est nécessaire d'initialiser la bibliothèque de chiffrement NSS avant de démarrer le service IPsec. Il est utilisé par LibreSwan pour l'utilisation de l'algorithme cryptographique dans le VPN IPsec.

IPsec initnss

Enfin, démarrez le service IPSec à l'aide de la commande suivante.

ipsec setup start

Exécutezétat ipsec commande pour afficher les paramètres de LibreSwan sur la plate-forme Ubuntu.

ipsec status

Configuration LibreSwan

Dans ce tutoriel, un VPN IPsec sera mis en place entre pairs à l'aide d'une clé pré-partagée et de clés RSA (paire de clés publique/privée). La configuration des deux pairs (gauche/droite) est donnée ci-dessous.

VPN basé sur une clé prépartagée

ipsec.conf (configuration file of left VM)              ipsec.secrets  (configuration file of left VM)

version 2                                                                        192.168.15.145 192.168.15.245 :PSK "vpn_psk123"

configuration                                                      
                 protostack=netkey
conn vpn_psk

                  ike=aes256-sha256;modp4096
                  phase2alg=aes256-sha256;modp4096
                  left=192.168.15.145
                  leftsubnet=172.16.10.0/24
                  right=192.168.15.245
                  rightsubnet=192.169.50.0/24
                  authby=secret
                  type=tunnel
                  auto=start

ipsec.conf (configuration file of right VM)              ipsec.secrets  (configuration file of right VM)

version 2                                                                       192.168.15.245 192.168.15.145 :PSK "vpn_psk123"

configuration                                                      
                 protostack=netkey
conn vpn_psk

         ike=aes256-sha256;modp4096
         phase2alg=aes256-sha256;modp4096
         gauche=192.168.15.245
         leftsubnet=192.169.50.0/24
         right=192.168.15.145
         rightsubnet=172.16.10.0/24
         authby=secret
         type=tunnel
         auto=démarrage

Après avoir défini la configuration ci-dessus dans les fichiers ipsec.conf et ipsec.secrets, exécutez la commande suivante des deux côtés pour démarrer le processus de négociation IPSec.

ipsec restart

État du VPN à clé prépartagée

La sortie de statut ipsec et setkey -D les commandes sont présentées ci-dessous.

ipsec status

setkey -D

VPN basé sur une clé RSA (publique/privée)

Il est nécessaire de générer des clés RSA pour les deux machines et de les inclure dans le fichier de configuration. La version réduite d'une clé RSA est présentée dans ce didacticiel. Assurez-vous également que la clé publique incluse doit figurer sur une seule ligne.

Génération des clés RSA

Comme indiqué ci-dessous, les commandes suivantes sont utilisées pour générer des clés pour les deux pairs.

 ipsec newhostkey --output /etc/ipsec.secrets

La clé publique générée est ajoutée dans le fichier ipsec.secrets comme indiqué ci-dessous.

De même, les clés RSA sont générées à l'aide de la même commande pour la machine du côté droit, comme indiqué dans l'instantané suivant.

Comme indiqué ci-dessus, les commandes de génération de clé incluent automatiquement la clé publique RSA dans /etc/ipsec.secrets sur les deux machines homologues. La clé privée de RSA est stockée dans la base de données de NSS sous  /etc/ipsec.d/*.db fichiers.

Après avoir généré les clés RSA, l'étape suivante modifie la configuration des deux machines dans le fichier ipsec.conf.

ipsec.conf (configuration file of left VM)             

version 2                                                                        

configuration                                                      
                 protostack=netkey
conn vpn_rsa

                  ike=aes256-sha256;modp4096
                  phase2alg=aes256-sha256;modp4096
                  left=192.168.15.145
                  leftsubnet=172.16.10.0/24
                  right=192.168.15.245
                  rightsubnet=192.169.50.0/24
                  authby=rsasig
                 leftrsasigkey=0sAQPgMUjAb8QOQaJ1FTkIQf3f[........]ALQNXUf$
                  rightrsasigkey=0sAQOs7aPh6LppUGgC454+W[........]fSd2zQE

                  type=tunnel
                  auto=start

ipsec.conf (configuration file of right VM)              

version 2                                                                        

configuration                                                      
                 protostack=netkey
conn vpn_rsa

         ike=aes256-sha256;modp4096
         phase2alg=aes256-sha256;modp4096
         gauche=192.168.15.245
         leftsubnet=192.169.50.0/24
         right=192.168.15.145
         rightsubnet=172.16.10.0/24
         authby=rsasig
         rightrsasigkey=0sAQPgMUjAb8QOQaJ1FTkIQf3f[........]ALQNXUf$
         leftrsasigkey=0sAQOs7aPh6LppUGgC454+W[........]fSd2zQE

         type=tunnel
         auto=démarrage

Après avoir modifié les fichiers de configuration de LibreSwan, l'étape suivante consiste à redémarrer le service IPsec sur les deux machines à l'aide de la commande suivante.

ipsec restart

L'état du VPN IPsec sur l'appareil de gauche est illustré dans la capture d'écran suivante. Cela montre que RSASIG est utilisé dans la politique pour authentifier les pairs du tunnel IPsec.

Le but de ce tutoriel est d'explorer "LibreSwan" qui fournit l'implémentation du protocole IPsec. Il est disponible dans les distributions RedHat, mais il peut être facilement compilé pour une autre plate-forme telle qu'Ubuntu/Debian. Dans cet article, le premier outil LibreSwan est construit à partir de la source, puis deux VPN configurés à l'aide de clés pré-partagées et RSA entre les appareils de passerelle.


Ubuntu
  1. VPN IPsec basé sur StrongSwan utilisant des certificats et une clé pré-partagée sur Ubuntu 16.04

  2. Comment installer et configurer Algo VPN Server sur Ubuntu 20.04

  3. Utilisation d'ATA sur Ethernet (AoE) sur Ubuntu 12.10 (initiateur et cible)

  4. Utiliser Ansible pour installer et configurer Elasticsearch sur Ubuntu 20.04

  5. Ubuntu - Comment faire défiler dans un terminal Ubuntu à l'aide des touches fléchées ?

Comment rechercher et supprimer des fichiers en double dans Ubuntu à l'aide de Fdupes

Utilisation de Yarn sur Ubuntu et d'autres distributions Linux

Utilisation de fichiers et de dossiers sur l'écran du bureau dans Ubuntu

Trucs et astuces pour utiliser Ctrl + Z dans Ubuntu Linux

Les touches de raccourci d'Ubuntu 18.04 n'enregistrent pas les captures d'écran ?

Comment utiliser apt-get reinstall sur Debian et Ubuntu