Tunnel IPSec sous Linux avec OpenSwan
Date: 10/03/2008 | Catégories: Open-source,Reseau | Tags: ipsec,linux,vpn
Le but de ce tutoriel est de créer un tunnel IPSec entre deux réseaux privées (chez vous et chez un pote pas exemple) reliés par une connexion Internet publique. La solution proposée se base sur OpenSwan (exemple de configuration sous Ubuntu mais applicable sous n'importe quel Unix et BSD like)
Infrastructure servant de base au tutoriel:
PRIVEE_A --- ROUTEUR VPN A --- PUBLIQUE_A --- INTERNET --- PUBLIQUE_B --- ROUTEUR VPN B --- PRIVEE_B
Installation de OpenSwan
# sudo apt-get install openswan
Génération des clés:
# ipsec ranbits 256
0x02e91301_438852a5_da987f97_762d2c97_22f0b9c9_8fe399c6_49b81858_603d90fe
Puis édition du fichier /etc/ipsec.secrets sur le ROUTEUR VPN A:
# sudo vi /etc/ipsec.secrets
PUBLIQUE_A PUBLIQUE_B "0x02e91301_438852a5_da987f97_762d2c97_22f0b9c9_8fe399c6_49b81858_603d90fe"PS: remplacer PUBLIQUE_A et PUBLIQUE_B par les adresses IP publiques de vos routeurs
Copie de la clés sur le ROUTEUR VPN B:
# scp /etc/ipsec.secrets root@PUBLIQUE_B:/etc/ipsec.secrets
PS: si besoin, remplacer root par un compte administrateur valide
Configuration du tunnel IPSec
Configuration sur le ROUTEUR VPN A (exemple adresse IP réseaux PRIVEE_A=192.168.1.0/24 et PRIVEE_B=192.168.2.0/24):
# vi /etc/ipsec.conf
version 2.0
config setup
...
nat_traversal=yes
virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12,!%v4:192.168.1.0/24conn tas2tno
type=tunnel
authby=secret
left=PUBLIQUE_A
leftsubnet=vhost:%no,%priv
right=PUBLIQUE_B
rightsubnet=192.168.2.0/24
auto=start
Configuration sur le ROUTEUR VPN B (exemple adresse IP réseaux PRIVEE_A=192.168.1.0/24 et PRIVEE_B=192.168.2.0/24):
# vi /etc/ipsec.conf
version 2.0
config setup
...
nat_traversal=yes
virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12,!%v4:192.168.2.0/24conn tas2tno
type=tunnel
authby=secret
left=PUBLIQUE_B
leftsubnet=vhost:%no,%priv
right=PUBLIQUE_A
rightsubnet=192.168.1.0/24
auto=start
Quelques commandes utiles
Démarrer le daemon IPSec (à faire sur les deux serveurs VPN)
# sudo /etc/init.d/ipsec start
Redémarrer le daemon IPSec (en cas de modification d'un des fichiers de configuration):
# sudo /etc/init.d/ipsec restart
Status des tunnels VPN:
# sudo ipsec whack --status
Debug:
# tail -f /var/log/messages | grep pluto