Un VPN vous permet d'accéder à Internet en toute sécurité sur un réseau Wi-Fi public non fiable. Vous pouvez vous connecter à des serveurs VPN distants à l'aide de la connexion cryptée et surfer sur le Web de manière anonyme.
strongSwan est gratuit, open-source et l'implémentation de réseau privé virtuel basée sur IPsec la plus largement utilisée, vous permettant de créer un tunnel sécurisé chiffré entre deux ou plusieurs réseaux distants.
strongSwan utilise le protocole IKEv2, qui permet un tunnel IPSec direct entre le serveur et le client. strongSwan signifie Strong Secure WAN et prend en charge les deux versions d'échange de clé automatique dans IPsec VPN, IKE V1 et V2.
Dans ce tutoriel, nous allons vous montrer comment installer et configurer strongSwan VPN sur Ubuntu 18.04.
Prérequis
- Un nouveau VPS Ubuntu 18.04 sur la plate-forme cloud Atlantic.Net.
- Un mot de passe root configuré sur votre serveur.
Étape 1 - Créer un serveur cloud Atlantic.Net
Tout d'abord, connectez-vous à votre serveur Atlantic.Net Cloud. Créez un nouveau serveur en choisissant Ubuntu 18.04 comme système d'exploitation avec au moins 1 Go de RAM. Connectez-vous à votre serveur cloud via SSH et connectez-vous à l'aide des informations d'identification mises en évidence en haut de la page.
Une fois connecté à votre serveur Ubuntu 18.04, exécutez la commande suivante pour mettre à jour votre système de base avec les derniers packages disponibles.
apt-get update -y
Étape 2 :Activer le transfert de paquets du noyau
Tout d'abord, vous devrez configurer le noyau pour activer le transfert de paquets pour IPv4. Vous pouvez le configurer en éditant le fichier /etc/sysctl.conf :
nano /etc/sysctl.conf
Ajoutez les lignes suivantes à la fin du 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
Enregistrez et fermez le fichier. Ensuite, exécutez la commande suivante pour recharger les paramètres :
sysctl -p
Étape 3 - Installer strongSwan
Tout d'abord, vous devrez installer le démon strongSwan IPSec sur votre système. Vous pouvez l'installer en exécutant simplement la commande suivante :
apt-get install strongswan libcharon-extra-plugins strongswan-pki -y
Une fois l'installation terminée, vous pouvez passer à l'étape suivante.
Étape 4 – Configuration d'une autorité de certification
Vous devrez maintenant générer le certificat et la clé du serveur VPN pour que le client VPN vérifie l'authenticité du serveur VPN.
Tout d'abord, générez une clé privée pour auto-signer le certificat CA à l'aide d'un utilitaire PKI :
ipsec pki --gen --size 4096 --type rsa --outform pem > ca.key.pem
Ensuite, créez votre autorité de certification racine et utilisez la clé ci-dessus pour signer le certificat racine :
ipsec pki --self --in ca.key.pem --type rsa --dn "CN=VPN Server CA" --ca --lifetime 3650 --outform pem > ca.cert.pem
Ensuite, vous devrez créer un certificat et une clé pour le serveur VPN afin que le client puisse vérifier l'authenticité du serveur à l'aide du certificat CA que nous venons de générer.
Commencez par créer une clé privée pour le serveur VPN avec la commande suivante :
ipsec pki --gen --size 4096 --type rsa --outform pem > server.key.pem
Ensuite, générez le certificat du serveur en exécutant la commande suivante :
ipsec pki --pub --in server.key.pem --type rsa | ipsec pki --issue --lifetime 2750 --cacert ca.cert.pem --cakey ca.key.pem --dn "CN=vpn.example.com" --san="vpn.example.com" --flag serverAuth --flag ikeIntermediate --outform pem > server.cert.pem
Ensuite, vous devrez copier le certificat ci-dessus dans les répertoires de certificats IPSec respectifs, comme indiqué ci-dessous :
mv ca.cert.pem /etc/ipsec.d/cacerts/ mv server.cert.pem /etc/ipsec.d/certs/ mv ca.key.pem /etc/ipsec.d/private/ mv server.key.pem /etc/ipsec.d/private/
À ce stade, tous les certificats sont prêts et vous pouvez maintenant passer à l'étape suivante.
Étape 5 - Configurer strongSwan
strongSwan a un fichier de configuration par défaut situé dans /etc/ipsec.conf. Il est recommandé de renommer le fichier de configuration par défaut et de créer un nouveau fichier.
Pour renommer le fichier de configuration par défaut, exécutez la commande suivante :
mv /etc/ipsec.conf /etc/ipsec.conf.bak
Ensuite, créez un nouveau fichier de configuration comme indiqué ci-dessous :
nano /etc/ipsec.conf
Ajoutez les lignes suivantes :
config setup charondebug="ike 2, knl 2, cfg 2, net 2, esp 2, dmn 2, mgr 2" strictcrlpolicy=no uniqueids=yes cachecrls=no conn ipsec-ikev2-vpn auto=add compress=no type=tunnel # defines the type of connection, tunnel. keyexchange=ikev2 fragmentation=yes forceencaps=yes dpdaction=clear dpddelay=300s rekey=no left=%any [email protected] # if using IP, define it without the @ sign leftcert=server.cert.pem # reads the VPN server cert in /etc/ipsec.d/certs leftsendcert=always leftsubnet=0.0.0.0/0 right=%any rightid=%any rightauth=eap-mschapv2 rightsourceip=192.168.0.0/24 rightdns=8.8.8.8 DNS to be assigned to clients rightsendcert=never eap_identity=%identity # defines the identity the client uses to reply to an EAP Identity request.
Enregistrez et fermez le fichier lorsque vous avez terminé.
Où :
configuration : Spécifie les informations de configuration générales pour IPSec qui s'appliquent à toutes les connexions.
charondebug : Définit la quantité de sortie de débogage Charon à enregistrer.
leftid : Spécifie le nom de domaine ou l'adresse IP du serveur.
leftcert : Spécifie le nom du certificat du serveur.
leftsubnet : Spécifie le sous-réseau privé derrière le participant de gauche.
rightsourceip : Pool d'adresses IP à attribuer aux clients.
rightdns : DNS à attribuer aux clients.
Étape 6 - Configurer l'authentification
À ce stade, votre serveur VPN est configuré pour accepter les connexions client. Ensuite, vous devrez configurer les informations d'authentification client-serveur pour définir les clés privées RSA pour l'authentification et configurer les informations d'identification de l'utilisateur EAP.
nano /etc/ipsec.secrets
Ajoutez les lignes suivantes :
: RSA "server.key.pem" .vpnsecure : EAP "your-secure-password"
Enregistrez et fermez le fichier. Ensuite, redémarrez le service strongSwan et activez-le pour qu'il démarre au redémarrage :
systemctl restart strongswan systemctl enable strongswan
Vous pouvez également vérifier l'état du service strongSwan à l'aide de la commande suivante :
systemctl status strongswan
Vous devriez voir le résultat suivant :
• strongswan.service - strongSwan IPsec IKEv1/IKEv2 daemon using ipsec.conf Loaded: loaded (/lib/systemd/system/strongswan.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2020-05-08 08:02:08 UTC; 8s ago Main PID: 29947 (starter) Tasks: 18 (limit: 2359) CGroup: /system.slice/strongswan.service ├─29947 /usr/lib/ipsec/starter --daemon charon --nofork └─29973 /usr/lib/ipsec/charon --debug-ike 2 --debug-knl 2 --debug-cfg 2 --debug-net 2 --debug-esp 2 --debug-dmn 2 --debug-mgr 2 May 08 08:02:08 ubuntu1804 charon[29973]: 05[CFG] eap_identity=%identity May 08 08:02:08 ubuntu1804 charon[29973]: 05[CFG] dpddelay=300 May 08 08:02:08 ubuntu1804 charon[29973]: 05[CFG] dpdtimeout=150 May 08 08:02:08 ubuntu1804 charon[29973]: 05[CFG] dpdaction=1 May 08 08:02:08 ubuntu1804 charon[29973]: 05[CFG] sha256_96=no May 08 08:02:08 ubuntu1804 charon[29973]: 05[CFG] mediation=no May 08 08:02:08 ubuntu1804 charon[29973]: 05[CFG] keyexchange=ikev2 May 08 08:02:08 ubuntu1804 charon[29973]: 05[CFG] adding virtual IP address pool 192.168.0.0/24 May 08 08:02:08 ubuntu1804 charon[29973]: 05[CFG] loaded certificate "CN=vpn.example.com" from 'server.cert.pem' May 08 08:02:08 ubuntu1804 charon[29973]: 05[CFG] added configuration 'ipsec-ikev2-vpn'
Vous pouvez également vérifier les certificats strongSwan à l'aide de la commande suivante :
ipsec listcerts
Vous devriez obtenir le résultat suivant :
List of X.509 End Entity Certificates subject: "CN=vpn.example.com" issuer: "CN=VPN Server CA" validity: not before May 08 07:59:18 2020, ok not after Nov 18 07:59:18 2027, ok (expires in 2749 days) serial: 7b:f8:ab:dc:ca:64:dd:93 altNames: vpn.example.com flags: serverAuth ikeIntermediate authkeyId: 12:60:f6:05:15:80:91:61:d6:e9:8f:72:a3:a5:a5:ff:a7:38:1a:32 subjkeyId: bf:1d:b1:1b:51:a0:f7:63:33:e2:5f:4c:cb:73:4f:64:0f:b9:84:09 pubkey: RSA 4096 bits keyid: e4:72:d0:97:20:ec:a5:79:f2:e0:bf:aa:0e:41:a8:ec:67:06:de:ee subjkey: bf:1d:b1:1b:51:a0:f7:63:33:e2:5f:4c:cb:73:4f:64:0f:b9:84:09
À ce stade, votre serveur VPN strongSwan est installé et configuré. Vous pouvez maintenant procéder à l'installation et à la configuration du client VPN pour connecter le serveur VPN.
Étape 7 - Installer et configurer le client strongSwan
Connectez-vous au système client et exécutez la commande suivante pour installer les packages client strongSwan :
apt-get install strongswan libcharon-extra-plugins -y
Une fois installé, désactivez le service strongSwan pour démarrer au démarrage :
systemctl disable strongswan
Copiez ensuite le fichier ca.cert.pem du serveur VPN vers le client VPN à l'aide de la commande suivante :
scp [email protected]:/etc/ipsec.d/cacerts/ca.cert.pem /etc/ipsec.d/cacerts/
Ensuite, configurez l'authentification du client VPN en éditant le fichier /etc/ipsec.secrets :
nano /etc/ipsec.secrets
Ajoutez la ligne suivante :
vpnsecure : EAP "your-secure-password"
Enregistrez et fermez le fichier. Ensuite, modifiez le fichier de configuration par défaut de strongSwan :
nano /etc/ipsec.conf
Ajoutez les lignes suivantes :
conn ipsec-ikev2-vpn-client auto=start right=vpn.example.com rightid=vpn.example.com rightsubnet=0.0.0.0/0 rightauth=pubkey leftsourceip=%config leftid=vpnsecure leftauth=eap-mschapv2 eap_identity=%identity
Enregistrez et fermez le fichier. Ensuite, redémarrez le service strongSwan avec la commande suivante :
systemctl restart strongswan
Sur le serveur strongSwan, vérifiez l'état de la connexion VPN à l'aide de la commande suivante :
ipsec status
Vous devriez voir que l'IP 192.168.0.5 est attribuée au client VPN :
Security Associations (1 up, 0 connecting): ipsec-ikev2-vpn-client[1]: ESTABLISHED 1 minutes ago, [vpnsecure]...192.168.0.1[vpn.example.com] ipsec-ikev2-vpn-client{1}: INSTALLED, TUNNEL, reqid 1, ESP in UDP SPIs: 74ab87d0db9ea3d5_i 684cb0dbe4d1a70d_r ipsec-ikev2-vpn-client{1}: 192.168.0.5/32 === 0.0.0.0/0
Conclusion
Toutes nos félicitations! Vous avez installé et configuré avec succès le serveur et le client VPN strongSwan sur Ubuntu 18.04. Vous naviguez maintenant en toute sécurité sur Internet en protégeant votre identité, votre emplacement et votre trafic contre les fouineurs et les censeurs - lancez-vous dès aujourd'hui sur votre serveur Ubuntu hébergé VPS sur Atlantic.Net !
En savoir plus sur nos services d'hébergement VPS et nos serveurs privés virtuels.