Mise en place d'un VPN avec OpenVPN - a l'aide !?

Forum sur la sécurité des réseaux, la configuration des firewalls, la mise en place de protections contre les attaques, de DMZ, de systèmes anti-intrusion ...

Modérateur: modos Ixus

Mise en place d'un VPN avec OpenVPN - a l'aide !?

Messagepar jb69 » 26 Sep 2005 07:39

Bonjour à tous,

Voila je suis sur un projet de mettre en place une solution VPN un peu spécifique mais apres lectures de tutos anglais ou francais et tests de dizaines de fichiers de conf je suis a bout, je ne comprend pas tout et cela ne fonctionne presque jamais...

J'ai a ma disposition :

- Un serveur Linux (Fedora Core 2) avec OpenVPN d'installé et une IP Public qu'on appelera aa.bb.cc.dd
- Des clients Windows (2000 / XP Pro)

La version d'OpenVPN est la 2 aussi bien sur le serveur que sur les clients.


Definition de ce que je souhaite faire :

J'ai un serveur : ip public aa.bb.cc.dd
J'ai des clients : bob, peter, john

Je voudrai que les clients puissent établir quand ils le veulent un tunnel VPN entre leur machine sous Windows et le serveur sur le port TCP 443.
Je voudrai qu'une fois le tunnel ouvert, tout leur traffic internet passe à l'interieur de ce tunnel afin de sortir via l'adresse IP Public du serveur (donc : aa.bb.cc.dd)
Je souhaite que le tunnel puisse être ouverte par 1,2, 10 ou 50 clients à la fois si besoin.

Au niveau de la sécurité, une clé pré-partagé du type un fichier cle.key qui soit le meme sur le client et les serveurs suffit dans un premier temps (j'aimerai mieux que chacun ai sa clé mais je ne vois pas comment configurer le serveur pour cela)

J'ai deja fait des tests basic pour faire un tunnel entre un client et le serveur, je n'arrive meme pas a pinguer l'adresse ip de l'extremité du tunnel coté serveur et vice versa :

Coté serveur : serveur.conf
Code: Tout sélectionner
local aa.bb.cc.dd
dev tun
proto tcp
port 443
secret secret.key
ifconfig 192.168.0.1 192.168.0.2
tun-mtu 1500
mssfix 1400
comp-lzo
verb 4


Coté client : client.ovpn
remote aa.bb.cc.dd
dev tun
proto tcp
port 443
secret secret.key
ifconfig 192.168.0.2 192.168.0.1
comp-lzo
tun-mtu 1500
mssfix 1400
redirect-gateway
verb 4


Voila, si quelqu'un a des idées je suis prenneur car je sens que je vais craquer...

PS : J'ai desactivé iptables pour n'avoir aucun blocquage des ports pour les tests , mais en plus il faudra que je comprenne comment ca marche afin de tout finaliser de facon securisé.
jb69
Matelot
Matelot
 
Messages: 8
Inscrit le: 02 Juin 2005 09:49

Messagepar MoiCVincent » 26 Sep 2005 17:45

Salut jb69,

Tu as assez bien expliqué ce que tu veux faire , OpenVpn sait trés bien faire cela !

Par contre il manque quelque chose d'assez important , les logs d'OpenVpn pour voir ce qui ne va pas ...

A+
Vincent

Personellement j'utilise OpenVpn en mode bridge Ethernet avec plusieurs clients avec ip dynamique sur le VPN , chaque client a son propre certificat , le traffic internet n'est pas routé a travers le VPN mais j'ai essayé et ca fonctionne ! Un grod avantage avec le mode bridge , les clients du VPN obtiennent une adresse ip sur le meme reseau que le serveur .
Noubliez pas , On est sur terre pour vivre !
Image
Avatar de l’utilisateur
MoiCVincent
Contre-Amiral
Contre-Amiral
 
Messages: 395
Inscrit le: 08 Jan 2004 01:00
Localisation: Normandie

Messagepar jb69 » 26 Sep 2005 17:56

Mais on est obligé de mettre des certificats et tout ? Moi je voudrai juste un système de clé pré partagé avec un fichier du style toto.key qu'on copie sur le serveur et sur les clients.

Au niveau des logs on les trouve ou ??

Sinon j'ai pas beaucoup délements car je ne sais meme pas si mon fichier de conf est bien structuré...
jb69
Matelot
Matelot
 
Messages: 8
Inscrit le: 02 Juin 2005 09:49

Messagepar MoiCVincent » 26 Sep 2005 18:18

Les logs OPENVPN sous linux sont dans
/var/log/openvpn
/var/log/openvpn.log

Sous windows ils sont affichés directement dans la console quand tu lance le client openvpn ( pas en tant que service je crois )

Pour ce qui est de la clé partagée c'est surement faisable mais j'ai utilisé directement les certificats donc si tu veux utiliser une clé partagé je te laisse te referer au manuel OPEN VPN.

Pour tes fichier de conf , si tu n'est pas sur je te conseille de partir des fichier " sample " de OPENVPN et de les modifier ensuite .

Il est vrai que tes fichier ne ressemblent pas a ce que j'ai de mon coté mais c'est surement du au fait que l'on utilise pas openvpn de la meme facon !
Je suppose ( enfin j'espere pour toi que tu as construit tes fichiers de conf en comprenant un minimum ce que tu as ecrit dedans sinon c'est peut etre la premiere chose a faire.

Autre chose , tes clients sont ils deriere un routeur ? si c'est le cas :
A tu fait un tranfert de port sur celui ci ?

Je pense mais ce n'est que mon avis que pour faire ce que tu veux faire il serait peut etre plus simple d'utiliser le mode " bridged " ainsi qu'un nom de domaine dynamique du type noip ou dyndns meme si tu peux t'en passer pour les essais.

Derniere remarque en ce qui concerne tes fichiers de config , soit tu a mis deux fois le fichier du serveur , soit il faut que tu revoi serieusement le fichier de config du client .

A+ ( avec les logs )
Vincent
Noubliez pas , On est sur terre pour vivre !
Image
Avatar de l’utilisateur
MoiCVincent
Contre-Amiral
Contre-Amiral
 
Messages: 395
Inscrit le: 08 Jan 2004 01:00
Localisation: Normandie

Messagepar jb69 » 26 Sep 2005 21:51

Je te remercie de me lire et de prendre du temps pour me repondre et m'apporter de l'aide.

Il faut donc que j'utilise le mode bridge d'openvpn pour faire ce dont j'ai besoin ?

C'est vrai que si le serveur attribue lui meme une ip aux clients ce sera plus simple mais que faut il mettre en place pour cela ?

En ce qui concerne les certificats c'est sur que le mieux serai que chaque utilisateur en possede un bien a lui ce qui me permettrai en terme d'administration de pouvoir ajouter des users facilement ou d'en supprimer tout en veillant bien a ce qu'ils n'ai plus accès. Mais mettre des certifcats en place ainsi qu'une autorité et tout ca me parait tres complexe !

Je rappel que je suis loin d'etre un pro de linux, je sais faire des choses dessus mais je reste un "newbie" linuxiens.

Il y as un autre point qui me fait peur c'est iptables, comment le vpn va se goupiller avec ca.... Et si je pouvais affiner ma sécurité ensuite ce ne serai pas plus mal.

En ce qui concerne l'environnement des utilisateurs le but est principalement qu'ils puissent se connecter de n'importe ou meme d'une liaison internet tres restreinte (avec seulement un ou deux ports d'ouverts) d'ou l'idée de faire passer le tunnel uniquement sur le port TCP 443 !!!!
Par extension je veux qu'il puissent profiter de l'acces total a internet du serveur (tous les ports sortant) en l'utilisant comme passerelle.

Eventuellement pour un ou deux user j'aimerai aussi pouvoir faire du NAT, comme si le client etait derriere un routeur dans un réseau local (le routeur etant le serveur openvpn) et le réseau etant le tunnel.
Par exemple l ip publique du serveur est aa.bb.cc.dd , l'adresse IP public du client est ww.xx.yy.zz
mais il est derriere un routeur donc aucun moyen d'ouvrir un port entre internet et lui, je voudrai que en me connectant sur le port 21 de aa.bb.cc.dd on se retrouve sur le port 21 de mon client.
Cette fonction est un plus a ce que je veux faire mais n'est pas primordiale et sera configuré au cas par cas.

Merci d'avance pour ton aide !!!
jb69
Matelot
Matelot
 
Messages: 8
Inscrit le: 02 Juin 2005 09:49

Messagepar jb69 » 27 Sep 2005 07:50

PS : Je n'ai aucuns logs, rien dans /var/log ....
jb69
Matelot
Matelot
 
Messages: 8
Inscrit le: 02 Juin 2005 09:49

Messagepar jb69 » 28 Sep 2005 08:04

Salut !

Bon j'ai trouvé un tuto interessant :
http://www.nbs-system.com/article/openvpn2_howto

Par contre j'ai tout fait pour la génération des cles et tout et maintenant mon service ne veux plus demarrer :
Code: Tout sélectionner
Sep 28 07:51:27 TESTSRV openvpn[6335]: Current Parameter Settings:
Sep 28 07:51:27 TESTSRV openvpn[6335]:   config = 'server.conf'
Sep 28 07:51:27 TESTSRV openvpn[6335]:   mode = 1
Sep 28 07:51:27 TESTSRV openvpn[6335]:   persist_config = DISABLED
Sep 28 07:51:27 TESTSRV openvpn[6335]:   persist_mode = 1
Sep 28 07:51:27 TESTSRV openvpn[6335]:   show_ciphers = DISABLED
Sep 28 07:51:27 TESTSRV openvpn[6335]:   show_digests = DISABLED
Sep 28 07:51:27 TESTSRV openvpn[6335]:   show_engines = DISABLED
Sep 28 07:51:27 TESTSRV openvpn[6335]:   genkey = DISABLED
Sep 28 07:51:27 TESTSRV openvpn[6335]:   key_pass_file = '[UNDEF]'
Sep 28 07:51:27 TESTSRV openvpn[6335]: NOTE: --mute triggered...
Sep 28 07:51:27 TESTSRV openvpn[6335]: 166 variation(s) on previous 10 message(s) suppressed by --mute
Sep 28 07:51:27 TESTSRV openvpn[6335]: OpenVPN 2.0.2 i386-redhat-linux [SSL] [LZO] [EPOLL] built on Sep  8 2005
Sep 28 07:51:27 TESTSRV openvpn[6335]: Note: cannot open /var/log/openvpn/status.log for WRITE
Sep 28 07:51:27 TESTSRV openvpn[6335]: Diffie-Hellman initialized with 1024 bit key
Sep 28 07:51:27 TESTSRV openvpn[6335]: Cannot load certificate file ../keys/server-vpn.crt: error:02001002:system library:fopen:No such file or directory: error:20074002:BIO routines:FILE_CTRL:system lib: error:140AD002:SSL routines:SSL_CTX_use_certificate_file:system lib
Sep 28 07:51:27 TESTSRV openvpn[6335]: Exiting
Sep 28 07:51:27 TESTSRV openvpn:  failed
Sep 28 07:52:43 TESTSRV openvpn:  failed
Sep 28 07:54:36 TESTSRV openvpn:  failed



Je me demandais si ce n'etais pas possible de mettre en place une solution OpenVPN en mode bridge sans les certificats !? Car ca reste quand meme compliquer :roll:
jb69
Matelot
Matelot
 
Messages: 8
Inscrit le: 02 Juin 2005 09:49

Messagepar MoiCVincent » 29 Sep 2005 00:45

Salut,

je vois deux choses etranges:

Code: Tout sélectionner
cannot open /var/log/openvpn/status.log for WRITE


ce n'est surement pas tres grave mais verifie l'existance du dossier et les droit qui lui sont attribués.

Code: Tout sélectionner
Sep 28 07:51:27 TESTSRV openvpn[6335]: Cannot load certificate file ../keys/server-vpn.crt: error:02001002:system library:fopen:No such file or directory: error:20074002:BIO routines:FILE_CTRL:system lib: error:140AD002:SSL routines:SSL_CTX_use_certificate_file:system lib

Ca c'est surement plus grave .

Vérifie si openssl est correctement installé sur ta machine !

Je pense efectivement qu'il est possibl d'utiliser des clé partagées meme avec le mode bridge .
Tu peux commencer par des clé partagées si tu sait comment spécifier ca dans les fichiers de conf .

En ce qui concerne la doc , je me suis seulement aidé de la doc du site open vpn que je trouve assez consistante .

http://openvpn.net/howto.html


Pour la mise en place du mode bridged :
http://openvpn.net/bridge.html

Utilisation d'une " static key "
http://openvpn.net/static.html

essaie :

Code: Tout sélectionner
ldconfig -p|grep libssl

( pour vérifier la presence de openssl )

Code: Tout sélectionner
ldconfig -p|grep liblzo

( pour la compression si tu utilise )

Apparament il y a des moyens de tester les fonction ssl et les fonction de cryptage en local :
( je n'ai jamais essayé mais ca peux servir )

Test Crypto:
Code: Tout sélectionner
./openvpn --genkey --secret key
./openvpn --test-crypto --secret key


Test libSSL:
Code: Tout sélectionner
./openvpn --config sample-config-files/loopback-client
./openvpn --config sample-config-files/loopback-server


Voila les fichiers de configuration de base , tu devrai commencer par ca je pense, a pres libre a toi de les reduire au strict minimum.

Pour le serveur http://openvpn.net/howto.html#server
Pour le client http://openvpn.net/howto.html#client

A+
Vincent
Noubliez pas , On est sur terre pour vivre !
Image
Avatar de l’utilisateur
MoiCVincent
Contre-Amiral
Contre-Amiral
 
Messages: 395
Inscrit le: 08 Jan 2004 01:00
Localisation: Normandie


Retour vers Sécurité et réseaux

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit et 0 invité(s)

cron