Recherche de site Web

Comment configurer un VPN basé sur IPsec avec Strongswan sur CentOS/RHEL 8


strongSwan est une solution VPN open source, multiplateforme, moderne et complète basée sur IPsec pour Linux qui fournit une prise en charge complète de Internet Key Exchange (à la fois IKEv1 et IKEv2) pour établir des associations de sécurité (SA) entre deux homologues. Il est complet, modulaire de par sa conception et propose des dizaines de plugins qui améliorent les fonctionnalités de base.

Article connexe : Comment configurer un VPN basé sur IPsec avec Strongswan sur Debian et Ubuntu

Dans cet article, vous apprendrez comment configurer des passerelles VPN IPsec de site à site à l'aide de strongSwan sur des serveurs CentOS/RHEL 8. Cela permet aux homologues de s'authentifier mutuellement à l'aide d'une clé pré-partagée forte (PSK). Une configuration de site à site signifie que chaque passerelle de sécurité dispose d'un sous-réseau derrière elle.

Environnement de test

N'oubliez pas d'utiliser vos adresses IP réelles lors des configurations tout en suivant le guide.

Passerelle du site 1
Public IP: 192.168.56.7
Private IP: 10.10.1.1/24
Private Subnet: 10.10.1.0/24
Passerelle du site 2
Public IP:  192.168.56.6
Private IP: 10.20.1.1/24
Private Subnet: 10.20.1.0/24

Étape 1 : Activation du transfert IP du noyau dans CentOS 8

1. Commencez par activer la fonctionnalité de transfert IP du noyau dans le fichier de configuration /etc/sysctl.conf sur les deux passerelles VPN.

vi /etc/sysctl.conf

Ajoutez ces lignes dans le fichier.

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. Après avoir enregistré les modifications dans le fichier, exécutez la commande suivante pour charger les nouveaux paramètres du noyau lors de l'exécution.

sysctl -p

3. Ensuite, créez une route statique permanente dans le fichier /etc/sysconfig/network-scripts/route-eth0 sur les deux passerelles de sécurité.

vi /etc/sysconfig/network-scripts/route-eth0

Ajoutez la ligne suivante dans le fichier.

#Site 1 Gateway
10.20.1.0/24  via 192.168.56.7

#Site 2 Gateway
10.10.1.0/24 via 192.168.56.6

4. Redémarrez ensuite le gestionnaire de réseau pour appliquer les nouvelles modifications.

systemctl restart NetworkManager

Étape 2 : Installation de strongSwan dans CentOS 8

5. Le package strongswan est fourni dans le référentiel EPEL. Pour l'installer, vous devez activer le référentiel EPEL, puis installer strongwan sur les deux passerelles de sécurité.

dnf install epel-release
dnf install strongswan

6. Pour vérifier la version de strongswan installée sur les deux passerelles, exécutez la commande suivante.

strongswan version

7. Ensuite, démarrez le service strongswan et activez-le pour qu'il démarre automatiquement au démarrage du système. Vérifiez ensuite l'état des deux passerelles de sécurité.

systemctl start strongswan 
systemctl enable strongswan
systemctl status strongswan

Remarque : La dernière version de strongswan dans CentOS/REHL 8 prend en charge les deux swanctl (un nouvel utilitaire de ligne de commande portable introduit avec strongSwan 5.2.0, utilisé pour configurer, contrôler et surveiller le démon IKE Charon à l'aide du plugin vici) et starter (ou ipsec) utilisant le plugin Stroke obsolète.

8. Le répertoire de configuration principal est /etc/strongswan/ qui contient les fichiers de configuration pour les deux plugins :

ls /etc/strongswan/

Pour ce guide, nous utiliserons l'utilitaire IPsec qui est invoqué à l'aide de la commande strongswan et de l'interface Stroke. Nous utiliserons donc les fichiers de configuration suivants :

  • /etc/strongswan/ipsec.conf – fichier de configuration pour le sous-système strongSwan IPsec.
  • /etc/strongswan/ipsec.secrets – fichier secrets.

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

9. Dans cette étape, vous devez configurer les profils de connexion sur chaque passerelle de sécurité pour chaque site à l'aide du fichier de configuration /etc/strongswan/ipsec.conf strongswan.

Configuration du profil de connexion du site 1

cp /etc/strongswan/ipsec.conf /etc/strongswan/ipsec.conf.orig
vi /etc/strongswan/ipsec.conf

Copiez et collez la configuration suivante dans le fichier.

config setup
        charondebug="all"
        uniqueids=yes
conn ateway1-to-gateway2
        type=tunnel
        auto=start
        keyexchange=ikev2
        authby=secret
        left=192.168.56.7
        leftsubnet=10.10.1.1/24
        right=192.168.56.6
        rightsubnet=10.20.1.1/24
        ike=aes256-sha1-modp1024!
        esp=aes256-sha1!
        aggressive=no
        keyingtries=%forever
        ikelifetime=28800s
        lifetime=3600s
        dpddelay=30s
        dpdtimeout=120s
        dpdaction=restart

Configuration du profil de connexion du site 2

cp /etc/strongswan/ipsec.conf /etc/strongswan/ipsec.conf.orig
vi /etc/strongswan/ipsec.conf

Copiez et collez la configuration suivante dans le fichier :

config setup
        charondebug="all"
        uniqueids=yes
conn 2gateway-to-gateway1
        type=tunnel
        auto=start
        keyexchange=ikev2
        authby=secret
        left=192.168.56.6
        leftsubnet=10.20.1.1/24
        right=192.168.56.7
        rightsubnet=10.10.1.1/24
        ike=aes256-sha1-modp1024!
        esp=aes256-sha1!
        aggressive=no
        keyingtries=%forever
        ikelifetime=28800s
        lifetime=3600s
        dpddelay=30s
        dpdtimeout=120s
        dpdaction=restart

Décrivons brièvement chacun des paramètres de configuration ci-dessus :

  • configuration : définit les informations de configuration générales pour IPSec qui s'appliquent à toutes les connexions.
  • charondebug – spécifie la quantité de sortie de débogage Charon qui doit être enregistrée.
  • uniqueids : définit si un identifiant de participant particulier doit rester unique.
  • conn gateway1-to-gateway2 – utilisé pour définir le nom de la connexion.
  • type – définit le type de connexion.
  • Auto – utilisé pour déclarer comment gérer la connexion lorsque IPSec est démarré ou redémarré.
  • keyexchange – déclare la version du protocole IKE à utiliser.
  • authby : spécifie comment les homologues doivent s'authentifier mutuellement.
  • gauche : déclare l'adresse IP de l'interface de réseau public du participant de gauche.
  • leftsubnet – déclare le sous-réseau privé derrière le participant de gauche.
  • right : déclare l'adresse IP de l'interface de réseau public du bon participant.
  • rightsubnet – déclare le sous-réseau privé derrière le participant de gauche.
  • ike – utilisé pour déclarer une liste d’algorithmes de chiffrement/authentification IKE/ISAKMP SA à utiliser. Notez qu'il peut s'agir d'une liste séparée par des virgules.
  • esp – spécifie une liste d'algorithmes de cryptage/authentification ESP à utiliser pour la connexion.
  • agressif – indique s'il faut utiliser le mode agressif ou principal.
  • keyingtries – déclare le nombre de tentatives qui doivent être effectuées pour négocier une connexion.
  • ikelifetime – spécifie la durée pendant laquelle le canal de saisie d'une connexion doit durer avant d'être renégocié.
  • durée de vie : spécifie la durée pendant laquelle une instance particulière de connexion doit durer, depuis la négociation réussie jusqu'à l'expiration.
  • dpddelay – déclare l'intervalle de temps avec lequel les messages R_U_THERE/échanges INFORMATIONNELS sont envoyés au homologue.
  • dpdtimeout – utilisé pour déclarer l'intervalle de délai d'attente, après lequel toutes les connexions à un homologue sont supprimées en cas d'inactivité.
  • dpdaction : spécifie comment utiliser le protocole Dead Peer Detection (DPD) pour gérer la connexion.

Vous pouvez trouver une description de tous les paramètres de configuration du sous-système strongSwan IPsec en lisant la page de manuel ipsec.conf.

man ipsec.conf

Étape 4 : Configuration de PSK pour l'authentification peer-to-peer

10. Ensuite, vous devez générer un PSK fort qui sera utilisé par les pairs pour l'authentification comme suit.

head -c 24 /dev/urandom | base64

11. Ajoutez le PSK dans le fichier /etc/strongswan/ipsec.conf sur les deux passerelles de sécurité.

vi /etc/strongswan/ipsec.secrets

Entrez la ligne suivante dans le fichier.

#Site 1 Gateway
192.168.56.7  192.168.56.6 : PSK "0GE0dIEA0IOSYS2o22wYdicj/lN4WoCL"

#Site 1 Gateway
192.168.56.6  192.168.56.7 : PSK "0GE0dIEA0IOSYS2o22wYdicj/lN4WoCL"

12. Démarrez ensuite le service strongsan et vérifiez l'état des connexions.

systemctl restart strongswan
strongswan status

13. Testez si 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 10.20.1.1
ping 10.10.1.1

14. Enfin et surtout, pour en savoir plus sur les commandes strongswan permettant d'activer/désactiver manuellement les connexions et plus encore, consultez la page d'aide de strongswan.

strongswan --help

C'est tout pour le moment! Pour partager vos réflexions avec nous ou poser des questions, contactez-nous via le formulaire de commentaires ci-dessous. Et pour en savoir plus sur le nouvel utilitaire swanctl et la nouvelle structure de configuration plus flexible, consultez la documentation utilisateur strongSwan.