Client linux debian L2TP/Ipsec - Serveur W2K3

Résolu/Fermé
Felman Messages postés 6 Date d'inscription mardi 30 juin 2009 Statut Membre Dernière intervention 3 juillet 2009 - 30 juin 2009 à 15:21
mamiemando Messages postés 33076 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 17 avril 2024 - 3 juil. 2009 à 11:48
Bonjour tout le monde,

C'est mon premier post sur le net, désolé si celui-ci est mal placé.
Je suis actuellement entrain d'essayer de monter un VPN entre un serveur Windows 2003 et un client linux (sur machine Debian etch 4.0). J'utilise le protocole L2TP/IPsec avec l'utilisation d'une clé pré-partagé.

J'ai d'abord établi ma connexion entre: client Windows et Serveur Windows 2003, pour voir si mon serveur est opérationnel et ça marche très bien.

J'ai fais pas mal de recherche sur le net et n'ai trouvé que des docs sur Linux Serveur VPN et client Windows mais pas l'inverse.
Je commence à me poser la question: est-ce que c'est possible?
J'ai utilisé les paquets suivants:
- racoon: gère les échanges de clés |
- ipsec-tools: gère le protocole IPSec |
- ppp: gère l'encapsulation dans le protocole PPP | Si j'ai bien compris
- l2tpd: emule un client L2TP (LAC) |

Je n'arrive pas à comprendre le liens entre eux à l'intérieur des fichiers de configuration.
Est-ce que quelqu'un aurait déjà fait ce genre de manipulation ?
J'ai aussi testé openswan sans aucun succès non plus

Merci d'avance pour votre aide
Cordialement

10 réponses

mamiemando Messages postés 33076 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 17 avril 2024 7 748
1 juil. 2009 à 00:46
Ce n'est pas vraiment ma spécialité, mais naïvement j'aurais simplement utilisé openvpn, non ?

Bonne chance
0
Felman Messages postés 6 Date d'inscription mardi 30 juin 2009 Statut Membre Dernière intervention 3 juillet 2009
1 juil. 2009 à 10:17
Salut mamiemando,
Merci pour ta réponse.

Je ne peux pas utilisé OpenVPN car il utilise du SSL et j'ai besoin d'utiliser de l'IPSec.
Je susi actuellement entrain de refaire la manip trouvé sur :

http://www.jacco2.dds.nl/networking/linux-l2tp.html#PSK

mais pour l'instant je suis bloqué à la phase Ipsec. J'ai configuré mes fichiers mais lorsque que je relance mon serviec IPsec, j'ai cette erreur:
ipsec__plutorun: 003 FATAL ERROR: bind() failed in find_raw_ifaces(). Errno 98: Address already in use
ipsec__plutorun: !pluto failure!: exited with error status 1
ipsec__plutorun: restarting IPsec after pause...

Comment rectifié cette erreur ?

J'ai donc chercher ça sur google mais aucun succès j'ai stoppé puis redémarré le service mais lorsque je le démarre après l'arrêt il me dit qu'il est déjà lancé... Je ne l'ai pourtant pas mis dans le crontab ou cron.d/
Est-ce que pluto est un package à part de Ipsec ou ils sont directement liés ?

Un Ipsec verify me donne ça:

Checking your system to see if IPsec got installed and started correctly:
Version check and ipsec on-path [OK]
Linux Openswan U2.4.6/K2.6.18-6-686 (netkey)
Checking for IPsec support in kernel [OK]
NETKEY detected, testing for disabled ICMP send_redirects [FAILED]

Please disable /proc/sys/net/ipv4/conf/*/send_redirects
or NETKEY will cause the sending of bogus ICMP redirects!

NETKEY detected, testing for disabled ICMP accept_redirects [FAILED]

Please disable /proc/sys/net/ipv4/conf/*/accept_redirects
or NETKEY will accept bogus ICMP redirects!

Checking for RSA private key (/etc/ipsec.secrets) [DISABLED]
ipsec showhostkey: no default key in "/etc/ipsec.secrets"
Checking that pluto is running [FAILED]
whack: read() failed (104 Connection reset by peer)
Two or more interfaces found, checking IP forwarding [FAILED]
whack: read() failed (104 Connection reset by peer)
Checking for 'ip' command [OK]
Checking for 'iptables' command [OK]
Opportunistic Encryption Support [DISABLED]


Merci d'avance pour votre aide
0
mamiemando Messages postés 33076 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 17 avril 2024 7 748
1 juil. 2009 à 12:28
Concrètement tu en es rendu à quelle étape de ton tutoriel ?

De ce que j'ai vu dans la doc de bind tu rencontres l'erreur : EADDRINUSE La socket a déjà une adresse assignée. C'est vrai que naïvement j'aurais fait comme toi, tenté de relancer le service pour forcer la fermeture de la socket mais apparemment ce n'est pas suffisant.

Ce serait pas mal de savoir un peu plus précisément où ça bloque (peut-être avec netstat) et de relancer le service réseau de ton linux pour tenter de forcer la fermeture du socket. Mais bon comme je t'ai dit ce n'est pas vraiment ma spécialité, donc je te dis ça sans conviction.

Une solution serait peut être aussi de contacter directement l'auteur de tutoriel, car malheureusement c'est quelque chose que je n'ai jamais configuré, donc je vais avoir du mal à t'aider :s
http://www.jacco2.dds.nl/contact/index.html

Bon courage !
0
Felman Messages postés 6 Date d'inscription mardi 30 juin 2009 Statut Membre Dernière intervention 3 juillet 2009
1 juil. 2009 à 14:15
Salut mamiemando

Alors j'en suis au 4.2 IPSec phase.
La socket utilise déjà une adresse ça veut dire quoi concrétement ? Je comprends pas. Le problème est que quand je veux arrêté IPSec via /etc/init.d/ipsec stop, le service ne s'arrête pas puisque quand je le relance il me dit qu'il est déjà lancé alors que je n'ai rien fait.

Le netstat -an me sort une liste, de ce que j'ai compris c'est la correspondance entre adresse et port d'écoute ? Comment puis-je voir le problème ? 2x le même port avec la même adresse ?
Je ne te le poste pas car c'est assez long mais je peux le faire s'il le faut ;).

Je vais tenter de le contacter.
En tout cas quel galère ... Mais on y croit !!!

Merci pour ton aide et pour le temps que tu y passes c'est cool
Je te tiens au courant si j'arrive à le contacter.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Felman Messages postés 6 Date d'inscription mardi 30 juin 2009 Statut Membre Dernière intervention 3 juillet 2009
1 juil. 2009 à 18:05
J'ai avancé dans mon problème...

J'ai donc tout recommencé et n'est plus les erreurs que j'avais avant à mon avis conflit entre des paquets ipsec d'installés ... je pense entre ipsec-tools et openswan je sais pas si c'est ça mais bon ...
Enfin bref
Donc je suis toujours a la partie 4.2 du tuto http://www.jacco2.dds.nl/networking/linux-l2tp.html#PSK

J'utilise donc une clé pré-partagé dans windows serveur 2003 avec le routage d'accès distant
j'ai cliqué sur "Autoriser la stratégie IPSEC personnalisée pour les connexions L2TP"
comme clé jai mis " test " et ok.
Donc sur mon client linux je fais un ipsec auto --up L2TP-PSK-CLIENT
et j'ai comme message :

104 "L2TP-PSK-CLIENT" #9: STATE_MAIN_I1: initiate
003 "L2TP-PSK-CLIENT" #9: ignoring Vendor ID payload [MS NT5 ISAKMPOAKLEY 00000004]
003 "L2TP-PSK-CLIENT" #9: ignoring Vendor ID payload [FRAGMENTATION]
003 "L2TP-PSK-CLIENT" #9: received Vendor ID payload [draft-ietf-ipsec-nat-t-ike-02_n] method set to=106
003 "L2TP-PSK-CLIENT" #9: Can't authenticate: no preshared key found for `172.16.0.107' and `172.16.0.1'. Attribute OAKLEY_AUTHENTICATION_METHOD
003 "L2TP-PSK-CLIENT" #9: no acceptable Oakley Transform
214 "L2TP-PSK-CLIENT" #9: STATE_MAIN_I1: NO_PROPOSAL_CHOSEN

donc en gros ma clé n'est pas bonne c'est normal jusque là enfin pour moi... je dois mettre dans le fichier ipsec.secrets ma clé PSK donc je pense qui est la même que windows soit " test "
Ce que j'ai vu sur internet poru les confs de ce fichiers c'est que les clés sont déjà " crypté " en RSA.
J'ai donc essayé dans mon fichier ipsec.secrets:
(serveur) (client)
192.168.1.1 192.168.1.2 : PSK "test" ---> mais j'ai la même erreur

J'ai aussi essayé:
ipsec newhostkey --output /etc/ipsec.secrets --hostname 192.168.1.2
cela ma bien généré une clé RSA dans mon fichier mais toujours la même erreur...

Ma question est: comment avoir la même PSK que sur mon Serveur W2K3 est-ce qu'il le crypte en RSA lui aussi si oui comment l'obtenir?
Ou sinon comment mettre ma clé pré partagé " test " (non crypté donc) dans ce fichier si c'est possible. Je vois bien mes échanges avec wireshark qui arrivent sur mon serveur, mais ça s'arrête là.

J'espère avoir été assez clair...

Merci d'avance
0
mamiemando Messages postés 33076 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 17 avril 2024 7 748
2 juil. 2009 à 09:56
Quelques suggestions, même si je n'y connais pas grand chose.

Vérifie que tu arrives à router ton trafic jusqu'à 172.16.0.107 et que c'est la bonne adresse. Si on regarde un peu plus loin (étape 5.4 du tutoriel) il semblerait que ce soit peut être le chemin vers la clé et sa passphrase qu'il attend.

Bonne chance
0
Felman Messages postés 6 Date d'inscription mardi 30 juin 2009 Statut Membre Dernière intervention 3 juillet 2009
2 juil. 2009 à 14:12
Salut mamienando!!

Alors j'ai vu le 5.4 du tuto mais cette partie est consacré aux certificats avec échange de clé public et avec lé privé... J'en suis encore qu'au pre-shared key ... La clé pré partagé dont il parle c'est pour protégé les certificats.

Merci quand même.

Sinon j'ai l'impression que ça avance un peu de mon côté (enfin j'espère)...
J'ai pensé que mon windows serveur 2003 était mal configuré mais je pense que c'est bon, j'ai fais au plus simple c'est à dire:
-> dans routage accès distant
-> sur le serveur VPN clique droit
-> Sécurité
-> Coché la case "Autoriser la stratégie IPsec personnalisée pour les connexions L2TP"
-> Clé pré-partagé: test

Je pense qu'il n'y a que ça à faire pour le mettre en place simplement non ? Ma connexion test sous windows XP marche toujours et dans les statuts apparait bien IPsec avec le cryptage qui va bien.

Pour en revenir à mon problème sous Linux:
Dans mon fichier ipsec.secrets j'ai mis:
%any %any: PSK "test" (j'ai essayé avec ou sans " " j'ai l'impression que c'est pareil)

Après avoir tapé ipsec auto --up L2TP-PSK-CLIENT j'ai ceci:

104 "L2TP-PSK-CLIENT" #3: STATE_MAIN_I1: initiate
003 "L2TP-PSK-CLIENT" #3: ignoring Vendor ID payload [MS NT5 ISAKMPOAKLEY 00000004]
003 "L2TP-PSK-CLIENT" #3: ignoring Vendor ID payload [FRAGMENTATION]
003 "L2TP-PSK-CLIENT" #3: received Vendor ID payload [draft-ietf-ipsec-nat-t-ike-02_n] method set to=106
106 "L2TP-PSK-CLIENT" #3: STATE_MAIN_I2: sent MI2, expecting MR2
003 "L2TP-PSK-CLIENT" #3: NAT-Traversal: Result using draft-ietf-ipsec-nat-t-ike-02/03: no NAT detected
108 "L2TP-PSK-CLIENT" #3: STATE_MAIN_I3: sent MI3, expecting MR3
003 "L2TP-PSK-CLIENT" #3: discarding duplicate packet; already STATE_MAIN_I3
003 "L2TP-PSK-CLIENT" #3: discarding duplicate packet; already STATE_MAIN_I3
003 "L2TP-PSK-CLIENT" #3: discarding duplicate packet; already STATE_MAIN_I3
010 "L2TP-PSK-CLIENT" #3: STATE_MAIN_I3: retransmission; will wait 20s for response
003 "L2TP-PSK-CLIENT" #3: discarding duplicate packet; already STATE_MAIN_I3
010 "L2TP-PSK-CLIENT" #3: STATE_MAIN_I3: retransmission; will wait 40s for response
003 "L2TP-PSK-CLIENT" #3: discarding duplicate packet; already STATE_MAIN_I3
003 "L2TP-PSK-CLIENT" #3: next payload type of ISAKMP Hash Payload has an unknown value: 34
003 "L2TP-PSK-CLIENT" #3: malformed payload in packet
031 "L2TP-PSK-CLIENT" #3: max number of retransmissions (2) reached STATE_MAIN_I3. Possible authentication failure: no acceptable response to our first encrypted message
000 "L2TP-PSK-CLIENT" #3: starting keying attempt 2 of at most 3, but releasing whack

Donc apparemment y a un échange de clé (ISAKMP vérifié sous wireshark) mais n'accepte pas la clé alros que c'est la même. Problème du langage de cryptage ?

Si t'as une idée ou quelqu'un d'autre ? C'est bienvenue!
Bizard que personne ne l'ai jamais fais avant...

Merci en tout cas on va y arriver. J'espère que ça pourra servir à quelqu'un...
0
mamiemando Messages postés 33076 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 17 avril 2024 7 748
2 juil. 2009 à 20:09
C'est chaud ton histoire :-) Mais tu sais moi je n'y connais pas grand chose en L2TP c'est assez spécifique comme besoin. Si tu parles bien anglais je pense que tu devrais contacter le gars du tutoriel qui pourrait sans doute t'en dire plus.

De mon côté je peux assurer le soutien psychologique et te donner des idées mais comme ce n'est pas mon domaine c'est peut être à côté de la plaque. Ci-dessous un exemple de ipsec.secrets, peut être remarquera tu une différence fondamentale entre ce que tu as fait et cet exemple ?
https://www.freeswan.org/freeswan_trees/freeswan-1.99/doc/manpage.d/ipsec.secrets.5.html

Vu le message d'erreur (peu répandu sur google) ça sent le truc pas clair. J'ai juste trouvé ça mais c'est en polonais, peut être arriveras-tu avec les extraits de code à en déduire quelque chose ?
https://groups.google.com/forum/#!topic/pl.comp.os.linux/im87c8smyJY
http://translate.google.fr/...

Il est notamment question de : http://www.ietf.org/rfc/rfc2409.txt (section 5.4)

Bonne chance
0
Felman Messages postés 6 Date d'inscription mardi 30 juin 2009 Statut Membre Dernière intervention 3 juillet 2009
3 juil. 2009 à 10:35
Salut mamiemando!!!

Incroyable!!! Mais ça marche !!!
J'espère pouvoir t'aider un jour, je suis orienté réseau dans ma formation...

Bonne journée
Merci pour ton aide
0
mamiemando Messages postés 33076 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 17 avril 2024 7 748
3 juil. 2009 à 11:48
Incroyable!!! Mais ça marche !!!

Ahaha c'est cool, c'est un miracle ^^ Je ne pensais pas qu'on arriverait à bout de ton problème ;-)

J'espère pouvoir t'aider un jour, je suis orienté réseau dans ma formation...

Oui j'avais cru deviné ^^

Si tu peux mettre un bref résumé (le top du top serait un tutoriel dans la faq !) qui décrive ce que tu as fait de A à Z, je pense que les personnes qui seront confrontées à ce genre de problématique apprécieront ;-)
http://www.commentcamarche.net/faq/481 vpn

Bonne continuation
0