Comment mettre en place un VPN basé sur IPSec avec Strongswan sur Debian et Ubuntu

Comment mettre en place un VPN basé sur IPSec avec Strongswan sur Debian et Ubuntu

Strongswan est une implémentation VPN (réseau privé virtuel) à pleine puissance, complexe et largement utilisée, qui fonctionne sur Linux, FreeBSD, OS X, Windows, Android et iOS. C'est principalement un démon de keying qui soutient le Échange de clés Internet protocoles (Ikev1 et Ikev2) pour établir des associations de sécurité (SA) entre deux pairs.

Cet article décrit comment configurer un site à site IPSec VPN passerelles en utilisant Strongswan sur Ubuntu et Debian les serveurs. Par site à site, nous voulons dire que chaque passerelle de sécurité a un sous-réseau derrière elle. En outre, les pairs s'authentifieront mutuellement en utilisant une clé pré-partagée (PSK).

Environnement de test

N'oubliez pas de remplacer les IPs suivants par vos IP du monde réel pour configurer votre environnement.

Site 1 Gateway (Tecmint-Devgateway)

OS 1: Debian ou Ubuntu public IP: 10.20.20.1 IP privé: 192.168.0.101/24 Sous-réseau privé: 192.168.0.0/24 

Site 2 Gateway (Tecmint-Prodgateway)

OS 2: Debian ou Ubuntu public Ip: 10.20.20.3 IP privée: 10.0.2.15/24 Sous-réseau privé: 10.0.2.0/24 

Étape 1: activer le transfert de paquets de 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 / etc / sysctl.confli Fichier de configuration sur les deux passerelles de sécurité.

$ sudo vim / etc / sysctl.confli 

Recherchez les lignes suivantes et décalmentez-les et définissez leurs valeurs comme indiqué (lisez les commentaires dans le fichier pour plus d'informations).

filet.ipv4.ip_forward = 1 net.ipv6.confli.tous.transfert = 1 net.ipv4.confli.tous.accepter_redirects = 0 net.ipv4.confli.tous.send_redirects = 0 

2. Ensuite, chargez les nouveaux paramètres en exécutant la commande suivante.

$ sudo sysctl -p 
Chargez les paramètres du noyau sysctl

3. Si vous avez un service de pare-feu UFW activé, vous devez ajouter les règles suivantes au / etc / ufw / avant.règles Fichier de configuration juste avant les règles du filtre dans l'une ou l'autre des passerelles de sécurité.

Site 1 Gateway (Tecmint-Devgateway)

* Nat: Postrouting accepte [0: 0] -a Postrouting -S 10.0.2.0/24 -D 192.168.0.0/24 -J Masquerade Commit 

Site 2 Gateway (Tecmint-Prodgateway)

* Nat: Postrouting accepte [0: 0] -a Postrouting -S 192.168.0.0/24 -D 10.0.2.0/24 -J Masquerade Commit 

4. Une fois que les règles du pare-feu ont été ajoutées, appliquez les nouvelles modifications en redémarrant Ufw comme montré.

$ sudo ufw désactiver $ sudo ufw activer 

Étape 2: Installation de Strongswan dans Debian et Ubuntu

5. Mettez à jour votre cache de package sur les deux passerelles de sécurité et installez le Strongswan Package à l'aide du gestionnaire de packages APT.

$ sudo apt update $ sudo apt install Strongswan 

6. Une fois l'installation terminée, le script d'installateur démarrera le Strongswan Service et activer pour démarrer automatiquement au démarrage du système. Vous pouvez vérifier son état et s'il est activé en utilisant la commande suivante.

$ sudo systemctl status Strongswan.Service $ sudo systemctl IS-ALATIVE Strongswan.service 

Étape 3: Configuration des passerelles de sécurité

7. Ensuite, vous devez configurer les passerelles de sécurité à l'aide du / etc / ipsec.confli fichier de configuration.

Site 1 Gateway (Tecmint-Devgateway)

$ sudo cp / etc / ipsec.conf / etc / ipsec.confli.orig $ sudo nano / etc / ipsec.confli 

Copiez et collez la configuration suivante dans le fichier.

Config Configuration CharonDebug = "all" UNIQUEIDS = Oui Conn Devgateway-To-ProdGateway Type = Tunnel Auto = start keyExchange = ikev2 authby = secret Left = 10.20.20.1 LeftSubnet = 192.168.0.101/24 à droite = 10.20.20.3 RightsUbnet = 10.0.2.15/24 IKE = AES256-SHA1-MODP1024! ESP = AES256-SHA1! agressif = pas de keyingtries =% pour toujours 

Site 2 Gateway (Tecmint-Prodgateway)

$ sudo cp / etc / ipsec.conf / etc / ipsec.confli.orig $ sudo nano / etc / ipsec.confli 

Copiez et collez la configuration suivante dans le fichier.

Config Configuration CharonDebug = "all" UNIQUEIDS = Oui Conn prodgateway-to-devgateway Type = Tunnel Auto = start keyExchange = ikev2 authby = secret gauche = 10.20.20.3 LeftSubnet = 10.0.2.15/24 à droite = 10.20.20.1 RightsUbnet = 192.168.0.101/24 IKE = AES256-SHA1-MODP1024! ESP = AES256-SHA1! agressif = pas de keyingtries =% pour toujours 

Voici la signification de chaque paramètre de configuration:

  • Configuration de la configuration - Spécifie les informations de configuration générales pour IPSec qui s'applique à toutes les connexions.
  • charondebug - Définit la quantité de débogage de la sortie de Charon doit être enregistrée.
  • UNIQUEIDS - Spécifie si un identifiant de participant particulier doit être tenu unique.
  • Conn Prodgateway-to-Devgateway - Définit le nom de la connexion.
  • taper - 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 devraient s'authentifier les uns les autres.
  • gauche - Définit l'adresse IP de l'interface de réseau public du participant gauche.
  • Leftsubt - déclare le sous-réseau privé derrière le participant gauche.
  • droite - Spécifie l'adresse IP de l'interface de réseau public du bon participant.
  • RightBnet - déclare le sous-réseau privé derrière le participant gauche.
  • ike - Définit une liste des algorithmes de chiffrement / d'authentification Ike / Isakmp SA à utiliser. Vous pouvez ajouter une liste séparée par des virgules.
  • en particulier - Définit une liste des algorithmes ESP de chiffrement / d'authentification à utiliser pour la connexion. Vous pouvez ajouter une liste séparée par des virgules.
  • agressif - indique si vous devez utiliser le mode agressif ou principal.
  • saillie - indique le nombre de tentatives qui devraient être faites pour négocier une connexion.
  • ikelifetime - indique combien de temps le canal de saisie d'une connexion devrait durer avant d'être renégocié.
  • durée de vie - Définit la durée d'une instance particulière d'une connexion, de la négociation réussie à l'expiration.
  • dpddelay - Spécifie l'intervalle de temps avec lequel R_U_ETHERE Messages / échanges d'information sont envoyés au pair.
  • dpdtimeout - Spécifie l'intervalle de délai d'expiration, après quoi toutes les connexions à un pair sont supprimées en cas d'inactivité.
  • dpdaction - Définit comment utiliser le protocole de détection des pairs morts (DPD) pour gérer la connexion.

Pour plus d'informations sur les paramètres de configuration ci-dessus, lisez le ipsec.confli Page de l'homme en exécutant la commande.

$ man ipsec.confli 

Étape 4: Configuration de l'authentification PSK pour les pairs

8. Après avoir configuré les deux passerelles de sécurité, générez un PSK à utiliser par les pairs en utilisant la commande suivante.

$ head -c 24 / dev / urandom | base64 
Générer la clé PSK

9. Ensuite, ajoutez le PSK dans le / etc / ipsec.secrets fichier 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 =" 

dix. Redémarrer le Ipsec Programmez et vérifiez son statut pour afficher les connexions.

$ sudo ipsec redémarrer $ sudo ipsec statut 
Afficher l'état de la connexion IPSec

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 de ping.

$ ping 192.168.0.101 $ ping 10.0.2.15 
Vérifiez la configuration VPN de site à site

12. De plus, vous pouvez vous arrêter et démarrer IPSec comme indiqué.

$ sudo ipsec stop $ sudo ipsec start 

13. Pour en savoir plus sur les commandes IPSEC pour afficher manuellement les connexions et plus encore, voir 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 Ubuntu et Debian Serveurs, où les deux passerelles de sécurité ont été configurées pour s'authentifier mutuellement à l'aide d'un PSK. Si vous avez des questions ou des réflexions à partager, atteignez-nous via le formulaire de rétroaction ci-dessous.