Précédent   Forum des professionnels en informatique > Systèmes > Linux > Réseau
Réseau Vos questions autour des réseaux et télécoms sous Linux
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/07/2008, 12h55   #1
Membre du Club
 
Inscription : septembre 2003
Messages : 183
Détails du profil
Informations forums :
Inscription : septembre 2003
Messages : 183
Points : 46
Points : 46
Par défaut vpn avec openswan

Bonjour,

Je suis en train de tester openswan. J'ai vu que c'est un système compatible avec tout type de client (xp, 2k, vista, cisco, zyxel etc .).

Voilà, je me suis lancé sur l'installation sur etch 4..0 : apt-get install openswan ipsec l2tp

Mon but étant de configurer une connexion VPN permettant d'accueillir x client Windows XP + vista, j'utilise l2tp. Pour le moment, je ne fais quasi-aucun cryptage ccoté client. C'est à dire que tout ce que j'ai, c'est une connexion dans le gestionnaire de connexion de windows xp. Le PC se connecte correctement et ping bien le serveur.

Je me pose cependant quelques questions sur openswan. Les paramètres left et right désignent quoi exactement ? D'un tuto à l'autre, le left et right s'inversent. J'ai bien compris qu'il y en a un qui désigne le serveur et l'autre le client, mais je m'y perd dans les tutos.

Est-il possible également que le client garde sa navigation internet sur son réseau local ? Actuellement, lorsque la connexion est établie, soit je peux emêcher la navigation internet, ou soit le client récupère internet depuis le serveur. Mon but est juste de fournir une IP dans une classe réseau précise et que le client garde sa navigation internet en utilisant son réseau local.

J'espère que quelqu'un pourra me répondre.

++
zerros est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2008, 14h09   #2
Membre actif
 
Avatar de lu6fer
 
Inscription : avril 2008
Messages : 141
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 141
Points : 159
Points : 159
Il y a plusieurs chose a éclaircir de ce que je comprend.

1erement : c'est un connexion VPN, qui dit connexion dit interface, et ce peut importe l'OS. Donc quand tu crées une connexion tu crées une interface.
Cette notion d'interface est importante, c'est grâce a elle que tu pourra obtenir une connexion a ton serveur VPN et une connexion a internet sur le même poste. Après grâce a la notion de route tu peux rediriger le trafic vers l'une ou l'autre des interfaces.

2emement : la notion de right et left, n'est en soit pas très importante, dans le sens ou l'un peu prendre le rôle de l'autre, a toi par contre de définir une nomenclateur a ce sujet (par exemple left sera forcement le client)
__________________
"Le logiciel c'est comme le sexe, c'est meilleur quand c'est gratuit"
Linus TORVALD
lu6fer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2008, 15h31   #3
Membre du Club
 
Inscription : septembre 2003
Messages : 183
Détails du profil
Informations forums :
Inscription : septembre 2003
Messages : 183
Points : 46
Points : 46
OK, je commence à mieux comprendre la partie Left/Right. Le tout serait de garder cette logique de A à Z.

Par contre pour ce qui est des interfaces, j'ai bien compris. J'en crée une sur le serveur (eth0:1) + une ppp0 lors d'une connection d'un "roadwarriorxp".

Mais je ne comprends pas comment je peux forcer le client à utiliser sa connexion internet et non celle présente sur le serveur. En gros ce serait plutôt forcer l'utilisation de sa passerelle plutôt que la mienne. Le hic c'est que si je fais ca, je n'arriverai jamais à le joindre puisque la passerelle ne me le permettra pas. Je ne vois pas trop de quelle manière je pourrai arriver au résultat escompté.
zerros est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2008, 17h31   #4
Membre actif
 
Avatar de lu6fer
 
Inscription : avril 2008
Messages : 141
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 141
Points : 159
Points : 159
tout depend de ce que tu veux faire avec ton VPN.

si tu veux utilisé ton vpn pour certaine application dans ce cas :
  • Tu crées ton tunnel dans un sous reseau particulier
  • Tu créer, lors de le connexion des clients, une route statique pour ce sous reseau

si tu veux te servir de ton vpn pour faire transité toutes les connexions vers un serveur centralisé
  • Tu crées ton tunnel dans le sous reseau de ton client
  • Tu modifie la route par defaut pour qu'elle pointe sur ton serveur


pour forcer la passerelle du client, il suffit d'avoir un route par defaut avec un metric faible.
Il ira forcement sur celle la (sauf si il y a une autre route plus specifique (pas par defaut)
__________________
"Le logiciel c'est comme le sexe, c'est meilleur quand c'est gratuit"
Linus TORVALD
lu6fer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2008, 18h13   #5
Membre du Club
 
Inscription : septembre 2003
Messages : 183
Détails du profil
Informations forums :
Inscription : septembre 2003
Messages : 183
Points : 46
Points : 46
hehehe. je comprends bien. Je pense que je verrai cette partie lorsque mes connections vpn fonctionneront.

Je bloque sur l'initialisation de la connexion lorsque je la lance sur un poste XP. J'ai créé ma connexion avec l'ip publique du serveur + Type L2TP sur un Windows XP.

Sur le serveur j'ai dû générer un certificat pour le serveur. J'ai donc une clé et un certificat. A partir de ces deux fichiers, j'ai généré un .p12 que j'ai ensuite importer sur le poste client en passant par la MMC.

Le souci c'est que la connexion ne s'initialise pas : erreur 792 (Erreur 792 : la tentative de connexion L2TP a échoué parce que le délai de négociation de sécurité a été dépassé.)

Dans les logs syslog, je ne vois rien arriver. Par contre le tcpdump me dit bien que les requêtes isakmp arrivent.

Voilà la conf ipsec.conf (10.160.252.0 est mon réseau) :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
version	2.0	# conforms to second version of ipsec.conf specification
 
# basic configuration
config setup
	interfaces=%defaultroute
	nat_traversal=yes
	virtual_private=%v4:10.0.0.0/8,%v4:172.16.0.0/12,%v4:192.168.0.0/16,%v4:10.160.252.0/24
	nhelpers=0
 
conn %default
	keyingtries=1
	compress=yes
	disablearrivalcheck=no
	authby=rsasig
	leftrsasigkey=%cert
	rightrsasigkey=%cert
 
conn roadwarrior-l2tp
	type=transport
	left=%defaultroute
	leftcert=vpn.toto.fr.pem
	leftprotoport=17/1701
	right=%any
	rightprotoport=17/1701
	pfs=no
	auto=add
ipsec.secrets :
Code :
: RSA /etc/ipsec.d/private/vpn.toto.fr.key "xxxx"
et les logs ipsec :
Code :
1
2
3
4
5
6
7
8
Jul  7 18:02:15 xxx kernel: NET: Registered protocol family 15
Jul  7 18:02:15 xxx kernel: Initializing IPsec netlink socket
Jul  7 18:02:15 xxx ipsec_setup: KLIPS ipsec0 on eth0 88.x.x.x/255.255.255.0 broadcast 88.x.x.255 
Jul  7 18:02:15 xxx ipsec_setup: ...Openswan IPsec started
Jul  7 18:02:15 xxx ipsec_setup: Starting Openswan IPsec 2.4.6...
Jul  7 18:02:15 xxx ipsec_setup: insmod /lib/modules/2.6.18.1xxx_r6_final/kernel/net/key/af_key.ko 
Jul  7 18:02:15 xxx ipsec_setup: insmod /lib/modules/2.6.18.1xxx_r6_final/kernel/net/ipv4/xfrm4_tunnel.ko 
Jul  7 18:02:15 xxx ipsec_setup: insmod /lib/modules/2.6.18.1xxx_r6_final/kernel/net/xfrm/xfrm_user.ko
Quelqu'un aurait-il une idée ?
zerros est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2008, 18h31   #6
Membre du Club
 
Inscription : septembre 2003
Messages : 183
Détails du profil
Informations forums :
Inscription : septembre 2003
Messages : 183
Points : 46
Points : 46
J'ai quelques logs en plus :

Je crois cerné un peu mieux le prob. La connexion est initiée depuis un PC qui porte le nom d'athena (pc de ma femme). or il n y a pas de clé répondant à ce CN.

Ma question est la suivante : Le certificat .p12 doit-il être généré à partir du certificat et de la clé du serveur ? ou bien puis-je créer un nouveau certificat pour chaque client en le référencant dans /etc/ipsec.secrets ?

Code :
1
2
3
4
5
6
7
8
9
10
"rwxp"[2] x.x.x.x #1: Main mode peer ID is ID_DER_ASN1_DN: 'CN=ATHENA'
"rwxp"[2] x.x.x.x #1: issuer cacert not found
"rwxp"[2] x.x.x.x #1: X.509 certificate rejected
"rwxp"[2] x.x.x.x #1: no RSA public key known for 'CN=ATHENA'
"rwxp"[2] x.x.x.x #1: sending encrypted notification INVALID_KEY_INFORMATION to x.x.x.x:500
"rwxp"[2] x.x.x.x #1: next payload type of ISAKMP Hash Payload has an unknown value: 47
"rwxp"[2] x.x.x.x #1: malformed payload in packet
"rwxp"[2] x.x.x.x #1: sending notification PAYLOAD_MALFORMED to x.x.x.x:500
"rwxp"[2] x.x.x.x #1: max number of retransmissions (2) reached STATE_MAIN_R2
"rwxp"[2] x.x.x.x: deleting connection "rwxp" instance with peer x.x.x.x {isakmp=#0/ipsec=#0}
zerros est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/07/2008, 11h38   #7
Membre actif
 
Avatar de lu6fer
 
Inscription : avril 2008
Messages : 141
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 141
Points : 159
Points : 159
le certificat est encore une autre histoire

les certificats .p12 dit x509, fonctionne sur la base d'autorité de certification.
C'est a dire qu'un certificat n'a de valeur que si il est validé par le certificat de l'autorité de certification.

Donc tu dois créer une autorité (via openssl par exemple) et ensuite générer un certificat par client + un certificat pour ton serveur vpn.

Ainsi a la connexion d'un client sur ton serveur vpn, il lui donnera son certificat et verra qu'il sont de la même autorité de certification, il ce considèrerons valide et la connexion pourra s'établir
__________________
"Le logiciel c'est comme le sexe, c'est meilleur quand c'est gratuit"
Linus TORVALD
lu6fer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/11/2008, 13h06   #8
Membre du Club
 
Inscription : septembre 2003
Messages : 183
Détails du profil
Informations forums :
Inscription : septembre 2003
Messages : 183
Points : 46
Points : 46
Bonjour, bonjour,

Je suis désolé pour tout ce temps sans réponse. J'ai dû abandonner le projet vpn avec openswan pour des raisons de mise en place de routeurs vpn de type cisco et autres zyxel (et ce n'est pas moi qui les ai mis en place :'( ).

Je reviens donc sur ce topic ouvert depuis 2007 car je me remet à openswan aujourd'hui et cette fois-ci le projet est validé et la solution openswan a été retebu. Donc je dois aller jusqu'au bout.

J'ai donc compiler mon kernel avec toutes les options ipsec nécessaires au bon fonctionnement. J'en suis à la création de mon autorité de certification qui va permettre d'auto signer mes futures certificats.

Avant de me lancer, j'ai lu pas mal de tuto pour comprendre les commandes que je tape. Mais je n'ai pas compris grand chose. J'ai compris que j'ai généré une clé avec openssl :
Code :
openssl genrsa -des3 -out private/zerrosCA.key 1024
cette clé est codé en 1024 bits (choix délibéré pour ne pas fragmenter la clé lors des échanges).

Ensuite il faut générer un certificat lié à cette clé :
Code :
openssl req -new -x509 -days 14600 -key private/zerrosCA.key -out cacerts/zerrosCA.pem
Le certificat est au format x509, validé pour 40 ans (365 x 40) et utilise la clé précédemment créé.

Ensuite il paraît qu'il faut signer ce certificat par une autorité de certification. Comment auto-signer mon certificat ?

Cette dernière partie n'est pas très claire pour moi. J'espère que vous pourrez me fournir plus d'explications.
zerros est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2008, 17h07   #9
Membre actif
 
Avatar de lu6fer
 
Inscription : avril 2008
Messages : 141
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 141
Points : 159
Points : 159
je n'utilise généralement pas ce genre de commandes.

Openssl propose un script permettant la création d'une CA (certificate authoritie) très facilement.

Sur les nouvelles versions, ce script ce trouve sur les anciennes Il y a dans ce repertoire, 2 script (CA et CA.pl) ils font la même chose, donc a toi de voir celui qui te plait le plus

a partir de l'un de ces scripts tu peux commencer par créer ta CA
Il te pose une suite de questions et tu vois qu'il y a des réponses prédéfinies.

ces valeurs sont définies dans
Code :
1
2
3
/etc/pki/tls/openssl.cnf
ou
/usr/lib/ssl/openssl.cnf
si tu as plusieurs certificats à générer, c'est une bonne solution.

Une fois terminer, tu te retrouve avec 2 fichier
Code :
1
2
cakey.pem => clé privée
cacert.pem => clé publique

Il faut ensuite créer le certificat de ton utilisateur (un serveur VPN)
Dans ce cas tu te retrouve avec un seul fichier Il s'agit de la demande de certificat, il faut maintenant le validé.
Pour cela :
verifi les informations affichés (elle doivent correspondre a ce que tu viens de rentré).
une fois terminer, tu te retrouve avec un fichier supplementaire ce certificat, contrairement a la CA, contient uniquement la clé publique.
La clé privée étant stocker dans la demande (newreq.pem).
Tu peux sortir cette clé privée de la demande via :
Code :
openssl rsa -in newreq.pem -out newKey.pem
tu te retrouve finalement avec 3 fichiers
Code :
1
2
3
newreq.pem => demande + clée privée
newcert.pem => clé publique signé
newKey.pem => clé privée
renomme les fichiers (chaque nouvelle demande, créera automatiquement des nouveaux fichiers avec ces noms).
conserve le newreq.pem qui de permet de retrouvé la clé privée en cas de perte.

Il ne te reste plus qu'a créer un 2eme certificat pour l'autre serveur, et de configurer openswan pour la prise en comptes des certifs
__________________
"Le logiciel c'est comme le sexe, c'est meilleur quand c'est gratuit"
Linus TORVALD
lu6fer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2008, 11h12   #10
Membre du Club
 
Inscription : septembre 2003
Messages : 183
Détails du profil
Informations forums :
Inscription : septembre 2003
Messages : 183
Points : 46
Points : 46
merci pour les infos. J'ai monté un vpn entre openswan et un zyxel.

Je vais m'attaquer à la partie L2TP la semaine prochaine.
zerros est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h57.


 
 
 
 
Partenaires

Hébergement Web