Utilisation de Ipsec en mode Road Warrior

Le mode road warrior est le mode qui permet à un utilisateur distant de se connecter au réseau privé de l'entreprise comme si il était physiquement présent. C'est typiquement l'exemple de l'un employé qui veut se connecter au réseau de l'entreprise à partir de chez lui.
La particularité réside dans le fait que l'utilisateur n'a pas une ip fixe. En effet, avec la plupart des fournisseurs d'accès internet, les ips sont alloués dynamiquement.

\includegraphics[width=140mm]{images/vpn_road_warrior.eps}

Pour effectuer cette connexion, il faut chaque machine ai la clé public RSA de l'autre machine pour valider le processus d'authentification.
La partie de configuration ipsec pour une connexion Road Warrior se divise en deux parties
La partie Left (Local) et Right (Remote, distante).
Ainsi, pour la machine cliente, on va avoir :

conn road
    left=%defaultroute             # Pour récuperer l'ip dynamique 
    leftnexthop=%defaultroute      # 
    leftid=@client_road_warrior.example.com       # Information locale
    leftrsasigkey=0sAQPIPN9uI[...]   # Clé RSA de la machine road warrior
    right=192.0.2.10               # Adresse ip de la passerelle ipsec
    rightsubnet=10.0.0.0/24        # Réseau privé géré par la passerelle
    rightid=@reseau.example.com        #  Information distante
    rightrsasigkey=0sAQOnwiBPt[...]  # Clé RSA de la passerelle ipsec
    auto=add                       # autorise mais ne lance pas la connexion au 
                                     démarrage d'ipsec

Pour le serveur ipsec, le fichier ipsec.conf aura l'apparence suivante :
conn road
    left=192.0.2.10               # Adresse ip de la passerelle ipsec
    leftsubnet=10.0.0.0/24        # Réseau privé géré par la passerelle
    leftid=@reseau.example.com        #  Information distante
    leftrsasigkey=0sAQOnwiBPt[...]  # Clé RSA de la passerelle ipsec
    right=%defaultroute             # Pour récuperer l'ip dynamique 
    rightnexthop=%defaultroute      # 
    rightid=@client_road_warrior.example.com       # Information locale
    rightrsasigkey=0sAQPIPN9uI[...]   # Clé RSA de la machine road warrior
    auto=add                       # autorise mais ne lance pas la connexion
                                     au démarrage d'ipsec

Pour initier la connexion, il suffit de taper la commande : ipsec auto -up road

Pour obtenir sur une machine la clé RSA public, il suffit de taper la commande suivante : ipsec showhostkey -left pour la machine "située" à gauche ou ipsec showhostkey -right pour l'autre coté. (les clés générées à "gauche" et à "droite" sont similaires dans le cas de RSA). Si la clé n'a pas été générée au premier démarrage (ce que openswan fait normalement par défaut), il est possible de la générer avec la commande : ipsec newhostkey -output /etc/ipsec.secrets -hostname machine.example.com

Si le client se trouve derrière un NAT (ou appelé aussi masquerading), il faut absolument que le serveur ainsi que le client gèrent la RFC 3715 (IPsec-Network Address Translation (NAT)). Dans le cas contraire, le NAT réécrivant les paquets la vérification AH (Authentication Header) d'ipsec va rejeter le paquet et rendre impossible toute connexion.

Cette configuration va permettre à la machine dite cliente d'accéder au réseau privé situé derrière la passerelle et ainsi accéder aux ressources du réseau local. Le tout sécurisé par le cryptage appliqué par ipsec.

root 2004-05-04