
Sommaire :
Un petit article décrivant une interconnexion de 2 réseaux privés utilisant le VPN ipsec en utilisant les outils openswan.
I – Introduction
a – schéma
Tunnel point a point
[RxPriv1] - [Vpn1] - { } - [Vpn2] - [RxPriv2] -left- -rignt-
Nous avons 2 réseaux privés RxPriv1 et RxPriv2 reliés en VPN au travers Internet grâce à 2 passerelles Vpn1 et Vpn2
b – Pré requis
Le package openswan :
# apt-get install openswan
Des IPs fixes de chaque côté.
c – Lexique
vpn1 # route -n
Lancer la commande route -n sur le serveur Vpn1
vpn1# ipsec showhostkey --left
Résultat de la commande
ipsec showhostkey --left
- [IpIntVpn1] : Adresse Ip Interne du serveur Vpn1
- [IpPubVpn1] : Adresse Ip publique du serveur Vpn1
- [IpIntVpn2] : Adresse Ip Interne du serveur Vpn2
- [IpPubVpn2] : Adresse Ip publique du serveur Vpn2
II – Configurations préalables
vérifier que les clefs sont bien existantes
Sur Vpn1, la clé left.
Tapez la commande suivante :
Vpn1# ipsec showhostkey --left
Si elle échoue, tapez :
Vpn1# ipsec newhostkey --output /etc/ipsec.secrets [--random /dev/urandom]
Note : /dev/urandom est à utiliser dans le cas ou le commande sans ne finirait pas son exécution.
De même sur Vpn2, pour la clé right :
Vpn2# ipsec showhostkey --tight
Si la commande échoue, tapez :
Vpn2# ipsec newhostkey --output /etc/ipsec.secrets [--random /dev/urandom]
III – Configuration
=> Sur VPN1
Éditez le fichier /etc/ipsec.conf.
Les indentations sont nécessaires et ne doivent pas posséder de commentaires.
conn vpn1tovpn2 left=[IpPubVpn1] (on met l'ip et pas le nom DNS si jamais sur le serveur nous avons le nom DNS qui pointe sur le localhost leftsubnet=[RxPriv1] leftid=@vpn1.mon.domaine leftrsasigkey=[CMD:Vpn1#ipsec showhostkey --left] right=[IpPubVpn2] rightsubnet=[RxPriv2] rightid=@vpn2.mon.domaine rightrsasigkey=[CMD:Vpn2#ipsec showhostkey --rignt] auto=start
=> Sur VPN2
Éditez le fichier /etc/ipsec.conf.
Les indentations sont nécessaires et ne doivent pas posséder de commentaires.
conn vpn1tovpn2 left=[IpPubVpn1] leftsubnet=[RxPriv1] leftid=@vpn1.mon.domaine leftrsasigkey=[CMD:Vpn1#ipsec showhostkey --left] right=[IpPubVpn2] rightsubnet=[RxPriv2] rightid=@vpn2.mon.domaine rightrsasigkey=[CMD:Vpn2#ipsec showhostkey --rignt] auto=start
Bref, vous aurez remarqué que ces configurations sont strictement identiques sur les 2 serveurs
IV – lancement et tests
=> Lancement
Sur le VPN1 :
Vpn1#/etc/init.d/ipsec start
Sur le VPN2 :
Vpn2#/etc/init.d/ipsec start
=> Tests
On vérifie que le tunnel est bien monté (sur le VPN1 ou sur le VPN2)
Vpn1#/etc/init.d/ipsec status -> 1 tunnels up
On vérifie que, sur Vpn1, la route vers l’autre réseau privé est bien montée
Vpn1# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface [RxPriv2] ...
Puis sur Vpn2
Vpn2# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface [RxPriv1] ...
Ensuite on fait un petit ping à partir de l’interface du réseau prive1 vers le réseau prive2 (ou inversement)
Vpn1# ping -I [IpIntVpn1] [IpIntVpn2]
V – Cas particulier : la redondance d’accès internet
Imaginons que VPN2 possède 2 accès internet, on peut configurer le VPN pour se connecter en suivant la route par défaut de la passerelle.
=> Sur VPN1
Modifier /etc/ipsec.conf et remplacez la ligne
left=[IpPubVpn1]
par
left=%any
=> Sur VPN2
Dans /etc/ipsec.conf, remplacez
right=[IpPubVpn2]
par
right=%defaultroute
.
Après faites un script qui teste quel accès internet fonctionne bien et basculez votre route par défaut dessus.
Article lu 2695 fois
merci pour le tuto
vréma c’est cool comme tuto réseau
excellent merci bien