strongSwan est une implémentation VPN (Virtual Private Network) basée sur IPsec, open-source, multiplateforme, complète et largement utilisée qui s’exécute sur Linux, FreeBSD, OS X, Windows, Android et iOS. C’est principalement un démon de clé qui prend en charge les protocoles d’échange de clés Internet (Internet Key Exchange) (IKEv1 et IKEv2) pour établir des associations de sécurité (SA) entre deux pairs.
Cet article décrit comment configurer des passerelles VPN IPSec site à site en utilisant strongSwan sur des serveurs Ubuntu et Debian. Par site à site, nous entendons que chaque passerelle de sécurité a un sous-réseau derrière elle. De plus, les pairs s’authentifieront mutuellement en utilisant une clé pré-partagée (PSK).
Environnement de test
N’oubliez pas de remplacer les adresses IP suivantes par vos adresses IP réelles pour configurer votre environnement.
Passerelle du Site 1 (tecmint-devgateway)
OS 1: Debian or Ubuntu Public IP: 10.20.20.1 Private IP: 192.168.0.101/24 Private Subnet: 192.168.0.0/24
Passerelle du Site 2 (tecmint-prodgateway)
OS 2: Debian or Ubuntu Public IP: 10.20.20.3 Private IP: 10.0.2.15/24 Private Subnet: 10.0.2.0/24
Étape 1 : Activation du transfert de paquets du noyau
1. Tout d’abord, vous devez configurer le noyau pour activer le transfert de paquets en ajoutant les variables système appropriées dans le fichier de configuration /etc/sysctl.conf sur les deux passerelles de sécurité.
$ sudo vim /etc/sysctl.conf
Recherchez les lignes suivantes, décommentez-les et définissez leurs valeurs comme indiqué (lisez les commentaires dans le fichier pour plus d’informations).
net.ipv4.ip_forward = 1 net.ipv6.conf.all.forwarding = 1 net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.all.send_redirects = 0
2. Ensuite, chargez les nouveaux paramètres en exécutant la commande suivante.
$ sudo sysctl -p

3. Si vous avez un service de pare-feu UFW activé, vous devez ajouter les règles suivantes au fichier de configuration /etc/ufw/before.rules juste avant les règles de filtrage dans les passerelles de sécurité.
Passerelle du site 1 (tecmint-devgateway)
*nat :POSTROUTING ACCEPT [0:0] -A POSTROUTING -s 10.0.2.0/24 -d 192.168.0.0/24 -j MASQUERADE COMMIT
Passerelle du site 2 (tecmint-prodgateway)
*nat :POSTROUTING ACCEPT [0:0] -A POSTROUTING -s 192.168.0.0/24 -d 10.0.2.0/24 -j MASQUERADE COMMIT
4. Une fois les règles du pare-feu ajoutées, appliquez les nouveaux changements en redémarrant UFW comme indiqué.
$ sudo ufw disable $ sudo ufw enable
Étape 2 : Installation de strongSwan dans Debian et Ubuntu
5. Mettez à jour votre cache de paquets sur les deux passerelles de sécurité et installez le paquet strongswan en utilisant le gestionnaire de paquets APT.
$ sudo apt update $ sudo apt install strongswan
6. Une fois l’installation terminée, le script d’installation démarrera le service strongswan et le configurera pour démarrer automatiquement au démarrage du système. Vous pouvez vérifier son statut et s’il est activé en utilisant la commande suivante.
$ sudo systemctl status strongswan.service $ sudo systemctl is-enabled strongswan.service
Étape 3 : Configuration des passerelles de sécurité
7. Ensuite, vous devez configurer les passerelles de sécurité en utilisant le fichier de configuration /etc/ipsec.conf.
Passerelle du site 1 (tecmint-devgateway)
$ sudo cp /etc/ipsec.conf /etc/ipsec.conf.orig $ sudo nano /etc/ipsec.conf
Copiez et collez la configuration suivante dans le fichier.
config setup charondebug="all" uniqueids=yes conn devgateway-to-prodgateway type=tunnel auto=start keyexchange=ikev2 authby=secret left=10.20.20.1 leftsubnet=192.168.0.101/24 right=10.20.20.3 rightsubnet=10.0.2.15/24 ike=aes256-sha1-modp1024! esp=aes256-sha1! aggressive=no keyingtries=%forever ikelifetime=28800s lifetime=3600s dpddelay=30s dpdtimeout=120s dpdaction=restart
Passerelle du site 2 (tecmint-prodgateway)
$ sudo cp /etc/ipsec.conf /etc/ipsec.conf.orig $ sudo nano /etc/ipsec.conf
Collez la configuration suivante dans le fichier.
config setup charondebug="all" uniqueids=yes conn prodgateway-to-devgateway type=tunnel auto=start keyexchange=ikev2 authby=secret left=10.20.20.3 leftsubnet=10.0.2.15/24 right=10.20.20.1 rightsubnet=192.168.0.101/24 ike=aes256-sha1-modp1024! esp=aes256-sha1! aggressive=no keyingtries=%forever ikelifetime=28800s lifetime=3600s dpddelay=30s dpdtimeout=120s dpdaction=restart
Voici la signification de chaque paramètre de configuration:
- config setup – spécifie des informations de configuration générales pour IPSec qui s’appliquent à toutes les connexions.
- charondebug – définit la quantité de sortie de débogage de Charon à enregistrer.
- uniqueids – spécifie si un identifiant de participant particulier doit être conservé unique.
- conn prodgateway-to-devgateway – définit le nom de la connexion.
- type – définit le type de connexion.
- auto – comment gérer la connexion lorsque IPSec est démarré ou redémarré.
- keyexchange – définit la version du protocole IKE à utiliser.
- authby – définit comment les pairs doivent s’authentifier mutuellement.
- left – définit l’adresse IP de l’interface réseau public du participant de gauche.
- leftsubnet – indique le sous-réseau privé derrière le participant de gauche.
- right – spécifie l’adresse IP de l’interface réseau public du participant de droite.
- rightsubnet – indique le sous-réseau privé derrière le participant de gauche.
- ike – définit une liste d’algorithmes de chiffrement/authentification SA IKE/ISAKMP à utiliser. Vous pouvez ajouter une liste séparée par des virgules.
- esp – définit une liste d’algorithmes de chiffrement/authentification ESP à utiliser pour la connexion. Vous pouvez ajouter une liste séparée par des virgules.
- aggressive – indique s’il faut utiliser le mode Aggressif ou le mode Principal.
- keyingtries – indique le nombre de tentatives qui doivent être faites pour négocier une connexion.
- ikelifetime – indique combien de temps le canal de chiffrement d’une connexion doit durer avant d’être renégocié.
- lifetime – définit combien de temps une instance particulière d’une connexion doit durer, de la négociation réussie à l’expiration.
- dpddelay – spécifie l’intervalle de temps auquel les messages R_U_THERE/échanges INFORMATIONNELS sont envoyés au pair.
- dpdtimeout – spécifie l’intervalle de temps d’attente, après lequel toutes les connexions à un pair sont supprimées en cas d’inactivité.
- dpdaction – définit comment utiliser le protocole de détection de pair mort (DPD) pour gérer la connexion.
Pour plus d’informations sur les paramètres de configuration ci-dessus, consultez la page de manuel ipsec.conf en exécutant la commande.
$ man ipsec.conf
Étape 4 : Configuration de PSK pour l’authentification pair à pair
8. Après avoir configuré les deux passerelles de sécurité, générez une clé secrète PSK à utiliser par les pairs en utilisant la commande suivante.
$ head -c 24 /dev/urandom | base64

9. Ensuite, ajoutez le PSK dans le fichier /etc/ipsec.secrets sur les deux passerelles.
$ sudo vim /etc/ipsec.secrets
Copiez et collez la ligne suivante.
------- Site 1 Gateway (tecmint-devgateway) ------- 10.20.20.1 10.20.20.3 : PSK "qLGLTVQOfqvGLsWP75FEtLGtwN3Hu0ku6C5HItKo6ac=" ------- Site 2 Gateway (tecmint-prodgateway) ------- 10.20.20.3 10.20.20.1 : PSK "qLGLTVQOfqvGLsWP75FEtLGtwN3Hu0ku6C5HItKo6ac="
10. Redémarrez le programme IPSec et vérifiez son état pour voir les connexions.
$ sudo ipsec restart $ sudo ipsec status

11. Enfin, vérifiez que vous pouvez accéder aux sous-réseaux privés à partir de l’une ou l’autre des passerelles de sécurité en exécutant une commande ping.
$ ping 192.168.0.101 $ ping 10.0.2.15

12. De plus, vous pouvez arrêter et démarrer IPSec comme indiqué.
$ sudo ipsec stop $ sudo ipsec start
13. Pour en savoir plus sur les commandes IPSec pour établir manuellement des connexions et plus encore, consultez la page d’aide IPSec.
$ ipsec --help
C’est tout ! Dans cet article, nous avons décrit comment configurer un VPN IPSec de site à site en utilisant strongSwan sur les serveurs Ubuntu et Debian, où les deux passerelles de sécurité étaient configurées pour s’authentifier mutuellement en utilisant un PSK. Si vous avez des questions ou des réflexions à partager, contactez-nous via le formulaire de feedback ci-dessous.
Source:
https://www.tecmint.com/setup-ipsec-vpn-with-strongswan-on-debian-ubuntu/