vpn remote access en utilisant Strongswan

Publié le par Kachallah Abagana Mahamat

 

Introduction

Un réseau privé virtuel, ou VPN, permet de crypter de manière sécurisée le trafic lors de son acheminement à travers des réseaux non fiables, tels que ceux du café, d'une conférence ou d'un aéroport.

IKEv2, ou Internet Key Exchange v2, est un protocole qui permet un tunneling IPSec direct entre le serveur et le client. Dans les implémentations VPN IKEv2, IPSec fournit un chiffrement pour le trafic réseau. IKEv2 est pris en charge de manière native sur les nouvelles plateformes (OS X 10.11+, iOS 9.1+ et Windows 10) sans nécessiter d'applications supplémentaires, et il gère les problèmes des clients de manière relativement fluide.

 

Dans cet article, nous allons configurer un serveur VPN IKEv2 à l'aide de StrongSwan sur un serveur Ubuntu 16.04 et vous y connecter à partir de clients Windows, iOS et macOS.

 

StrongSwan est une implémentation du protocole IPSEC.

 

 

Prérequis :

 

Avoir un dns fonctionnel

#apt-get install bind9 bind9utils

 

#vim /etc/bind/named.conf.default-zones

#vim /etc/bind/db.kachou

#vim /etc/resolv.conf

Test

  1. 1.Architecture

 

2. Installation StrongSwan

#apt-get install strongswan strongswan-plugin-eap-mschapv2 moreutils iptables-persistent

 

3. Creation du fichier d’autorité de certification

 

#mkdir vpn-certs

#cd vpn-certs

#ipsec pki --gen --type rsa --size 4096 --outform pem > server-root-key.pem

#chmod 600 server-root-key.pem

#ipsec pki --self --ca --lifetime 3650 --in server-root-key.pem --type rsa   --dn "C=SN, O=kachou, CN=vpn.kachou.sn" --outform pem > server-root-ca.pem

 

4. Generation du certificat pour le serveur vpn

# ipsec pki --gen --type rsa --size 4096 --outform pem > vpn-server-key.pem
# ipsec pki --pub --in vpn-server-key.pem --type rsa | ipsec pki --issue --lifetime 1825 --cacert server-root-ca.pem --cakey server-root-key.pem --dn "C=SN, O=kachou, CN= vpn.kachou.sn" --san vpn.kachou.sn ip --flag serverAuth --flag ikeIntermediate --outform pem > vpn-server-cert.pem

# sudo cp ./vpn-server-cert.pem /etc/ipsec.d/certs/vpn-server-cert.pem

# sudo cp ./vpn-server-key.pem /etc/ipsec.d/private/vpn-server-key.pem

# sudo chown root /etc/ipsec.d/private/vpn-server-key.pem

# sudo chgrp root /etc/ipsec.d/private/vpn-server-key.pem

# sudo chmod 600 /etc/ipsec.d/private/vpn-server-key.pem

 

Dans cette étape, nous avons créé une paire de certificats qui serait utilisée pour sécuriser
les communications entre le client et le serveur. Nous avons également signé les certificats 
avec notre clé racine, afin que le client puisse vérifier l'authenticité du serveur VPN. 
Maintenant que tous les certificats sont prêts, nous allons passer à la configuration du 
strongSwan.

5.  Configuration du strongSwan

# cp /etc/ipsec.conf /etc/ipsec.conf.old
Vider le contenu du fichier ipsec.conf

#  echo '' | sudo tee /etc/ipsec.conf

 

Configuration global

# vim /etc/ipsec.conf

 

config setup
    charondebug="ike 1, knl 1, cfg 0"
    uniqueids=no
 
conn ikev2-vpn
    auto=add
    compress=no
    type=tunnel
    keyexchange=ikev2
    fragmentation=yes
    forceencaps=yes
    ike=aes256-sha1-modp1024,3des-sha1-modp1024!
    esp=aes256-sha1,3des-sha1!
    dpdaction=clear
    dpddelay=300s
    rekey=no
    left=%any
    leftid=@vpn.kachou.sn
    leftcert=/etc/ipsec.d/certs/vpn-server-cert.pem
    leftsendcert=always
    leftsubnet=0.0.0.0/0
    right=%any
    rightid=%any
    rightauth=eap-mschapv2
    rightdns=8.8.8.8,8.8.4.4
    rightsourceip=10.10.10.0/24
    rightsendcert=never                        
    eap_identity=%identity

 

6. Création des comptes clients pour l’authentification par vpn

# vim /etc/ipsec.secrets
vpn.kachou.sn : RSA "/etc/ipsec.d/private/vpn-server-key.pem"
 
   kachou %any% : EAP "passer"
akhibou %any% : EAP "passer"

 

7. Chargement des configurations

# ipsec reload

 

# ipsec restart

 

# cp vpn-certs/server-root-ca.pem vpn-certs/vpn_root_certificate.pem

 

copie le certificat vers la machine client par ftp ou scp

 

pour notre cas on a copié par scp

 

# scp vpn-certs/vpn_root_certificate.pem kachou@10.0.117.34:/tmp

# ipsec reload

 

# ipsec restart

 

# cp vpn-certs/server-root-ca.pem vpn-certs/vpn_root_certificate.pem

 

copie le certificat vers la machine client par ftp ou scp

 

pour notre cas on a copié par scp

 

# scp vpn-certs/vpn_root_certificate.pem kachou@10.0.117.34:/tmp

 

8. Test sur mac OS (10.13.6)

 

a. Importation du certificat dans le magasin de certificat.

 

Double cliquer sur le certificat.

 

Puis entrer son mot de passe

Selection Toujours Approuver au niveau de Securité IP(IPsec)

 

Valider avec son mot de passe

 

Maintenant que le certificat est important et fiable, configurons la connexion VPN avec les étapes suivantes :

 

b. Aller dans préferences système

Double cliquer sur Réseau

 
Changer son dns avec votre adresse dns server pour mon cas 10.0.117.43 (vpn.kachou.sn)
Pour se faire cliquer sur Avancé. puis DNS

c. Creation de la connexion VPN

Cliquer sur + puis selection VPN 

Cliquer sur Crée.

Remplir avec les identifiants Puis cliquer sur Réglages d’authentification.Choisir l’option Nom d’utilisateur. 

Et entrez le nom d’utilisateur et le mot passe crée dans le fichier ipsec.secrets.

On valider et on clique sur se connecter puis on vérifie l’état

de la connectivité.


On constate que l'utilisateur est connecté par VPN

On constate que l’utilisateur kachou s’est bien connecté
On verifie son adresse avec ifconfig

Conclusion

En somme, cet article nous a permis de mettre en place VPN avec strongswan pour le respect des trois éléments a savoir : 

  • la confidentialité;
  • l'intégrité ;
  • la disponibilité.

Publié dans sécurité

Pour être informé des derniers articles, inscrivez vous :
Commenter cet article
M
PureVPN Offre de Noël<br /> 88% de RABAIS sur le Plan 5 Ans ( € 1.15 par mois )<br /> <br /> TEMPS LIMITÉ<br /> https://www.purevpn.fr/achetez
Répondre