{"id":708,"date":"2016-04-07T17:31:08","date_gmt":"2016-04-07T17:31:08","guid":{"rendered":"http:\/\/general.sio57.info\/wp\/?p=708"},"modified":"2020-03-30T13:59:02","modified_gmt":"2020-03-30T13:59:02","slug":"vpn","status":"publish","type":"post","link":"https:\/\/general.sio57.info\/wp\/?p=708","title":{"rendered":"VPN sur PfSense"},"content":{"rendered":"\n<p>Sous Pfsense, on peut mettre en place plusieurs types de VPN<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Peer to peer (SSL\/TLS)<\/strong>&nbsp;: pour monter un VPN site-\u00e0-site en utilisant une authentification par certificat. <\/li><li><strong>Peer to peer (Shared Key)<\/strong>&nbsp;: pour monter un VPN site-\u00e0-site en utilisant une authentification par cl\u00e9 partag\u00e9e. <\/li><li><strong>Remote Access (SSL\/TLS)<\/strong>&nbsp;: pour monter un acc\u00e8s distant pour clients nomades en utilisant une authentification par certificat. <\/li><li><strong>Remote Access (User Auth)<\/strong>&nbsp;: pour monter un acc\u00e8s distant pour clients nomades en utilisant une authentification par login\/password. <\/li><li><strong>Remote Access (SSL\/TLS + User Auth)<\/strong>&nbsp;: pour monter un acc\u00e8s distant pour clients nomades en utilisation une authentification par certificat et par login\/password. <\/li><\/ul>\n\n\n\n<!--more-->\n\n\n\n<h2 class=\"wp-block-heading\">Mise en \u0153uvre OpenVPN &#8211; SSL\/TLS<\/h2>\n\n\n\n<p>Le module VPN permet cr\u00e9er soit un client et ou un serveur. Lors de l&rsquo;activation du service VPN cela va g\u00e9n\u00e9rer une carte virtuelle OPT qui permettra d&rsquo;envoyer les paquets vers le VPN distant.<\/p>\n\n\n\n<p>On peut aussi faire plusieurs types de serveur sur un Pfsense, \u00e0 condition d\u2019utiliser un r\u00e9seau\/tunnel diff\u00e9rent.<\/p>\n\n\n\n<p> OpenVPN est bas\u00e9 sur un mode de fonctionnement client-serveur. Lorsque  l&rsquo;on connecte deux sites, l&rsquo;un est client l&rsquo;autre serveur,  ce qui  permet de connecter plusieurs sites distants sur un site principal. <\/p>\n\n\n\n<p>Le serveur h\u00e9berge le certificat de l&rsquo;autorit\u00e9 ainsi que son propre certificat et sa cl\u00e9 priv\u00e9e.<\/p>\n\n\n\n<p>C&rsquo;est aussi depuis le serveur que l&rsquo;on cr\u00e9e les fichiers n\u00e9cessaires aux clients:  un certificat client ainsi qu&rsquo;une cl\u00e9 et le fichier openvpn client qui va d\u00e9pendre de la plateforme cliente (android, windows, mac).<\/p>\n\n\n\n<p>Ici un pdf avec le d\u00e9tail des actions a effectuer en parall\u00e8le sur les deux serveurs<\/p>\n\n\n\n<div class=\"wp-block-file\"><a href=\"https:\/\/general.sio57.info\/wp\/wp-content\/uploads\/2019\/11\/VPN-server-Pfsense.pdf\">VPN-server-Pfsense<\/a><a href=\"https:\/\/general.sio57.info\/wp\/wp-content\/uploads\/2019\/11\/VPN-server-Pfsense.pdf\" class=\"wp-block-file__button\" download>T\u00e9l\u00e9charger<\/a><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Gestion des certificats<\/h3>\n\n\n\n<p>Pr\u00e8-requis, avoir un Pfsense install\u00e9.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>Recommandation : en TP, ce n&rsquo;est pas comme en environnement r\u00e9el, utilisez de petites cl\u00e9s afin de ne pas surcharger votre processeur.<\/p><\/blockquote>\n\n\n\n<ul class=\"wp-block-list\"><li>Aller dans le menu System\/Certificate Manage CA &#8211; Cliquer sur <strong>add <\/strong>et saisir les champs. Rien de bien compliquer. Attention \u00e0 correctement nommer votre certificat d&rsquo;autorit\u00e9.<\/li><\/ul>\n\n\n\n<ul class=\"wp-block-list\"><li>Puis dans l&rsquo;onglet Certificates &nbsp;&#8211; faire Add et cr\u00e9er le certificat serveur&nbsp;. &nbsp;Attention&nbsp;: &nbsp;faites le lien avec les informations du certificat de l\u2019autorit\u00e9 de certification.<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Serveur OpenVPN<\/h3>\n\n\n\n<p>Saisir les infos toujours en coh\u00e9rence avec les infos des certificats<\/p>\n\n\n\n<p>Aller dans le Menu VPN, OpenVPN, aller dans serveur et Add.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li> <strong>Server Mode<\/strong> : Peer to peer SSL\/TLS<\/li><li><strong>Device Mode<\/strong>&nbsp;:  TUN travaille avec des paquets IP.  TAP travaille avec des trames Ethernet. <\/li><li><strong>Interface<\/strong>&nbsp;:  l&rsquo;interface sur laquelle le serveur va recevoir les connexions  entrantes. G\u00e9n\u00e9ralement WAN ou OPT1. <\/li><li> <strong>Local port<\/strong>&nbsp;:  port d&rsquo;\u00e9coute du serveur OpenVPN. Par d\u00e9faut, c&rsquo;est le 1194. Il est \u00e0  noter que chaque serveur VPN doit disposer de son propre port d&rsquo;\u00e9coute.  De la m\u00eame mani\u00e8re, il est important de s&rsquo;assurer qu&rsquo;aucun autre service  ne soit d\u00e9j\u00e0 en \u00e9coute sur le port choisi.<\/li><li> <strong>Description<\/strong>&nbsp;:  nom que l&rsquo;on souhaite donner \u00e0 ce serveur VPN. C&rsquo;est ce nom qui  appara\u00eetra dans les listes d\u00e9roulantes de s\u00e9lection de VPN se trouvant  aux diff\u00e9rents endroits du WebGUI pfSense. Dans notre cas, nous  saisissons \u00ab\u00a0VPN-Initiale\u00a0\u00bb.<\/li><li> <em>(<strong>Shared Key<\/strong>&nbsp;: si vous utiliser ce mode, laisser coch\u00e9 la case \u00ab\u00a0Automatically generate a shared key\u00a0\u00bb. La cl\u00e9 sera \u00e0 copier\/coller c\u00f4t\u00e9 client.)<\/em><\/li><li> <strong>Encryption algorithm<\/strong>&nbsp;:  ce param\u00e8tre doit \u00eatre le m\u00eame c\u00f4t\u00e9 client et c\u00f4t\u00e9 serveur si l&rsquo;une des  deux parties ne supporte pas le protocole NCP. N&rsquo;importe quel  algorithme travaillant avec une cl\u00e9 d&rsquo;au moins 128 bits sera bon. 256  bits sera encore mieux. <strong>CAST\/DES\/RC2<\/strong> sont moins s\u00e9curis\u00e9s, et donc <strong>\u00e0 bannir<\/strong>. Notre choix se porte sur <em><strong>AES 256 bits CBC<\/strong><\/em><\/li><li> <strong>Enable NCP<\/strong>&nbsp;:  cocher la case permet d&rsquo;activer le protocole NCP pour que le client et  le serveur n\u00e9gocie le protocole de chiffrement le plus appropri\u00e9. A laisser coch\u00e9e.<\/li><li> <strong>NCP Algorithms<\/strong>&nbsp;:  Les algortithmes de chiffrement que nous souhaitons supporter c\u00f4t\u00e9 serveur.<\/li><li> <strong>Auth digest algorithm<\/strong>&nbsp;: nous laissons la valeur par d\u00e9faut SHA256.<\/li><li> <strong>Hardware Crypto<\/strong>&nbsp;: pr\u00e9cise si le serveur dispose d&rsquo;un support cryptographique.<\/li><li> <strong>IP v4 Tunnel Network<\/strong>&nbsp;: r\u00e9seau utilis\u00e9 pour le tunnel VPN. N&rsquo;importe quel r\u00e9seau priv\u00e9 inutilis\u00e9 dans l&rsquo;espace d&rsquo;adressage de la <a href=\"https:\/\/fr.wikipedia.org\/wiki\/R\u00e9seau_priv\u00e9\">RFC 1918<\/a>  peut \u00eatre utilis\u00e9. Pour une connexion site-\u00e0-site, l&rsquo;utilisation d&rsquo;un  \/30 est suffisant (inutile d&rsquo;utiliser un \/24). <\/li><li> <strong>IPv4 Remote network(s)<\/strong>&nbsp;:  d\u00e9signe le ou les r\u00e9seaux distants accessibles par le serveur. Il  convient d&rsquo;utiliser la notation CIDR (ex&nbsp;: 192.168.1.0\/24). Dans le cas  o\u00f9 l&rsquo;on souhaite indiquer plusieurs r\u00e9seaux, il faut les s\u00e9parer par une  virgule. <\/li><li> <strong>Concurrent connections<\/strong>&nbsp;:  pr\u00e9cise le nombre de connexion client possible en simultan\u00e9e sur ce  serveur. Dans le cas d&rsquo;un VPN site-\u00e0-site, ce param\u00e8tre peut \u00eatre  renseign\u00e9 \u00e0 1.<\/li><li> <strong>Compression<\/strong>&nbsp;:  permet d&rsquo;activer la compression LZO\/LZ4 sur l&rsquo;ensemble des flux  transitant par ce tunnel VPN. Si les donn\u00e9es transitant dans ce tunnel  VPN sont principalement des donn\u00e9es chiffr\u00e9es (HTTPS, SSH, etc.), cocher  cette option ne fera qu&rsquo;ajouter un overhead inutile aux paquets.<\/li><li> <strong>Custom options<\/strong>&nbsp;:  permet de passer des param\u00e8tres avanc\u00e9s \u00e0 OpenVPN. Cela peut notamment  \u00eatre utile si l&rsquo;on d\u00e9cide de faire du VPN natt\u00e9 (entre deux sites ayant  le m\u00eame plan d&rsquo;adressage) ou pour pousser des routes sp\u00e9cifiques. Nous  ne rentrerons pas dans le d\u00e9tail ici.<\/li><\/ul>\n\n\n\n<p> Une fois la configuration renseign\u00e9e, nous cliquons sur \u00ab\u00a0Save\u00a0\u00bb pour valider notre configuration.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Configurer le firewall <\/h3>\n\n\n\n<p>Pour permettre la connexion du client OpenVPN vers celui-ci le serveur VPN.<\/p>\n\n\n\n<p>Puis cliquez sur \u00ab&nbsp;Add&nbsp;\u00bb pour ajouter une nouvelle r\u00e8gle.<\/p>\n\n\n\n<p>Pour cela allez sous l\u2019onglet \u00ab&nbsp;Firewall&nbsp;\u00bb de la barre de navigation puis cliquez sur \u00ab&nbsp;Rules&nbsp;\u00bb.<\/p>\n\n\n\n<p>Onglet WAN = autoriser les paquets UDP  (si c&rsquo;est le protocole choisi<\/p>\n\n\n\n<p>La source \u00ab&nbsp;any&nbsp;\u00bb pour accepter toutes les sources, si besoin.<\/p>\n\n\n\n<p>\u00ab&nbsp;This firewall (self)&nbsp;\u00bb est l\u2019option la plus ad\u00e9quate. <\/p>\n\n\n\n<p> Si vous avez laiss\u00e9 le port d\u2019origine (1194), choisir l\u2019option correspondant au port dans le menu d\u00e9roulant \u00ab&nbsp;From&nbsp;\u00bb et \u00ab&nbsp;To&nbsp;\u00bb .<\/p>\n\n\n\n<p>Vous pouvez maintenant sauvegarder votre configuration \u00e0 l\u2019aide du bouton \u00ab&nbsp;Save&nbsp;\u00bb.<\/p>\n\n\n\n<p>Il faut aussi une r\u00e8gle pour l&rsquo;interface OPT-VPN afin que les paquets puissent circuler entre les r\u00e9seaux distants.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Pour le second serveur <\/h3>\n\n\n\n<p>La configuration est la m\u00eame que pour un client &#8211; simplement dans le server mode il faut choisir Peer to peer SSL\/TLS<\/p>\n\n\n\n<p> Pour cr\u00e9er le client voici la doc : <a rel=\"noreferrer noopener\" href=\"http:\/\/general.sio57.info\/wp\/?attachment_id=711\" target=\"_blank\">VPN sur PFsense<\/a>.  <\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>L&rsquo;objectif final est qu&rsquo;un poste du r\u00e9seau LAN derri\u00e8re le premier Pfsense puisse se connecter \u00e0 un  poste \/ serveur derri\u00e8re le second Pfsense.<\/p>\n\n\n\n<p>A tester avec un tracert \/ traceroute<\/p>\n\n\n\n<p>Pour faire avec de l&rsquo;IPSEC <a href=\"http:\/\/www.vanexpert.fr\/base-de-connaissance\/parametrage-pfsense-tunnel-ipsec-site-to-site\/\">http:\/\/www.vanexpert.fr\/base-de-connaissance\/parametrage-pfsense-tunnel-ipsec-site-to-site\/ <\/a><\/p>\n\n\n\n<p>Les sites qui m&rsquo;ont inspir\u00e9 : <a href=\"https:\/\/www.supinfo.com\/articles\/single\/3103-creation-vpn-site-to-site-deux-pfsense-openvpn\">https:\/\/www.supinfo.com\/articles\/single\/3103-creation-vpn-site-to-site-deux-pfsense-openvpn<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/www.provya.net\/?d=2014\/06\/15\/15\/20\/04-\">https:\/\/www.provya.net\/?d=2014\/06\/15\/15\/20\/04-<\/a><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Sous Pfsense, on peut mettre en place plusieurs types de VPN Peer to peer (SSL\/TLS)&nbsp;: pour monter un VPN site-\u00e0-site en utilisant une authentification par certificat. Peer to peer (Shared Key)&nbsp;: pour monter un VPN site-\u00e0-site en utilisant une authentification par cl\u00e9 partag\u00e9e. Remote Access (SSL\/TLS)&nbsp;: pour monter un acc\u00e8s distant pour clients nomades en [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[58,70,59,71,44],"tags":[107],"class_list":["post-708","post","type-post","status-publish","format-standard","hentry","category-4-transport","category-4-transport-securite","category-7-application","category-7-application-supervision","category-sisr5","tag-vpn"],"_links":{"self":[{"href":"https:\/\/general.sio57.info\/wp\/index.php?rest_route=\/wp\/v2\/posts\/708","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/general.sio57.info\/wp\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/general.sio57.info\/wp\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/general.sio57.info\/wp\/index.php?rest_route=\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/general.sio57.info\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=708"}],"version-history":[{"count":13,"href":"https:\/\/general.sio57.info\/wp\/index.php?rest_route=\/wp\/v2\/posts\/708\/revisions"}],"predecessor-version":[{"id":1445,"href":"https:\/\/general.sio57.info\/wp\/index.php?rest_route=\/wp\/v2\/posts\/708\/revisions\/1445"}],"wp:attachment":[{"href":"https:\/\/general.sio57.info\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=708"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/general.sio57.info\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=708"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/general.sio57.info\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=708"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}