Académique Documents
Professionnel Documents
Culture Documents
Trad FR Pfsense OVPN
Trad FR Pfsense OVPN
eu
14/10/2006 Ajout d"un exemple de conguration Site--site bas sur OpenVPN 11/10/2006 Ajout d"un exemple Easy-RSA pour Windows prsent par Hernan Maslowski hernan_maslowski@hotmail.com 29/09/2006 Supression des lments tun0 qui ne sont plus ncessaires. 03/09/2009 Traduction du document par Grgory Bernard info@osnet.eu
A propos
Ce document est un tutoriel pas pas qui vous permettra de comprendre comment PFSense et OpenVPN peuvent fonctionner ensemble. J"utiliserais de nombreuses images et examples pour rendre ce tutoriel le plus simple possible. J"utilise pour ce tutoriel le dernier snapshot disponible et PFSense bootera du CDRom et sauvegardera sa conguration sur des disquettes. L"Anglais n"est pas ma langue maternelle, merci de me transmettre un message si vous trouvez des erreurs. Si vous trouvez certaines sections trop complexes, n"hsitez pas me contacter.
Premier dmarrage
Insrez le CD-Rom que vous venez de graver et la disquette format au en FAT dans votre systme. Congurez votre BIOS pour booter depuis votre CD-Rom. Il est important que
PFSense et OpenVPN pour les novices ! ! ! ! ! ! ! p. 1
www.osnet.eu
votre disquette soit insre alors que PFSense dmarre depuis votre CD-Rom, autrement vous n"aurez pas la possibilit de sauvegarder votre conguration sur votre disquette. Aprs quelques messages du noyau FreeBSD, on vous demandera si vous souhaitez crer des VLANs, nous n"en avons pas l"utilit, veuillez entrer n. Ensuite, PFSense essaiera d"utiliser les interfaces disponibles sur votre matriel, vous pouvez utiliser l"option a pour une auto-dtection de ces interfaces. Saisissez le nom de l"interface qui apparat en haut de l"cran pour qu"elle soit votre interface LAN. Ensuite saisissez le nom de votre seconde interface pour qu"il devienne votre connexion WAN, pressez simplement enter pour continuer. Si vous avez besoin de plus d"interface (DMZ par exemple) vous pouvez les assigner plus tard grace l"interface graphique.
Pressez 2 pour saisir l"adresse IP et le masque de sous-rseau pour votre connexion LAN. Dans mon cas 192.168.5.1 et 24 comma masque, slectionez non pour le DHCP.
Interface Web
Si tout s"est pass comme prvu, vous devriez maintenant tre capable de vous connecter l"interface Web de PFSense. Connectez-vous un ordinateur connect sur votre LAN et ouvrez un navigateur Web vers l"adresse http://ip_que_vous_avez_saisi_pour_votre_LAN/ vous devriez maintenant voir un cran de bienvenue Utilisateur : admin Password : pfsense
p. 2
www.osnet.eu
Si ce n"est pas le cas vous avez trs probablement assign une mauvaise interface rseau votre interface LAN, recommencez l"tape Premier dmarrage et veillez bien noter les paramtres de vos interfaces LAN et WAN. Si vous ne parvenez toujours pas vous connecter, il y a peut-tre un problme avec votre cble rseau.
Internet
LAN 192.168.5.0/24
First Setup
Nous avons commenc saisir des informations qui dpendent de la topologie de votre rseau. Dans mon cas, PFSense est un rewall connect derrire un routeur 3Com qui fait du PPPoE vers mon ISP. Mon interface WAN possde donc une IP interne (192.168.75.50) avec le 3Com comme passerelle (192.168.75.1). C"est un cas assez typique pour les petits rseaux d"entreprise ; vous pouvez bien videmment avoir d"autres sous-rseaux.
Internet
WAN PFSense IP Internet
LAN 192.168.5.0/24
Le second cas de gure est qu"il n"y a pas de routeur pour assurer la connexion PPPoE et que PFSense prends cela en charge directement.
PFSense et OpenVPN pour les novices ! ! ! ! ! ! ! p. 3
www.osnet.eu
Quel que soit la topologie de votre rseau, vous devrez modier les champs de PFSense de faon ce que cela corresponde vos besoins, je vais essayer d"tre le plus prcis possible an de vous guider dans votre propre conguration. Retour vers l"interface Web, cliquez sur System --> General Setup et vous devriez avoir un cran similaire celui prsent ci-dessous :
Sur l"image ci-dessus, vous pouvez voir ma conguration pour les paramtres gnraux. Comme vous pouvez le voir j"ai saisi l"adresse IP de mon routeur 3Com comme serveur DNS car ce dernier transfre les requtes vers mon ISP. Il est possible de saisir ses propres adresses de serveurs DNS si vous possdez un rseau avec ses propres DNS. Si votre rseau ressemble plus au second schma, PFSense rcuprera les serveurs DNS directement auprs de votre ISP grce PPPoE, veillez simplement cochez la case Allow DNS Servers list to be overridden ceci est important. Comme nom d"hte saisissez un nom qui permette d"identier votre rewall sur votre rseau, si vous possder un rseau rout sur Internet vous devez saisir un nom de domaine qui soit rsolu. Si vous ne possdez pas de nom de domaine, vous pouvez utiliser local. Ajustez le paramtre NTP et rglez le fuseau horaire dans laquelle se trouve le rewall.
Ensuite nous allons congurer l"interface WAN, cliquez sur Interfaces --> WAN
p. 4
www.osnet.eu
De nouveau si vos paramtres sont similaires aux miens, clicquez sur static comme Type et saisissez l"adresse IP de votre routeur comme passerelle (Gateway). Votre adresse IP WAN doit tre sur le mme sous-rseau que la passerelle que vous venez de saisir, dans mon cas 192.168.75.50.
Dcochez la case Block private networds si vous possdez des rglages similaires aux miens (l"interface WAN fait parti d"une adresse rseau prive).
Pour le second cas de gure (PFSense prends en charge PPPoE) il faut mettre le champs type sur PPPoE la place de static, puis saisir les donnes de votre compte.
p. 5
www.osnet.eu
Vous pouvez bloquer les rseaux privs pour cette conguration, puisque votre interface WAN sera l"interface ofcielle grace PPPoE. Aprs cette conguration initiale, vous pouvez passer l"tape suivate (pressez le boutton save).
Cration des certicats sous Unix/Linux (pas ncessaire pour une conguration de site site).
Ceci est dj dcrit de manire assez prcise dans les documentations existantes, mais je vais dtailler cela de nouveau. Basculez sur votre environnement Linux/Unix/FreeBSD et tlchargez le code source d"OpenVPN. Nous devons crer des certicats pour notre serveur et pour quelques clients, je vais utiliser des valeurs similaires celle qui existent dans la documentation de manire ce que nous puissions avoir quelquechose de cohrent (ces paramtres fonctionnent pour moi). Vous pouvez aussi crer votre certicat sous Windows, ne l"ayant jamais fait je ne peux pas vous indiquer si cela fonctionne ou pas.
Tlchargez le code source depuis le site http://openvpn.net/download.html vous pouvez directement le tlcharger en utilisant WGet ou fetch si vous tes sur un systme qui n"a pas d"interface graphique. Pour ceux d"entre vous qui sont sous FreeBSD, le port d"OpenVPN se trouve ici /usr/ports/ security/openvpn
Dtarrez l"archive avec la commande tar -xvzf openvpn-*.tar.gz et positionnez vous dans le rpertoire easy-rsa.
PFSense et OpenVPN pour les novices ! ! ! ! ! ! ! p. 6
www.osnet.eu
Ouvrez les chiers vars avec votre diteur prfr (emacs, vi, ) puis ditez les valeurs situes la n du chier an de les faire correspondre vos propres besoins. Il seront utiliss comme valeur par dfaut dans d"autres scripts, de manire ce que vous n"ayez pas saisir encore et encore (cette tape n"est pas ncessaire). export KEY_COUNTRY=DE export KEY_PROVINCE=BA export KEY_CITY=COLOGNE export KEY_ORG="Organisation name" export KEY_EMAIL="me@myhost.mydomain"
Vous devrez ensuite excuter des scripts, si l"on vous demandes votre Common Name saisissez le nom de l"hte que vous avez indiqu dans les Congurations Gnrales (General Setup) initialement. Voici les commandes que j"ai excutes : [/tmp/openvpn-2.0.8/easy-rsa]# source ./vars [/tmp/openvpn-2.0.8/easy-rsa]# ./clean-all [/tmp/openvpn-2.0.8/easy-rsa]# ./build-ca . Country Name (2 letter code) [DE]: (press enter) State or Province Name (full name) [BA]: (press enter)
Locality Name (eg, city) [COLOGNE]): (press enter) Organization Name (eg, company) [Organisation name]: (press enter) Organizational Unit Name (eg, section) [ ]: (press enter) Common Name (eg, your name or your server's hostname) [ ]:gate.local Email Address [me@myhost.mydomain]: (press enter) . Dans le prochain script, vous devez saisir Server comme Nom Commun (Common Name). Saisissez y pour signer le certicat. [/tmp/openvpn-2.0.8/easy-rsa]# ./build-key-server server . Comment construire les paramtres DH : [/tmp/openvpn-2.0.8/easy-rsa]# ./build-dh . Et nalement quelques certicats pour vos clients : [/tmp/openvpn-2.0.8/easy-rsa]# ./build-key client1
p. 7
www.osnet.eu
Vous pouvez crer autant de certicats clients que vous le souhaitez. Si par la suite vous souhaitez avoir plus de clients, crez-les simplement avec la commande ./build-key nom_du_client Utilisez toujours un nom diffrent en paramtre. Mais souvenez-vous les autres cls cres prcdemment doivnet tre prsentes dans le mme rpertoire ou si cela ne fonctionne pas (sauvegardez le rpertoire fans lequel vous avez cr les chiers, de manire ce que vous puissiez crer de nouveaux certicats clients sans avoir r-installer tout les certicats de nouveau).
Cration manuelle des certications sur un systme Windows (par Hernan Maslowski). Vous pouvez aussi crer vos certicats avec un programme pour windows 32 appel My Certicate Wizard http://www.openvpn.se/mycert/ Gnrez les certicats matre et la cl de l"Autorit de Certication (CA) Dans cette section nous allons gnrer un certicat CA de type certicat/cl/, un certicat serveur/cl et un certicat/cl pour trois clients distincts.
Ouvrez une fentre de type terminal (CMD) et positionnez-vous dans le rpertoire \Program Files\OpenVPN\easy-rsa Excutez la commande suivante pour copier les chiers de conguration leur place (cela effacera toutes version pr-existante de vars.bat et openssl.cnf) :
init-cong
Editez le chier var (appel vars.bat sur Windows) et modiez les paramtres KEY_COUNTRY, KEY_PROVINCE, KEY_CITY, KEY_ORG, et KEY_EMAIL. Ne laissez aucun de ces paramtre vide. Ensuite, initialisez la PKI. Next, initialize the PKI. vars clean-all build-ca
La commande nale (build-ca) gnrera le certicat de l"autorit de certication (CA) et la cl associe en invoquant la commande interactive : ai:c:\program files\openvpn\easy-rsa\build-ca Generating a 1024 bit RSA private key ............++++++ ...........++++++
PFSense et OpenVPN pour les novices ! ! ! ! ! ! ! p. 8
www.osnet.eu
writing new private key to 'ca.key' ----You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----Country Name (2 letter code) [KG]: State or Province Name (full name) [NA]: Locality Name (eg, city) [BISHKEK]: Organization Name (eg, company) [OpenVPN-TEST]: Organizational Unit Name (eg, section) []: Common Name (eg, your name or your server's hostname) []:OpenVPN-CA Email Address [me@myhost.mydomain]: Veuillez noter que la plupart des informations saisies sont les valeurs par dfaut inscrite dans les variables du chier vars.bat. Le seul paramtre qui doit tre spciquement saisi est le Common Name. Dans l"exemple ci-dessus, j"ai utilis OpenVPN-CA.
www.osnet.eu
build-dh Sortie standard : ai:c:\program files\openvpn\easy-rsa\build-dh DH parameters, 1024 bit long safe prime, generator 2 This is going to take a long time ................+........................................... ...................+.............+.................+......... ......................................
Filename
ca.crt ca.key dh{n}.pem server.crt server.key client1.crt client1.key client2.crt client2.key client3.crt client3.key
Needed By
server + all clients key signing machine only server only server only server only client1 only client1 only client2 only client2 only client3 only client3 only
Purpose
Root CA certicate Root CA key Dife Hellman parameters Server Certicate Server Key Client1 Certicate Client1 Key Client2 Certicate Client2 Key Client3 Certicate Client3 Key
Secret
NO YES NO NO YES NO YES NO YES NO YES
Nous avons maintenant toutes les cls ncessaires, nous pouvons donc continuer et passer l"tape suivante.
Ok, nous sommes enn prt congurer OpenVPN, cliquez VPN --> OVPN dans le menu et la petite case + pour ajouter un tunnel.
p. 10
www.osnet.eu
Comme vous pouvez le voir j"ai utilis TCP comme protocole puisqu"UDP est connu comme tant mal ltr par certain routeurs. Utilis TCP est un peu plus lent, mais plus sr pour le moment. Cliquez sur Dynamic IP, nous souhaitons autoris les clients distants avec une adresse distante inconnue se connecter notre serveur (le typique guerrier de la route). Address pool doit tre un sous-rseau indpendant que vous n"utilisez nulle part ailleurs. C"est important ! Ne saisissez pas le mme sous-rseau que celui de votre LAN ou de votre WAN. Dans mon cas j"ai utilis 192.168.200.0/24. Changez la mthode d"authentication Authentication method PKI. Maintenant nous devons copier et coller nos cls, utilisez votre diteur de texte favoris pour ouvrir les chiers en mode texte (vous pouvez utiliser la commande cat nom_du_chier sous Linux/Unix/BSD ou Notpad sous Windows). Incluez toujours les sections -----BEGIN CERTIFICATE----- et -----END CERTIFICATE---- ainsi que tout ce qu"il y a entre. Regardez bien ou chaque chier est suppos aller :
p. 11
www.osnet.eu
Aprs que les certicats sont en place, dsactivez la compression LZO LZOcompression (pour tester, si tout fonctionne vous pouvez l"activer et changer la valeur dans le chier client comme dcrit aprs). Saisissez une description intelligente dans le champ Description, comme OVPN des guerriers de la route. Comme d"habitude cliquez sur Save. Si vous voulez autoris vos guerriers de la route vous connecter d"autre sous-rseaux de la mme faon qu"ils se connectent l"interface LAN (par exemple la DMZ), vous devez congurer une route dans le champ Custom Options. Si votre DMZ est 192.168.100.0/24 par exemple, vous devez inscrire la route suivante : push route 192.168.100.0 255.255.255.0 Ceci an que vos guerriers de la route puissent se connecter votre DMZ.
p. 12
www.osnet.eu
L"option de Log packets that are handled by this rule n"est pas ncessaire, mais c"est pas mal de la conserver pour la priode de test. Les rgles doivent maintenant ressembler cela :
p. 13
www.osnet.eu
Ensuite cliquez sur l"onglet WAN puis sur la petite icne + pour ajouter une nouvelle rgle :
Comme protocole saisissez TCP/UDP comme nous sommes entrain de tester, ensuite ditez la rgle pour ne correspondre qu"au seul protocole que vous aurez dni. Destination port range est le port sur lequel notre serveur OpenVPN coute, par dfaut c"est le port 1194. La rgle devrait ressembl cela aprs avoir t sauvegarde :
p. 14
www.osnet.eu
Ok, premier objectif accompli ;-) Interfaces, OpenVPN et rgles de rewall sont congures, nous devons seulement sauvegarder la conguration sur une disquette et rebooter pour voir si tout redmarre comme prvu.
Enn vous pouvez utiliser votre client SSH favoris pour vous connecter PFSense (utilisez l"adresse IP de votre interface LAN), sur Windows vous pouvez utiliser Putty. Si l"on vous demande votre nom d"utilisateur et votre mot de passe, saisissez admin et pfsense (pensez changer cela avant la mise en service du Firewall).
p. 15
www.osnet.eu
Vous verrez un cran similaire celui-ci (les nouvelles versions proposent un peu plus d"options) :
Saisissez 98 et pressez sur enter, rpondez la question suivante par fd0 et pressez enter de nouveau, la conguration sera sauvegarde sur une disquette. Si 98 n"est pas afch dans le menu, vous avez peut-tre oubli d"insr la disquette avant de booter depuis le CD-Rom. Aprs que la sauvegarde soit nie, pressez 5 et PFSense se rebootera. Laissez PFSense rebooter, si tout fonctionne comme prvu, vous devriez tre capable de vous connecter l " interface web comme vous le faisiez avant (PFSense lira automatiquement la conguration depuis la disquette lorsqu"il boot). Note : les versions plus rcentes de PFSense vous autorisent sauvegarder votre chier de conguration sous forme de chier XML. Je vous encourage vivement utiliser ce type de mthode et tester une reconguration de scratch partir d!une sauvegarde XML. Le temps est maintenant venu de s"intresser la conguration des clients, puisque la plupart des personnes qui utilisent Linux / Unix savent ce qu"elles font, je ne m"intresserait qu" la conguration Windows (les indications sont les mmes, il vous suft de les copier / coller).
p. 16
www.osnet.eu
Maintenant crez un nouveau chier texte dans c:\program files\openvpn\config folder (o l ou vous l"avez install) nomm pfsense.ovpn (vous pouvez modier pfsense en quelquechose d"autre, mais assurez-vous de bien conserver l"extension .ovpn). Copier-coller la conguration suivante : float port 1194 dev tun dev-node ovpn proto tcp-client remote yourpfsensebox 1194 ping 10 persist-tun persist-key tls-client ca ca.crt cert client1.crt key client1.key ns-cert-type server #comp-lzo <- to enable LZO remove the # pull verb 4 dev-node ovpn doit correspondre au nom de l"interface que vous avez renomme, yourpfsensebox l"adresse IP de votre rewall PFSense (ou du routeur qui fait du NAT comme dans mon cas). Souvenez-vous des certicats clients ? Nous devons copier certain d"entre eux dans le mme rpertoire, pour le premier client, copier ca.crt, client1.crt et client1.key. Vous aurez toujours besoin de ca.crt et du bon certicat client.
p. 17
www.osnet.eu
Maintenant prenez une bonne respiration et cliquez sur le chier pfsense.ovpn et slectionnez Start OpenVPN on this conguration le, le client tentera de se connecter votre Firewall PFSense (vous devez tester cela depuis un rseau externe). Si la liaison tunnel a pu tre tablie correctement (Initialization sequence completed devrait tre le dernier log qui s"afchera sur votre shell avec des RRWWRrwrw qui suivent) et vous ne pouvez pas ping les htes internes, gardez en mmoire que vous devez indiquer PFSense comme gateway / Routeur par dfaut sur tout les serveurs LAN auxquels vous souhaitez pouvoir vous connecter. Voil, le Tunnel devrait tre maintenant prt l"emploi.
p. 18
www.osnet.eu
Imaginez la situation suivante : Nous voulons faire en sorte que les deux rseaux soit comme transparent, de faon a ce que tous les htes du Bureau 1 puissent accder aux htes du Bureau 2 et vice-versa.
Congurez PFSense comme indiqu dans l " exemple prcdent (vous pouvez omettre la partie concernant les guerriers de la route si vous ne prvoyez pas d " avoir des clients distants). Si les deux sites ont accs l"Internet, la conguration suivante devrait leur permettre de fonctionner. Si vous avez dj congur PFSense pour les guerriers de la route vous devez congurer un tunnel supplmentaire, ne modiez pas la conguration actuelle !
Internet
Bureau 1 :
Nous allons maintenant congurer Bureau 1 comme serveur. Cliquez sur VPN --> OpenVPN et ajoutez un nouveau tunnel en cliquant sur l"icne + :
Bureau LAN 2 192.168.1.0/24
p. 19
www.osnet.eu
Modiez le protocole en TCP, si vous avez des tunnels complmentaires souvenez-vous d"utiliser un autre port que celui prcdemment congur, j"utilise 1193 puisque 1194 est dj utilis pour ma conguration tunnel pour les guerrier de la route. Address pool doit tre un rseau que vous n"utilisez nulle part ailleurs, j"utilise 192.168.10.0/24 puisque ni Bureau1, ni Bureau2 n"utilise ce sous-rseau. Pour Remote network saisissez le rseau LAN du Bureau2 (souvenez-vous que nous congurons cela sur sur le Firewall de Bureau1) il faut donc indiquer ici 192.168.1.0/24. Maintenant nous allons crer une cl partage Shared key. Connectez-vous votre Firewall PFSense sur Bureau1 par SSH et saisissez 8 dans le shell qui se prsente vous, puis saisissez la commande suivante : # openvpn --genkey --secret shared.key
Cette commande va crer les cls partags pour ce serveur OpenVPN. Maintenant concatnons ce chier puis copions / collons le dans notre l"interface web de PFSense. # cat shared.key
p. 20
www.osnet.eu
Pressez sur Save. Rebootez le Firewall pour voir si tout remonte normalement. Maintenant copiez la cl partag que vous avez utilis sur une cl USB ou par un autre moyen scuris vers le Bureau2 (vitez les e-mail). Voil, la premire partie a t mene bien, nous avons congur le tunnel d"coute, souvenez-vous de crer une rgle de Firewall similaire celle cr prcdement an d"autoriser le trac sur le port 1193 sur votre interface WAN (vriez dans la section prcdente comment cela est ralis).
Bureau2 :
Sur le Bureau2 nous allons congurer le ct client tu tunnel, cliquez sur VPN --> OpenVPN --> Client comme dcrit ci-dessous :
Ayez disposition la cl partag que nous avons cr sur Bureau1, nous allons en avoir besoin. Indiquez le protocole TCP, Server Address doit indiquer l"adresse IP ofciel du Bureau1 (si ce n"est pas l"adresse IP WAN de PFSense, votre routeur devra offrir des fonctions de port-forwarding), le port serveur Server Port est 1193. Interface IP doit tre remplie avec votre rseau local. Le champ Remote network est le sous-rseau de Bureau1. Maintenant collez la cl partage de Bureau1 dans le champs appropri. Cliquez Save et rebootez votre routeur pour voir si tout fonctionne comme prvu.
p. 21
www.osnet.eu
Le tunnel entre les deux sites devrait maintenant tre en tat de marche. Essayez de pinguer les htes de chacun des rseaux pour vrier le bon fonctionnement du tunnel.
Et maintenant ?
La seule chose qu"il vous reste faire est de consolider vos rgles de rewall et d"activer la compression LZO si vous le souhaitez. Vous pouvez basculer sur UDP si la vitesse est un facteur cl, changez simplement la valeur du tunnel, les rgles du Firewall pour le WAN et le chier de la conguration client. Si vous devez autoriser accs votre DMZ ou d"autres interfaces vous devez propager les routes dans la conguration de votre tunnel.
p. 22
www.osnet.eu
FAQ
Dans cette section je vais ajouter des solutions pour solutionner les problmes communs qui peuvent exister aprs avoir suivi ce tutoriel.
1. Je ne parviens pas gnr les commandes qui permettent de gnr les cls OpenVPN ! Vous devez probablement utiliser un shell non compatible, essayez d"installer bash. Vous pouvez aussi gnr les cls avec un programme Windows appel My Certicate Wizard : http://mycert.sandbox.cz
2. Comment puis-je accder au partage Windows Windows Share sans faire du bridging ? ! Pour accder au partage Windows, vous devez installer un serveur WINS sur votre rseau et congur tous les serveurs avec des points de partage an qu"ils l"utilisent (utilisez TCP comme protocole). Dans la conguration de votre tunnel, dans le champ Custom Options vous devez saisir l"adresse de votre serveur DNS interne et celui de votre serveur WINS. Une chane valable pourrait ressembler cela (vous pouvez entrer plus d"option push; sparez-les simplement par un ;) : push "dhcp-option 192.168.0.131" DNS 192.168.0.130";push "dhcp-option WINS
3. Avertissement pour les rewall Windows ! ! ! Les rewall Windows ont des problmes avec l"OpenVPN, veuillez dsactiver le Firewall sur votre interface tun/tap si vous avez des problmes pour vous connecter. En rgle gnrale il est recommand de dsactiver tout les Firewall locaux pendant la phase de test.
Traduction Franaise ralise par Grgory Bernard, socit ToDoo. http://www.osnet.eu info@osnet.eu
p. 23