3.5. IPSec

IPSec est un nouveau protocole bas� sur IP qui autorise les liens chiffr�s � la demande entre deux machines. La mise en œuvre d'IPSec est obligatoire dans le cadre d'IPv6 et peut �tre incorpor�e dans IPv4. Qu'IPSec soit obligatoire pour IPv6 ne signifie pas pour autant qu'il est syst�matiquement d�ploy� par les administrateurs r�seau. IPSec n'est pas facile � mettre en œuvre � cause des m�canismes de d�ploiement automatiques des clefs. Le DNS peut aider mais cette m�thode n'est pas encore courante. En outre, les autorit�s de certification ne proposent pas d'outils pour un d�ploiement � grande �chelle en entreprise.

3.5.1. FreeS/WAN

FreeS/WAN est une souche IPSec renomm�e pour GNU/Linux. La version actuelle (1.9.7) doit �tre patch�e pour g�rer les certificats X.509v3. Une telle version modifi�e est disponible sur ce site. Certaines distributions l'incluent en standard, il est donc conseill� de commencer par v�rifier si c'est le cas pour celle qu'on utilise. Cette version pr�sente l'int�r�t de permettre l'usage d'OpenSSL pour la cr�ation des certificats de FreeS/WAN et des enregistrements CERT du DNS. En outre, l'interaction avec la souche IPSec de Microsoft est r�alisable. On se reportera � la page de Nate's pour davantage d'informations.

3.5.1.1. Passerelle FreeS/WAN

On cr�e un certificat dont le CN correspond au nom de domaine compl�tement qualifi� de la passerelle IPSec, par exemple host.example.com. Ne pas oublier de signer le certificat. On dispose des deux fichiers newcert.pem et newreq.pem. Le fichier newreq.pem doit �tre �dit� pour ne plus contenir que la clef priv�e�: on supprime tout ce qui n'est pas compris entre les balises --BEGIN RSA PRIVATE KEY-- et --END RSA PRIVATE KEY--. Il faut ensuite copier ces fichiers sur la passerelle en faisant attention � ce que le transfert soit s�curis�. Les fichiers de configuration de FreeS/WAN se trouvent dans le r�pertoire /etc/freeswan pour ma distribution. � ajuster suivant les cas.

mv newreq.pem /etc/freeswan/ipsec.d/private/host.example.com.key
mv newcert.pem /etc/freeswan/ipsec.d/host.example.com.pem

On copie le certificat racine dans le r�pertoire de configuration de FreeS/WAN. Il ne faut copier que le certificat, pas la clef.

mv cacert.pem /etc/freeswan/ipsec.d/cacerts

On g�n�re une liste de r�vocation ou on copie l'existante � l'emplacement ad�quat�:

openssl ca -genrcl -out /etc/freeswan/ipsec.d/crls/crl.pem

Toujours sur la passerelle, on inclut dans le fichier ipsec.secrets la ligne ci-dessous�:

: RSA host.example.com.key
 "password"

Le mot de passe est celui qui a servi � cr�er la paire de clef. On configure le fichier ipsec.conf comme suit�:

config setup
interfaces=%defaultroute
klipsdebug=none
plutodebug=none
plutoload=%search
plutostart=%search
uniqueids=yes
conn %default
keyingtries=1
compress=yes
disablearrivalcheck=no
authby=rsasig
leftrsasigkey=%cert
rightrsasigkey=%cert
conn roadwarrior-net
leftsubnet=<sous_reseau>/<masque_de_sous_reseau>
also=roadwarrior
conn roadwarrior
right=%any
left%defaultroute
leftcert=host.example.com.pem
auto=add
pfs=yes

Comme on peut le voir, deux liens sont �tablis, l'un avec la passerelle, l'autre avec le r�seau situ� derri�re la passerelle. Ceci s'av�re tr�s pratique si un pare-feu ou un traducteur d'adresses est actif sur la passerelle. La configuration autorise tout propri�taire d'un certificat valide � se connecter � la passerelle.

3.5.1.2. Client FreeS/WAN

La proc�dure est semblable. Il faut cr�er un certificat dont le CN correspond au nom de domaine compl�tement qualifi� de l'h�te, par exemple clienthost.example.com. Le certificat doit �tre sign� par la m�me autorit� de certification que la passerelle. Le lien est alors autoris�.

Comme pour la passerelle, on copie de fa�on s�curis�e les fichiers suivants dans les r�pertoires de configuration�:

mv newreq.pem /etc/freeswan/ipsec.d/private/clienthost.example.com.key
mv newcert.pem /etc/freeswan/ipsec.d/clienthost.example.com.pem

On copie le certificat racine dans le r�pertoire de configuration de FreeS/WAN. Il ne faut copier que le certificat, pas la clef.

mv cacert.pem /etc/freeswan/ipsec.d/cacerts

On g�n�re une liste de r�vocation ou on copie l'existante � l'emplacement ad�quat�:

openssl ca -genrcl -out /etc/freeswan/ipsec.d/crls/crl.pem

Enfin, on copie le certificat (mais pas la clef priv�e) de la passerelle�:

mv host.example.com.pem /etc/fresswan/ipsec.d/host.example.com.pem

Le fichier ipsec.secrets est �dit� de la m�me fa�on pour charger la clef priv�e�:

: RSA clienthost.example.com.key
 "password"

On �dite le fichier ipsec.conf pour activer la connexion�:

config setup
interfaces=%defaultroute
klipsdebug=none
plutodebug=none
plutoload=%search
plutostart=%search
uniqueids=yes
conn %default
keyingtries=0
compress=yes
disablearrivalcheck=no
authby=rsasig
leftrsasigkey=%cert
rightrsasigkey=%cert
conn roadwarrior-net
left=(ip of host)
leftsubnet=(gateway_host_subnet)/(gateway_host_netmask)
also=roadwarrior
conn roadwarrior
left=(ip of host)
leftcert=host.example.com.pem
right=%defaultroute
rightcert=clienthost.example.com.pem
auto=add
pfs=yes

On met ensuite le VPN en action�:

ipsec auto --up roadwarrior
ipsec auto --up roadwarrior-net

Afin que le lien s'�tablisse automatiquement, on remplace dans le fichier de configuration la directive ��auto=add�� par ��auto=start��.

3.5.1.3. Client MS Windows 2000/XP

La proc�dure est identique � celle du client FreeS/WAN. On cr�e un certificat, par exemple pour winhost.example.com, qui doit � pr�sent �tre converti au format pkcs12. On se reportera � la section ��MS Outlook et les certificats�� pour le d�tail de la marche � suivre. On s'assure de ce que le fichier .p12 est attach� au certificat de l'autorit� de certification racine.

On note le r�sultat de la commande�:

openssl x509 -in cacert.pem -noout -subject

Ce fichier doit �tre copi� de fa�on s�curis�e sur la machine MS Windows.

On installe � pr�sent l'utilitaire ipsec.exe de Marcus Muller, par exemple dans le r�pertoire c:\ipsec.

On ouvre la console de gestion Microsoft (Microsoft Management Console/MMC) puis on clique sur ��Add/Remove Snap-in��, ��Add��, ��Certificates��, ��Add��, ��Computer Account�� et ��Next��. On choisit alors ��Local computer�� et ��Finish��. Dans ��IP Security Policy Management��, choisir ��Add��, ��Local Computer�� puis ��Finish��, ��Close�� et enfin ��OK��.

On peut � pr�sent ajouter le certificat .p12.

On clique sur la fl�che d'ajout pour ��Certificates (Local Computer)�� puis avec le bouton droit sur ��Personal�� avant de cliquer sur ��All Tasks��, ��Import�� et ��Next��. On renseigne ensuite le chemin d'acc�s au fichier .p12 (ou on navigue pour atteindre le fichier) et on clique sur ��Next��. On rentre alors le mot de passe de protection du fichier puis on clique sur ��Next��. On choisit ��Automatically select the certificate store based on the type of certificate��, ��Next��, ��Finish�� et on r�pond positivement � toutes les questions qui se pr�sentent. On sort de la console et on enregistre la s�quence correspondante dans un fichier pour ne pas avoir � se la farcir � chaque fois.

On installe ipsecpol.exe (Windows 2000) ou ipseccmd.exe (Windows XP) comme indiqu� dans la documentation de l'utilitaire ipsec. On �dite le fichier ipsec.conf de la machine MS Windows en rempla�ant "RightCA" par la sortie de la commande ��openssl x509 -in cacert.pem -noout -subject��; mise en forme comme indiqu� ci dessous (il faut remplacer les / par des virgules et changer le nom de quelques champs comme indiqu� dans l'exemple)�:

conn roadwarrior
left=%any
right=(ip_du_systeme_distant)
rightca="C=FJ, ST=Fiji, L=Suva, O=SOPAC, OU=ICT, CN=SOPAC Root"
network=auto
auto=start
pfs=yes
conn roadwarrior-net
left=%any
right=(ip_du_systeme_distant)
rightsubnet=(sous_reseau)/(masque_de_sous_reseau)
rightca="C=FJ, ST=Fiji, L=Suva, O=SOPAC, OU=ICT, CN=SOPAC Root"
network=auto
auto=start
pfs=yes

On d�marre � pr�sent le lien.

Pour cela on invoque la commande ��ipsec.exe��. Voici un exemple de sortie de cette commande�:

C:\ipsec>ipsec
IPSec Version 2.1.4 (c) 2001,2002 Marcus Mueller
Getting running Config ...
Microsoft's Windows XP identified
Host name is: (local_hostname)
No RAS connections found.
LAN IP address: (local_ip_address)
Setting up IPSec ...
Deactivating old policy...
Removing old policy...
Connection roadwarrior:
MyTunnel : (local_ip_address)
MyNet : (local_ip_address)/255.255.255.255
PartnerTunnel: (ip_of_remote_system)
PartnerNet : (ip_of_remote_system)/255.255.255.255
CA (ID) : C=FJ, ST=Fiji, L=Suva, O=SOPAC, OU=ICT, CN=SOPAC Root...
PFS : y
Auto : start
Auth.Mode : MD5
Rekeying : 3600S/50000K
Activating policy...
Connection roadwarrior-net:
MyTunnel : (local_ip_address)
MyNet : (local_ip_address)/255.255.255.255
PartnerTunnel: (ip_of_remote_system)
PartnerNet : (remote_subnet)/(remote_netmask)
CA (ID) : C=FJ, ST=Fiji, L=Suva, O=SOPAC, OU=ICT, CN=SOPAC Root...
PFS : y
Auto : start
Auth.Mode : MD5
Rekeying : 3600S/50000K
Activating policy...
C:\ipsec>

On �met un ping vers la passerelle qui devrait afficher ��Negotiating IP Security�� pendant quelques instants avant de r�pondre au ping. Pour une T1 qui attaque un VPN derri�re un modem cable, il s'�coule typiquement de trois � quatre pings. Une fois la m�me chose faite depuis le r�seau interne � l'autre extr�mit� du lien, ce dernier devrait �tre op�rationnel.

Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 18:01:21