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.