OVH Cloud OVH Cloud

probleme de vpn

17 réponses
Avatar
Sebastien Arana
salut à tous,

voilà je desire monter un VPN entre deux machines.
je sais c'est pour du réseau normalement mais bon.

| A |=========VPN=========| B |

dans tous les tuts que j'ai lu, on m'a parlé de gw, etc...; mais ce
n'est pas le fonctionnement que je désire !

ici A est une machine windows X et B un serveur FreeBSD.
j'aimerais juste savoir comment monter un tunnel VPN entre A et B
sachant que je dois obligatoirement utiliser les protos pptp ou l2tp à
cause des clients windows.

quelqu'un a une idée ?

10 réponses

1 2
Avatar
Dada Dada
Bonjour,

Regardes du coté de openvpn.sourceforge.net. Assez facile et rapide à
mettre en place. Marche aussi bien avec les machines Windows.

Bonne continuation

Dada

Sebastien Arana wrote:
salut à tous,

voilà je desire monter un VPN entre deux machines.
je sais c'est pour du réseau normalement mais bon.

| A |=========VPN=========| B |

dans tous les tuts que j'ai lu, on m'a parlé de gw, etc...; mais ce
n'est pas le fonctionnement que je désire !

ici A est une machine windows X et B un serveur FreeBSD.
j'aimerais juste savoir comment monter un tunnel VPN entre A et B
sachant que je dois obligatoirement utiliser les protos pptp ou l2tp à
cause des clients windows.

quelqu'un a une idée ?


Avatar
manu
Sebastien Arana wrote:

voilà je desire monter un VPN entre deux machines.
je sais c'est pour du réseau normalement mais bon.

| A |=========VPN=========| B |

dans tous les tuts que j'ai lu, on m'a parlé de gw, etc...; mais ce
n'est pas le fonctionnement que je désire !

ici A est une machine windows X et B un serveur FreeBSD.
j'aimerais juste savoir comment monter un tunnel VPN entre A et B
sachant que je dois obligatoirement utiliser les protos pptp ou l2tp à
cause des clients windows.


Je suppose que c'est le scenario de l'accès distant des usagers, à coup
de login/mot de passe, avec dans le cahier des charges un client à
interface graphique facile d'emploi.

PPTP est une mauvaise idée. Problèmes de sécurité, même Microsoft s'en
eloigne et adopte l2tp/ipsec

En L2TP/IPsec, tu dois avoir une communication IPsec sécurisée pour
pouvoir faire passer le login/mot de passe au niveau L2TP sans risque de
te le faire capturer.

Pour sécuriser cette communication, tu peux utiliser un mot de passe de
groupe (le même pour tout le monde), ce qui est connu pour être non sûr.
Ou alors tu dois utiliser des certificats, ce qui implique de deployer
des certificats aux utilisateurs: est-ce possible dans l'etat de ton
organisation?

Note que si tu donne le même certificat à tous tes utilisateurs, tu
conserve un niveau de sécurité raisonnable: tant que le certificat de
ton serveur restera non compris, personne ne pourra intercepter le
login/mot de passe envoyé au niveau L2TP. C'est un niveau de sécurité
equivalent à se connecter par login/mot de passe en SSH à un serveur
dont on connait déjà la clé.

Si tu suit cette piste, tu dois commencer par configurer IPsec, ca se
passe au niveau de la commande setkey et du daemon racoon. NetBSD a pas
mal de bonne documentation sur le sujet, qui s'applique aussi à FreeBSD:
http://www.netbsd.org/Documentation/network/ipsec/

Par dessus, il faut utiliser un daemon L2TP, soit l2tpd soit rp-l2tp.
Ces deux daemons sont encore à un état assez imature, et j'ai du faire
quelques petits patches pour les faire fonctionner dans la config qui
nous interesse.

L2TP encapsulant PPP, tu dois aussi configurer pppd (ou ppp), et
eventuellement recompiler ton kernel pour ajouter un grand nombre
d'interfaces ppp si tu as beaucoup de clients.

La configuration coté Windows n'est pas aisée. De plus, racoon ne
supportant pas le NAT-Traversal (NAT-T), cela ne fonctionne pas quand le
client est placé derrière un translateur d'adresses. La distribution
ipsec-tools de racoon a le support de NAT-T mais il y a besoin de
support dans le noyau que ni FreeBSD ni NetBSD n'ont inclus. Quelqu'un a
fait un patch pour FreeBSD 4, et je travaille en ce moment à faire le
support dans NetBSD.

Tout cela est complexe, mais gérable. Le plus pénible est sans doute la
config coté Windows. Elle aura je pense tendance à faire sonner le
téléphone de l'administrateur. La présence d'un translateur d'adresses
coté client est redhibitoire, sauf à utiliser le racoon de ipsec-tools
sous Linux.

Il y a des alternatives. Cisco vends un concentrateur d'accès matériel:
le Cisco VPN 3000. Ce truc est une infamie ignoble à administrer, mais
il vient avec un client VPN très bien foutu pour lequel tu as une
license illimité. Ca utilise IPsec + Xauth pour les login/mot de passe.

Ca a exactement le même problème que L2TP/IPsec pour la sécurisation de
la communication afin d'envoyer le login/mot de passe, mais Cisco a
recemment amélioré son client en ajoutant une extension à IPsec qui
rends l'authentification asymetrique: le serveur peut s'authentifier au
client à coup de certificat alors que le client ne s'authentifie au
serveur qu'à coup de login/mot de passe. C'est l'authentification
hybride. On obtient un client très facile à deployer et un VPN à accès
par login/mot de passe qui est sécurisé.

Point noir dans ce tableau, c'est l'ignoble VPN 3000 et son interface
d'administration web. Pour m'en debarasser, j'ai ajouté le support de
l'authentification hybride à racoon, le démon d'echange de clés utilisé
dans NetBSD et FreeBSD. Donc je peux remplacer le VPN 3000 par une
machine NetBSD et utiliser le client VPN Cisco. Ces modifications
fonctionnent mais pour le moment elles n'ont pas été intégrées à la
distribution officielle de racoon, chez KAME. Le patch est contre le
racoon distribué par KAME, pas contre celui d'ipsec-tools (mais je le
ferai probablement).

Autre problème: toujours impossible de traverser un translateur
d'adresses en utilisant racoon. Le VPN 3000 saura le faire, par contre.
Comme je le dis plus haut, je travaille en ce moment à combler cette
lacune.

Dernier problème: le client VPN Cisco intercepte toutes les
communications IPsec, il n'est donc pas possible d'utiliser les couches
IPsec de Windows sur le client qui est en train d'utiliser le client VPN
Cisco. En ce qui me concerne ca ne me pose pas de problème.

Voila, y'a pas à dire, t'as une réponse complete, t'es gaté.

--
Emmanuel Dreyfus
Publicité subliminale: achetez ce livre!
http://www.eyrolles.com/Informatique/Livre/9782212114638/livre-bsd.php


Avatar
manu
Dada Dada wrote:

Regardes du coté de openvpn.sourceforge.net. Assez facile et rapide à
mettre en place. Marche aussi bien avec les machines Windows.


Il veut utiliser le client à interface graphique de Windows,
visiblement, puisqu'il demande PPTP ou L2TP. On a ajouté un GUI à
OpenVPN?

--
Emmanuel Dreyfus
Le cahier de l'admin BSD 2eme ed. est dans toutes les bonnes librairies
http://www.eyrolles.com/Informatique/Livre/9782212114638/livre-bsd.php


Avatar
Olivier Cherrier
On 2004-09-09, Sebastien Arana wrote:

ici A est une machine windows X et B un serveur FreeBSD.
j'aimerais juste savoir comment monter un tunnel VPN entre A et B
sachant que je dois obligatoirement utiliser les protos pptp ou l2tp à
cause des clients windows.


Dans les ports de FreeBSD, cherche MPD. Il peut faire serveur PPTP.

oc

Avatar
manu
Xavier wrote:

De plus, racoon ne supportant pas le NAT-Traversal (NAT-T), cela ne
fonctionne pas quand le client est placé derrière un translateur
d'adresses.


Dans MacOSX, ça marche : je suis derrière un ipf/ipnat à la maison, et
j'arrive à atteindre le XServe du boulot (qui est lui aussi derrière un
ipf/ipnat)


Oui, le support NAT-T introduit dans Linux provient de la version
contribuée par Apple.

Tu utilise quoi comme client et comme protocole? L2TP avec un secret
prepartagé pour l'athentification niveau IPsec? T'es le seul usager?

--
Emmanuel Dreyfus
Le cahier de l'admin BSD 2eme ed. est dans toutes les bonnes librairies
http://www.eyrolles.com/Informatique/Livre/9782212114638/livre-bsd.php



Avatar
Sebastien Arana
Sebastien Arana wrote:


voilà je desire monter un VPN entre deux machines.
je sais c'est pour du réseau normalement mais bon.

| A |=========VPN=========| B |

dans tous les tuts que j'ai lu, on m'a parlé de gw, etc...; mais ce
n'est pas le fonctionnement que je désire !

ici A est une machine windows X et B un serveur FreeBSD.
j'aimerais juste savoir comment monter un tunnel VPN entre A et B
sachant que je dois obligatoirement utiliser les protos pptp ou l2tp à
cause des clients windows.



Je suppose que c'est le scenario de l'accès distant des usagers, à coup
de login/mot de passe, avec dans le cahier des charges un client à
interface graphique facile d'emploi.

PPTP est une mauvaise idée. Problèmes de sécurité, même Microsoft s'en
eloigne et adopte l2tp/ipsec

En L2TP/IPsec, tu dois avoir une communication IPsec sécurisée pour
pouvoir faire passer le login/mot de passe au niveau L2TP sans risque de
te le faire capturer.

Pour sécuriser cette communication, tu peux utiliser un mot de passe de
groupe (le même pour tout le monde), ce qui est connu pour être non sûr.
Ou alors tu dois utiliser des certificats, ce qui implique de deployer
des certificats aux utilisateurs: est-ce possible dans l'etat de ton
organisation?

Note que si tu donne le même certificat à tous tes utilisateurs, tu
conserve un niveau de sécurité raisonnable: tant que le certificat de
ton serveur restera non compris, personne ne pourra intercepter le
login/mot de passe envoyé au niveau L2TP. C'est un niveau de sécurité
equivalent à se connecter par login/mot de passe en SSH à un serveur
dont on connait déjà la clé.

Si tu suit cette piste, tu dois commencer par configurer IPsec, ca se
passe au niveau de la commande setkey et du daemon racoon. NetBSD a pas
mal de bonne documentation sur le sujet, qui s'applique aussi à FreeBSD:
http://www.netbsd.org/Documentation/network/ipsec/

Par dessus, il faut utiliser un daemon L2TP, soit l2tpd soit rp-l2tp.
Ces deux daemons sont encore à un état assez imature, et j'ai du faire
quelques petits patches pour les faire fonctionner dans la config qui
nous interesse.

L2TP encapsulant PPP, tu dois aussi configurer pppd (ou ppp), et
eventuellement recompiler ton kernel pour ajouter un grand nombre
d'interfaces ppp si tu as beaucoup de clients.

La configuration coté Windows n'est pas aisée. De plus, racoon ne
supportant pas le NAT-Traversal (NAT-T), cela ne fonctionne pas quand le
client est placé derrière un translateur d'adresses. La distribution
ipsec-tools de racoon a le support de NAT-T mais il y a besoin de
support dans le noyau que ni FreeBSD ni NetBSD n'ont inclus. Quelqu'un a
fait un patch pour FreeBSD 4, et je travaille en ce moment à faire le
support dans NetBSD.

Tout cela est complexe, mais gérable. Le plus pénible est sans doute la
config coté Windows. Elle aura je pense tendance à faire sonner le
téléphone de l'administrateur. La présence d'un translateur d'adresses
coté client est redhibitoire, sauf à utiliser le racoon de ipsec-tools
sous Linux.

Il y a des alternatives. Cisco vends un concentrateur d'accès matériel:
le Cisco VPN 3000. Ce truc est une infamie ignoble à administrer, mais
il vient avec un client VPN très bien foutu pour lequel tu as une
license illimité. Ca utilise IPsec + Xauth pour les login/mot de passe.

Ca a exactement le même problème que L2TP/IPsec pour la sécurisation de
la communication afin d'envoyer le login/mot de passe, mais Cisco a
recemment amélioré son client en ajoutant une extension à IPsec qui
rends l'authentification asymetrique: le serveur peut s'authentifier au
client à coup de certificat alors que le client ne s'authentifie au
serveur qu'à coup de login/mot de passe. C'est l'authentification
hybride. On obtient un client très facile à deployer et un VPN à accès
par login/mot de passe qui est sécurisé.

Point noir dans ce tableau, c'est l'ignoble VPN 3000 et son interface
d'administration web. Pour m'en debarasser, j'ai ajouté le support de
l'authentification hybride à racoon, le démon d'echange de clés utilisé
dans NetBSD et FreeBSD. Donc je peux remplacer le VPN 3000 par une
machine NetBSD et utiliser le client VPN Cisco. Ces modifications
fonctionnent mais pour le moment elles n'ont pas été intégrées à la
distribution officielle de racoon, chez KAME. Le patch est contre le
racoon distribué par KAME, pas contre celui d'ipsec-tools (mais je le
ferai probablement).

Autre problème: toujours impossible de traverser un translateur
d'adresses en utilisant racoon. Le VPN 3000 saura le faire, par contre.
Comme je le dis plus haut, je travaille en ce moment à combler cette
lacune.

Dernier problème: le client VPN Cisco intercepte toutes les
communications IPsec, il n'est donc pas possible d'utiliser les couches
IPsec de Windows sur le client qui est en train d'utiliser le client VPN
Cisco. En ce qui me concerne ca ne me pose pas de problème.

Voila, y'a pas à dire, t'as une réponse complete, t'es gaté.



oua !
merci beaucoup, c'est ce que j'appelle effectivement une réponse
exhaustive ! je vais lire le tout à tête reposée hein :) parceque là y a
encore des points obscures :)

en fait je tente juste d'établir une connexion VPN entre un client
mobile à ip dynamique et un serveur fixe à ip statique. le fait de
vouloir monter ce vpn, c'est tout simplement de cacher certains services
derrière le par feux, uniquement acessible pas vpn.

monter un vpn, c'est juste pour le fun en quelques sortes, je n'ai pas
de vrai besoin quand à la chose, mais bon je l'ai prévue comme tel dès
le debut donc je persevere :)

merci beaucoup pour les renseignements,
c'est bien sympas à vous de prendre le temps d'écrire autant pour bien
situer les problèmes dont je n'étais même pas au courant.

merci et bonne journée !


Avatar
Sebastien Arana

Dada Dada wrote:


Regardes du coté de openvpn.sourceforge.net. Assez facile et rapide à
mettre en place. Marche aussi bien avec les machines Windows.



Il veut utiliser le client à interface graphique de Windows,
visiblement, puisqu'il demande PPTP ou L2TP. On a ajouté un GUI à
OpenVPN?



oui, sous windows 2k et xp on peut créer facilement de manière graphique
une connexion VPN sur un serveur distant (encore que la méthode avec
chap est facile, celle par clef... me semble plus 'tricky')

pour openvpn, pas d'interface graphique sous windows en bundle, mais il
me semble qu'il y avait un projet sur sourceforge
(http://sourceforge.net/projects/openvpnmanager/ et
http://sourceforge.net/projects/openvpngui/ )


Avatar
Sebastien Arana

Bonjour,

Regardes du coté de openvpn.sourceforge.net. Assez facile et rapide à
mettre en place. Marche aussi bien avec les machines Windows.

Bonne continuation

Dada

Sebastien Arana wrote:

salut à tous,

voilà je desire monter un VPN entre deux machines.
je sais c'est pour du réseau normalement mais bon.

| A |=========VPN=========| B |

dans tous les tuts que j'ai lu, on m'a parlé de gw, etc...; mais ce
n'est pas le fonctionnement que je désire !

ici A est une machine windows X et B un serveur FreeBSD.
j'aimerais juste savoir comment monter un tunnel VPN entre A et B
sachant que je dois obligatoirement utiliser les protos pptp ou l2tp à
cause des clients windows.

quelqu'un a une idée ?



merci :)


Avatar
Pascal Cabaud
Le Thu, 9 Sep 2004 21:33:03 +0200, Emmanuel Dreyfus disait :
Pour sécuriser cette communication, tu peux utiliser un mot de passe de
groupe (le même pour tout le monde), ce qui est connu pour être non sûr.
Ou alors tu dois utiliser des certificats, ce qui implique de deployer
des certificats aux utilisateurs: est-ce possible dans l'etat de ton
organisation?


<http://devel.it.su.se/projects/CSP/> et tout est plus simple ;-)

Avatar
VANHULLEBUS Yvan
(Emmanuel Dreyfus) writes:

Xavier wrote:

[Racoon, NAT-T]

Dans MacOSX, ça marche : je suis derrière un ipf/ipnat à la maison, et
j'arrive à atteindre le XServe du boulot (qui est lui aussi derrière un
ipf/ipnat)


Oui, le support NAT-T introduit dans Linux provient de la version
contribuée par Apple.


Relis mes mails ! :-)

C'est le NAT-T que j'ai reporte dans FreeBSD qui est base sur la
version de chez Apple.

La version Linux, a ma connaissance, est un dev completement separe.


A +

VANHU.


1 2