MNF2 deboggage OpenVPN

Le MNF (Multi Network Firewall) est un des produits pare-feu les plus richement pourvus en fonctionnalités du marché. Il est basé sur un kernel Linux 2.4 sécurisé. Ce forum est également destiné à accueillir tous les posts concernants les distributions Mandriva (anciennement Mandrake)

Modérateur: modos Ixus

MNF2 deboggage OpenVPN

Messagepar Ludodo » 15 Juin 2006 12:22

Bonjour a tous,

Je travaille sur la mise en place d'un VPN dont la structure est la suivante :

LAN1 : 192.168.45.X (environnement W2K)
LAN2 : 192.168.0.X
DMZ : 192.168.80.X

LAN1---(eth1)MNF_B(Eth0-Tun0)---Modem Adsl ---/\/\/---Routeur Mat ---(eth0-Tun0)MNF_A(eth1)--- LAN2

Avec pour le LAN2 la config suivante :

LAN2
|
MNF_A
|
Routeur Mat (DNAT) ----/\/\/
|
DMZ (HTTP, FTP)

J'utilise OpenVPN (car avec FreeSwan, l'interface ipsec0 n'apparait pas ?!). J'ai suivi la documentation "Mandriva Guide MNF2" de Yves-Gwenael Bourhis et Vincent Cuirassier. MNF_A est configuré en serveur VPN, MNF_B en client VPN.

La gestion des certificats se fait bien, le VPN se fait sur la plage 192.168.100.X, le client openvpn pour windows se connecte bien dans le LAN1. Je peux pinguer les adresses du LAN2 depuis le LAN1.

Ce qui ne marche pas : l'exploration dans le voisinage reseau windows :? . J'ai pensé à un probléme de pare-feu ou de routage, et c'est la qu'intervienne mes questions :
Dans les règles du pare-feu, j'ai ajouté les deux règles suivantes
Client Server Policy
vpn all ACCEPT
all vpn ACCEPT

Si je comprends bien ces règles, toute echange d'un element du VPN à l'autre ne doit pas etre filtré par mon pare-feu, non ? Il me parait donc inutile d'ouvrir le port UDP 1194 ? Pourtant j'ai du le faire !? Serait-ce le Netbeui qui ne passe pas ? J'ai ouvert le port UDP 137, pas mieux...

Si quelqu'un a des idées sur ou je dois chercher, merci beaucoup
Ludodo
Matelot
Matelot
 
Messages: 9
Inscrit le: 15 Juin 2006 10:43
Localisation: Orléans

Re: MNF2 deboggage OpenVPN

Messagepar ybourhis » 29 Juin 2006 17:27

Ludodo a écrit:J'utilise OpenVPN (car avec FreeSwan, l'interface ipsec0 n'apparait pas ?!). J'ai suivi la documentation "Mandriva Guide MNF2" de Yves-Gwenael Bourhis et Vincent Cuirassier. MNF_A est configuré en serveur VPN, MNF_B en client VPN.

La gestion des certificats se fait bien, le VPN se fait sur la plage 192.168.100.X, le client openvpn pour windows se connecte bien dans le LAN1. Je peux pinguer les adresses du LAN2 depuis le LAN1.

Ce qui ne marche pas : l'exploration dans le voisinage reseau windows :? . J'ai pensé à un probléme de pare-feu ou de routage, et c'est la qu'intervienne mes questions :
Dans les règles du pare-feu, j'ai ajouté les deux règles suivantes
Client Server Policy
vpn all ACCEPT
all vpn ACCEPT


Ok. Par contre dans ma doc je dis bien que c'est une "policy" temporaire mais il faut la durcir en mode de production.

Ludodo a écrit:Si je comprends bien ces règles, toute echange d'un element du VPN à l'autre ne doit pas etre filtré par mon pare-feu, non ? Il me parait donc inutile d'ouvrir le port UDP 1194 ? Pourtant j'ai du le faire !? Serait-ce le Netbeui qui ne passe pas ? J'ai ouvert le port UDP 137, pas mieux...


Si il y a "generic:udp:1194" dans /etc/shorewall/tunnels il est inutile d'ajouter une rêgle.

Ensuite, le LAN1 du VPN client est informé des routes vers le LAN2 du VPN serveur, mais le LAN2 du VPN serveur ne peut accéder au LAN1 du VPN client.

Solution 1 : Tu ajoutes des routes static du serveur vers le client.

Solution 2 : sur le serveur tu masquerade ce qui vient du VPN et LAN1 vers le LAN2.

Solution 3 de loin la meilleure:
Pour que ton LAN2 du serveur accède au LAN1 du client, et vice versa, il faut éditer le fichier de conf du vpn serveur dans /etc/openvpn/server.conf (enfin le nom que tu as donné au fichier serveur) et ajouter manuellement ceci:

client-config-dir /etc/openvpn/ccd
route 192.168.45.0 255.255.255.0

ensuite tu créés le répertoire suivant:
/etc/openvpn/ccd
et dedans tu créés un fichier qui porte "exactement le même nom" que celui que tu as donné au client dans la création du certificat (nom donné dans le champ "common name" dans la gestion des certificats).
Dans ce fichier portant le "common name" du certificat client tu ajoute ces lignes :

iroute 192.168.45.0 255.255.255.0
(ne pas oublier le "i" à "iroute" ci-dessus, ce n'est pas une faute de frappe ;-) )

redémarres le serveur :
service openvpn restart
redémarres le client:
service openvpn restart

les deux réseau accèdent à présent l'un à l'autre.
ATTENTION toute modif d'OpenVPN via l'interface web d'admin de la MNF suprimeras les lignes:

client-config-dir /etc/openvpn/ccd
route 192.168.45.0 255.255.255.0

qu'il faudra que tu remette à nouveau.

Ensuite il se peut par contre que les postes windows n'acceptent pas de connection venant d'un réseau/netmask qui n'est pas le même, dans ce cas c'est la conf réseau des postes windows à modifier pour qu'il accepte tout des IPs de LAN1, LAN2 et VPN.

Doc openvpn "presque" complette :
http://people.mandriva.com/~ybourhis/openvpn/index.html
j'y ajouterais la section sur les routes spécifiques au client quand j'en aurais le temps.
ainsi que la gestion des clefs cripto (avec openvpn 2.1 qui est encore en bêta) quand j'en aurais le temps aussi.

Sinon, tu peux toujours faire un VPN bridgé (à la main, non faisable via l'interface d'admine) en suivant cette doc:
http://people.mandriva.com/~ybourhis/op ... edvpn.html

désolé si je réponds pas souvens ici, à cause du temps... tests cooker 2007 oblige :-)

Bon courrage.
--
Yves-Gwenael Bourhis
ybourhis
Matelot
Matelot
 
Messages: 3
Inscrit le: 29 Juin 2006 16:26

Merci Yves-Gwenael

Messagepar Ludodo » 01 Juil 2006 16:37

Reponse longue et dense...Merci pour cette attention.
J'ai hate de tester tout ca, mais je suis retenu loin de ces problematiques pendant une bonne semaine, voir plus car mes vacances arrivent ;)
Je testerai et remonterai ce qui marche...ou marche pas :p

Encore merci
Ludovic
Ludodo
Matelot
Matelot
 
Messages: 9
Inscrit le: 15 Juin 2006 10:43
Localisation: Orléans

Re: MNF2 deboggage OpenVPN

Messagepar Ludodo » 03 Août 2006 11:14

ybourhis a écrit:
Ludodo a écrit:Si je comprends bien ces règles, toute echange d'un element du VPN à l'autre ne doit pas etre filtré par mon pare-feu, non ? Il me parait donc inutile d'ouvrir le port UDP 1194 ? Pourtant j'ai du le faire !? Serait-ce le Netbeui qui ne passe pas ? J'ai ouvert le port UDP 137, pas mieux...


Si il y a "generic:udp:1194" dans /etc/shorewall/tunnels il est inutile d'ajouter une rêgle.


De retour de vacances, je me replonge dans mon VPN. J'explore petit a petit les infos que tu m'as donné. Je confirme que pour que la communication entre le serveur VPN et le client s'etablisse, je suis obligé d'ajouter une regle dans le pare-feu du client :
ACCEPT fw wan udp 1194 VPN

Sinon, le pare-feu bloque :
Aug 3 10:46:30 fw kernel: Shorewall:fw2all:REJECT:IN= OUT=ppp0 SRC=86.221.148.X DST=86.199.220.X LEN=42 TOS=0x00 PREC=0x00 TTL=64 ID=3 DF PROTO=UDP SPT=1194 DPT=1194 LEN=22

Je testerai la suite quand j'aurai un client du LAN1 sous la main ;)

Merci
Ludovic
Ludodo
Matelot
Matelot
 
Messages: 9
Inscrit le: 15 Juin 2006 10:43
Localisation: Orléans

Re: MNF2 deboggage OpenVPN

Messagepar ybourhis » 04 Août 2006 16:00

Ludodo a écrit:De retour de vacances, je me replonge dans mon VPN. J'explore petit a petit les infos que tu m'as donné. Je confirme que pour que la communication entre le serveur VPN et le client s'etablisse, je suis obligé d'ajouter une regle dans le pare-feu du client :
ACCEPT fw wan udp 1194 VPN

Sinon, le pare-feu bloque :
Aug 3 10:46:30 fw kernel: Shorewall:fw2all:REJECT:IN= OUT=ppp0 SRC=86.221.148.X DST=86.199.220.X LEN=42 TOS=0x00 PREC=0x00 TTL=64 ID=3 DF PROTO=UDP SPT=1194 DPT=1194 LEN=22

Je testerai la suite quand j'aurai un client du LAN1 sous la main ;)

Merci
Ludovic


De rien,

Mais si tu édites le fichier /etc/shorewall/tunnels et que dedans tu mets:
generic:udp:1194 net 0.0.0.0/0 vpn
ou seulement
generic:udp:1194

Il n'y a alors besoin d'aucune regle dans /etc/shorewall/rules.
mais n'oublie pas de configurer la zone vpn dans:
/etc/shorewall/policy

Par contre, si /etc/shorewall/tunnels ne contient pas de regle il faut effectivement ajouter
ACCEPT fw wan udp 1194 VPN
dans /etc/shorewall/rules.

Personnellement, je trouves que de ne rien mettre dans /etc/shorewall/rules, et mettre:
generic:udp:1194
dans
/etc/shorewall/tunnels
ça fait plus "propre" et plus "parlant".

À toi de voire :-)

petit lien pour configurer shorewall avec openvpn:
http://people.mandriva.com/~ybourhis/op ... figuration
dans /etc/shorewall/interfaces
tu peux remplacer :
vpn tun0
par:
vpn tun+
(ça marche ainsi quel que soit le N° de "tun").

pour un tunnel avec tap remplacer "tun+" par "tap+"

Tiens nous au courrant.
--
Yves-Gwenael Bourhis
ybourhis
Matelot
Matelot
 
Messages: 3
Inscrit le: 29 Juin 2006 16:26

De mieux en mieux

Messagepar Ludodo » 08 Août 2006 10:56

Bonjour a tous,

Grace aux indications de Yves-gwenael, j'avance, bien meme.

J'arrive a activer le tunnel entre client et serveur, je peux pinguer tous les postes de LAN1 depuis LAN2, je peux afficher les partages de fichiers de LAN1 dans LAN2 en indiquant l'adresse IP du poste dans LAN1, je peux faire du VNC depuis LAN2 vers LAN1.
Voila pour ce qui marche, c'est deja ENORME ;)

Ca qui posait probleme ou que je crois avoir compris :
- penser a ajouter un masque sur le rezo VPN dans shorewall/masq du serveur
eth[lan1] 192.168.100.0/24
- aucune règle sur les ports relatifs a netbeui a mettre en place, seul la gestion du tunnel sur le port UDP 1194 suffit
- le tunnel s'etablit directement depuis n'importe quel poste client, il n'est pas nécessaire que la passerelle coté client (LAN2) est openVPN de lancé, mais par contre il faut bien que le port uDP1194 y soit géré
- il faut nommer les machines de LAN1 depuis LAN2 avec leurs adresses IP local du LAN1
- toutes les machines du LAN2 auront la meme adresse IP de reseau privé (plage 192.168.100.0 dans mon cas)

Ce qui me pose encore soucis :

# je suis encore obligé d'ouvrir le port 1194 (cote client ET serveur) via shorewall/rules. Pourtant, je crois avoir tout fait pour l'éviter en indiquant ce qui suit dans les differents fichiers (serveur et client):
/etc/shorewall/zones
lan LAN local_area
wan NET internet
vpn VPN tunnel_vpn

/etc/shorewall/policy
vpn all ACCEPT info
all vpn ACCEPT info

/etc/shorewall/interfaces
vpn tun0 detect

/etc/shorewall/tunnels
generic:udp:1194 wan 0.0.0.0/0 vpn


# je ne peux explorer le domaine de LAN1 depuis LAN2, il me faut indiquer les adresses IP de LAN1 directement dans LAN2. Pas de resolution de nom, pas etonnant car je n'ai pas de DNS local, mais je me disais que NETBEUI aurait pu suffir ?

# Je n'ai pas encore testé le lien dans l'autre sens, depuis LAN1 vers LAN2. Je testerai ta proposition la dessus Yves-gwenael dans l'apres-midi si je ne suis pas dérangé :roll:

En esperant que mon experience de neophite profite a d'autres
:)
Ludodo
Matelot
Matelot
 
Messages: 9
Inscrit le: 15 Juin 2006 10:43
Localisation: Orléans

Re: De mieux en mieux

Messagepar Ludodo » 08 Août 2006 16:49

Auto-reponse ci-dessous :

Ludodo a écrit: - le tunnel s'etablit directement depuis n'importe quel poste client, il n'est pas nécessaire que la passerelle coté client (LAN2) est openVPN de lancé, mais par contre il faut bien que le port uDP1194 y soit géré
- toutes les machines du LAN2 auront la meme adresse IP de reseau privé (plage 192.168.100.0 dans mon cas)


J'avais donc rien compris :oops:
En fait il faut UNE CLE PAR POSTE CLIENT des differents LAN. Une seule cle par site, ca ne marche pas puisqu'on "bump" le poste qui utilise deja cette cle. Cf doc openVPN
http://openvpn.net/faq.html ("I've set up an OpenVPN server, and successfully connected a client to it, but when I try to connect a second client, the first client gets bumped off the VPN. What's the problem?")


Ludodo a écrit:# je suis encore obligé d'ouvrir le port 1194 (cote client ET serveur) via shorewall/rules.

Toujours pas resolu

Ludodo a écrit:# je ne peux explorer le domaine de LAN1 depuis LAN2, il me faut indiquer les adresses IP de LAN1 directement dans LAN2. Pas de resolution de nom, pas etonnant car je n'ai pas de DNS local, mais je me disais que NETBEUI aurait pu suffir ?

Encore une fois Cf la FAQ openVPN "What is the difference between bridging and routing?"
Si j'ai bien tout compris, il faut utiliser l'Ethernet Bridging, vous confirmez ??

Ludodo a écrit:# Je n'ai pas encore testé le lien dans l'autre sens, depuis LAN1 vers LAN2. Je testerai ta proposition la dessus Yves-gwenael dans l'apres-midi si je ne suis pas dérangé :roll:

Avec les ajouts proposés par Yves-Gwenael ca marche, voir sa premiere reponse, solution 3 (UP)

Nouveau probleme se posant a moi. En fait j'ai un site maitre, et 3 sites distants avec lesquels je veux etablir un lien VPN. Faut-il que je cree un tunnel par site sur des ports differents pour chacun ? Pour l'instant, je cherche juste a etablir la liaison entre le site maitre et chaque site distant, pas entre les sites distants. Merci
Ludodo
Matelot
Matelot
 
Messages: 9
Inscrit le: 15 Juin 2006 10:43
Localisation: Orléans

Re: De mieux en mieux

Messagepar ybourhis » 26 Sep 2006 10:51

Ludodo a écrit:Auto-reponse ci-dessous :

Nouveau probleme se posant a moi. En fait j'ai un site maitre, et 3 sites distants avec lesquels je veux etablir un lien VPN. Faut-il que je cree un tunnel par site sur des ports differents pour chacun ? Pour l'instant, je cherche juste a etablir la liaison entre le site maitre et chaque site distant, pas entre les sites distants. Merci


Pour cella, il suffira d'utiliser la directive "client-config-dir ccd" (voir ma première réponse ci-dessus) , ajouter en plus sur le serveur un : 'push "route ......" ' par client Et aussi un "route ...." correspondant au lan de chaque client (et donc le ethernet bridging est exclu sinon ça ne marchera pas).
Ensuite, pour que chaque client communique entre eux, il faut décomenter l'option "client-to-client" (en enlevant le point-virgule qu'est devant).

Par contre, en n'utilisant pas le "ethernet bridging", il faut que chaque serveur/client soit :
- Soit la gateway par defaut des autres machines dans le LAN du client/serveur.
- Soit dans les tables de routage de chaque machine dans les LANs.

Bon courrage pour la suite.
--
Yves-Gwenael Bourhis
ybourhis
Matelot
Matelot
 
Messages: 3
Inscrit le: 29 Juin 2006 16:26

Messagepar alvoryx » 13 Oct 2006 01:41

Bonjour,


J'ai moi aussi installé OpenVPN, ça fonctionne nikel mais il subsiste néanmoins un petit problème...

Tout d'abord voici en gros la situation :


LAN*1 -> network : 10.59.0.0
Client VPN Windows
Interface réseau "physique" (la vraie carte réseau quoi) : 10.59.13.83
Interface virtuelle (celle crée par openvpn) : 10.8.0.6
route par défaut : 0.0.0.0 10.8.0.5
|
|
| VPN
|
|
LAN*2 -> network : 192.168.1.0
Serveur VPN Linux
eth0 : 192.168.1.69
tun0 : inet addr:10.8.0.1 P-t-P:10.8.0.2
route par défaut : 0.0.0.0 192.168.1.254




Le principe est d'utiliser ce vpn pour, d'une part, accèder depuis LAN*1 à la connection internet de LAN*2 ainsi qu'à toutes les machines présentes sur le réseau LAN*2. Cette partie la fonctionne sans problème !

La ou ça commence à se corser, c'est lorsque depuis LAN*2 je veut accèder à toutes les machines sur LAN*1.

Mais en suivant ceci :

dans /etc/openvpn/server.conf (enfin le nom que tu as donné au fichier serveur) et ajouter manuellement ceci:

client-config-dir /etc/openvpn/ccd
route 10.59.0.0 255.255.0.0

ensuite tu créés le répertoire suivant:
/etc/openvpn/ccd
et dedans tu créés un fichier qui porte "exactement le même nom" que celui que tu as donné au client dans la création du certificat (nom donné dans le champ "common name" dans la gestion des certificats).
Dans ce fichier portant le "common name" du certificat client tu ajoute ces lignes :

iroute 10.59.0.0 255.255.0.0
(ne pas oublier le "i" à "iroute" ci-dessus, ce n'est pas une faute de frappe Wink )

redémarres le serveur



j'arrive enfin, depuis le serveur OpenVPN de LAN*2, à pinger/accéder 10.59.13.83 (la machine ou tourne le client OpenVPN sur LAN*1).


problème n°1 : par contre, toujours depuis le serveur OpenVPN, impossible de pinger une autre ip que 10.59.13.83 sur la plage 10.59.*

problème n°2 : comment faire pour que le reste de mon réseau sur LAN*2 accède à tout le réseau sur LAN*1 ?



Merci d'avance pour vos réponses, j'espère avoir exposé mon problème suffisement clairement :\
alvoryx
Matelot
Matelot
 
Messages: 3
Inscrit le: 13 Oct 2006 01:12

Messagepar alvoryx » 14 Oct 2006 03:11

Alors maintenant j'ai accès à 10.59.13.83 à partir de chaque pc sur LAN*2 en ajoutant :

route -p add 10.59.0.0 mask 255.255.0.0 192.168.1.69

sur chaque pc de LAN*2 (sauf sur le serveur OpenVPN bien sûr)


le problème reste donc d'acceder au reste du reseau 10.59.* depuis LAN*2
alvoryx
Matelot
Matelot
 
Messages: 3
Inscrit le: 13 Oct 2006 01:12

Messagepar alvoryx » 15 Oct 2006 02:26

il apparait qu'il faut que je fasse du masquerading sur la machine ou tourne le client OpenVPN afin de dire que pour tous les pacquets provenant de 10.8.0.0 à destination de 10.59.0.0, l'ip source devient 10.59.13.83..

ceci puisque si les pc sur le réseau LAN*1 recoivent un packet avec comme ip source : 10.8.*, ils ne connaissent évidement pas la route pour joindre ce réseau..il faut donc que le packet apparaisse comme provenant de 10.59.13.83..


cela se fait avec iptables sur linux..mais sur windows ?? quelqu'un à une idée ?
alvoryx
Matelot
Matelot
 
Messages: 3
Inscrit le: 13 Oct 2006 01:12


Retour vers Mandriva MNF & SNF

Qui est en ligne ?

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