:: News .:. Documents .:. Forum .:. Downloads .:. Bibliographie .:. Liens .:. Contact  :: 


Home
  :. News
  .: Documents
    .: Notions
    .: Protocoles
    .: Sécurité
    .: Architecture
    .: Prog
    .: Systèmes
  :. Forum
  .: Downloads
  :. Bibliographie
  .: Liens
  :. Contact

Chat

  Nickname:


irc: #guill.net

Forum



 
Installation et configuration de FreeS/WAN  
 

 

Introducion
Installation
Génération des clés de chiffrement
Configuration Lan to Lan
Tests de connectivité
Conclusion


Introduction

Les VPNs (Virtual Private Networks) sont une solution sécurisée et économique aux lignes louées dédiées et de ce fait très couteuses. Le principe de cette technologie est simple et consiste en la création d'un tunnel chiffré entre 2 points d'accès utilisant le réseau publique pour support.
Plusieurs topologies existent et sont supportées par FreeS/WAN :
   - Lan to Lan
   - Client to Lan (config Road Warrior)
   - Client to Server (pour utiliser les services d'un serveur par exemple)

Installation de FreeS/WAN

Vous avez 2 options pour l'installation :
   - sources
   - RPM

Installation à partir des sources

Téléchargez le tarball de la version que vous aurez choisi sur le FTP de freeswan.org

En tant que root executer les commandes suivante pour dépacker les sources :

   su
   mv freeswan-2.03.tar.gz /usr/src
   cd /usr/src
   tar -xvf freeswan-2.03.tar.gz

Il faut savoir qu'il existe des patchs pour le support de différentes technologies commes le NAT transversal ou le chiffrement X.509, ces patchs doivent être appliqués à ce moment de l'installation par les sources et uniquement par cette méthode.

...Make

Userland - uniquement pour des kernels 2.6

   cd /usr/src/freeswan-2.03
   make programs
   make install

KLIPS - kernels 2.2 2.4 et 2.6

Pour effectuer une installation modulaire de KLIPS :
    cd /usr/src/freeswan-2.03
    make oldmod
    make minstall

Pour effectuer lier statiquement KLIPS à votre noyau :
    cd /usr/src/freeswan-2.03
    make oldmod
    make minstall

L'installation est terminée

Installation à partir des RPM

Ces instructions s'appliquent à des version récentes de RedHat. Mandrake et Suse produisent aussi des RPMs destinés à leurs distributions.

Téléchargez les rpms déstinés à votre version du noyau :
    ftp://ftp.xs4all.nl/pub/crypto/freeswan/binaries/RedHat-RPMs

Pour les kernels 2.6 n'oubliez pas les rpm Userland comme :
    freeswan-userland-2.03.9-0.i386.rpm
Pour les kernels 2.4 :
- Vous pouvez verifier la version de votre kernel par : uname -r
- Téléchargez la version qui vous correspond comme :
       freeswan-module-2.03_2.4.20_20.9-0.i386.rpm
- Téléchargez la version de userland qui correspond :
       freeswan-userland-2.03_2.4.20_20.9-0.i386.rpm
       note : ces utilitaires ne fonctionneront correctement qu'avec RedHat car très sensibles aux variations du kernel

Pour l'installation executer les commandes suivantes :

su
rpm -ivh freeswan*.rpm

Génération des clés de chiffrement

La commande ipsec newhostkey permet la génération de nouvelles clés d'identification des hôtes.

Plusieurs options permettent de spécifier le mode de génération :

	--output : spécifie le chemin et le nom du fichier qui contiendra les cles
	--bits : spécifie le nombre de bits utilisés pour les cles (2192 bits par défaut)
	--hostname : intègre le nom d'hôte dans les cles

Pour de plus amples informations se reporter au man d'IPSEC NEWHOSTKEY.

Configuration Lan to Lan

Nous utiliserons la topologie suivante :

LAN A ]----[gwA]----[routeur]---------[routeur]----[gwB]----[ LAN B

Rassembler les informations suivantes :

  • IPs des gateways
  • Les adresses des réseaux d'extrémité
  • déterminer des noms FQDN pour l'identification des gateways

Récupérez les clés publiques IPSec par les commandes :
sur la première gateway :

ipsec showhostkey --left

sur la seconde (par une connexion SSH ou en direct sur la machine par exemple)
ipsec showhostkey --right

Editez le fichier /etc/ipsec.conf

# configuration générale
config setup
	interfaces="ipsec0=eth0 ipsec1=eth1"
	klipsdebug=none
	plutodebug=none
# eth0 etant l'interface reliée au LAN x et eth1 etant l'interface reliée
  à l'inter-réseau

conn %default
	keyingtries=0
	authby=rsasig

# configuration de la connexion
conn gauche-droite
	left=172.16.0.2 		# @ gwB interface sortante
	leftsubnet=192.168.0.0/24 	# @ réseau LAN A exp : 192.x.x.x/24
	leftnexthop=172.16.0.1	# @ passerelle par défaut de gwA
	leftid=@gauche.projet.net 	# FQDN gwA
	leftrsasigkey=0sAQNyoS+bzNsiLhqm65ZZ... # clé de gwA
	right=172.17.0.2 		# @ gwB interface sortante
	rightsubnet=192.168.1.0/24 	# @ réseau LAN B
	rightnexthop=172.17.0.1 	# @ passerelle par défaut de gwB
	rightid=@right.projet.net 	# FQDN gwB
	rightrsasigkey=0sAQN++TysjAizAn29jKP... # clé de gwB
	auto=add 			# Autorise mais n'effectue pas le 
				# lancement de la connexion lancement 

Remarque :
    Les fichiers ipsec.conf doivent être identiques sur les 2 gateways
    Remplacer auto=add par auto=start pour monter la connexion au demarrage

Tests de connectivité

Démarrer la connexion

ipsec auto --up gauche-droite

Vous aurez les messages suivants :

104 "gauche-droite" #1: STATE_MAIN_I1: initiate
106 "gauche-droite" #1: STATE_MAIN_I2: sent MI2, expecting MR2
108 "gauche-droite" #1: STATE_MAIN_I3: sent MI3, expecting MR3
004 "gauche-droite" #1: STATE_MAIN_I4: ISAKMP SA established
112 "gauche-droite" #2: STATE_QUICK_I1: initiate
004 "gauche-droite" #2: STATE_QUICK_I2: sent QI2, IPsec SA established
 {ESP=>0xd5631de5 <0xcfcffb92}

Testez la connexion

ipsec verify

Vous aurez les messages suivants :

    Version check and ipsec on-path                             [OK]
    Checking for KLIPS support in kernel                        [OK]
    Checking for RSA private key (/etc/ipsec.secrets)           [OK]
    Checking that pluto is running                              [OK]

Testez la connectivité

Un simple ping d'une machine du LAN A vers le LAN B suffit, pour celà :

D:\>ping 192.168.1.2

Envoi d'une requête 'ping' sur 192.168.1.2 avec 32 octets de données :

Réponse de 192.168.1.2 : octets=32 temps=47 ms TTL=126
Réponse de 192.168.1.2 : octets=32 temps=31 ms TTL=126
Réponse de 192.168.1.2 : octets=32 temps=31 ms TTL=126
Réponse de 192.168.1.2 : octets=32 temps=32 ms TTL=126

Statistiques Ping pour 192.168.1.2:
    Paquets : envoyés = 4, reçus = 4, perdus = 0 (perte 0%),
Durée approximative des boucles en millisecondes :
    minimum = 31ms, maximum = 47ms, moyenne = 35ms

Pour vérifier que le chiffrement des données qui transitent s'effectue correctement on peut effectuer un dump sur l'une des gateway à l'aide de la commande suivante :
    tcpdump -i eth0

Si vous ne disposez pas de TCPDump : http://www.tcpdump.org

Exemple de paquet crypté :

13:25:34.986147 172.16.0.2 > 172.17.0.2: ESP(spi=0xe15ce30a,seq=0x6a9)
(ttl 62, id 39151, len 112)
0x0000   4500 0070 98ef 0000 3e32 8b47 ac10 0002        E..p....>2.G....
0x0010   ac11 0002 e15c e30a 0000 06a9 a8a6 26c0        .....\........&.
0x0020   a732 c5b2 3446 c056 01fe c6a8 6319 1926        .2..4F.V....c..&
0x0030   940b b2e5 6d88 4c8c a989 5722 058b 9e31        ....m.L...W"...1
0x0040   6efb 483a a599 187a 18dd 286e 3453 3e57        n.H:...z..(n4S>W
0x0050   06c3 5362 df7d 4c23 9338 901c 38e4 1154        ..Sb.}L#.8..8..T
0x0060   73be ab06 0628 5302 25b8 c098 4a02 62a5        s....(S.%...J.b.

Conclusion

Cette méthode vous permet d'installer un VPN en un minimum de temps. Il s'agit d'une configuration de base étant donné que la gestion de polices d'accès sont possibles mais ne sont pas abordées dans cet article.

Une dernière remarque : si le routage vers le tunnel ne s'effectue pas correctement assurez vous que l'ip forward est bien activé sur les gateways.

rusher - 11/2003
 




Sondage

Quel est votre connexion à Internet aujourd'hui ?
 
RTC 56Kbps
ADSL simple de 128 à 2048 Kbps
ADSL + Téléphonie (+TV) de 128 à 2048 Kbps
ADSL simple jusqu'à 20Mbps
ADSL + Téléphonie (+TV) jusqu'à 20Mbps
Autres (RNIS, Satellites bi-directionnel...)
Total :
2653

Recherche


Docs
   Pflogsumm (Analyseur de log mail pour Postfix)
   Proftpd (Mise en service d'un serveur FTP avec proftpd sous Linux)
   Openldap (Mise en service d'un serveur LDAP sous Linux)
   Gestion des périphériques en c++ builder (Communication RS232 en C++ Builder)
   Les sockets windows (Windows Sockets : un cours accéléré)

guill.net©1999-2018