Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    NAT devant Pfsense avec service OpenVPN

    Scheduled Pinned Locked Moved Français
    11 Posts 3 Posters 1.5k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      Sagitta
      last edited by

      Bonjour,

      Sujet: montage openvpn site2site tap

      Environnement :
      pfsense 2.2.2-REALEASE
      Toutes les pfsenses sont des vms sur un esxi 5.5 avec des vswitch ayant le mode promiscous activé.

      Pfsense Services(openvpn) === PfSense Frontale (IP publique) === WAN === (IP publique)PfSense Frontale === Pfsense Services(openvpn)

      J'ai tenté de faire un nat du port 1194 UDP depuis ma pfsense frontale(me servant à me connecter au net sur mon ESXI) vers ma seconde pfsense qui elle, héberge l'openvpn.

      Or, il s'avere que je n'arrive pas à monter le vpn.

      Suite à cela j'ai tenté de monter le vpn selon la meme configuration à partir de la pfsense frontale et le résultat fut concluant.

      Ce qui m'amène à en déduire qu'une simple regle NAT n'est pas suffisant pour permettre le montage du vpn.

      Pourriez vous me donner un indice sur l'élément que j'omets de configurer.

      Merci d'avoir pris le temps de lire.

      Si des détails manquent, n'hésiter pas à me les demander.

      1 Reply Last reply Reply Quote 0
      • C
        chris4916
        last edited by

        @Sagitta:

        Pfsense Services(openvpn) === PfSense Frontale (IP publique) === WAN === (IP publique)PfSense Frontale === Pfsense Services(openvpn)

        Dans le cas d'un VPN site-à-site, ce qu'il est intéressant de montrer c'est également le reste du réseau  :)  surtout lorsque le serveur VPN n'est pas exactement à la frontière entre le LAN et le WAN.

        Dans ta description, je ne comprends pas(*****) l'intérêt de la cascade de pfSense mais c'est ton choix  8)
        Si je décris ce que je vois, il s'agit de:

        • 2 sites connectés au WAN derrière un pfSense frontal sur chaque site
        • un client / serveur VPN sur le LAN de chaque coté
        • l'objectif est d'établir un tunnel TAP entre les 2.

        Là aussi je ne discute pas ton choix mais il faut bien être conscient que TAP est assez consommateur et donc moins performant (surtout si tu es en ADSL de part et d'autre) mais il se peut bien sûr que tu en ais besoin  ;)

        Pour en revenir à ta question initiale: un tunnel entre les 2 sites tel que décrit ci-dessus fonctionne mais il faut faire très (TRES) attention aux routes et routes par défaut.
        Je ne sais pas te conseiller plus pour le moment faute de précision de ta part sur la structure de chaque LAN mais je soupçonne un problème à ce niveau là.

        Fait une recherche, il y a eu un long sujet discuté il y a quelques semaines à propos de VPN site-à-site lors duquel nous avons évoqué ces problématiques.

        (*****): ce design a un sens si ta motivation première, respectable  ;)  est de dire: le firewall ne fait office que de firewall mais dans ce cas, il n'est pas nécessaire d'utiliser pfSense pour faire tourner le client et serveur VPN.

        Jah Olela Wembo: Les mots se muent en maux quand ils indisposent, agressent ou blessent.

        1 Reply Last reply Reply Quote 0
        • S
          Sagitta
          last edited by

          Bonjour,

          Merci pour ta réponse.

          Voici le schema une petit peu revisité et corrigé

          topology:

          
                   --PfsenseR1DC2(10.1.1.1)--                                                                                                                                                                                           --PfsenseR1DC1(10.2.1.1)--
          DC1--|                                  |--CARP(10.1.1.10)--(10.1.1.254)PfsenseFrontDC1(Public IP)----WAN----(Public IP)PfsenseFrontDC2(10.2.1.254)--CARP(10.2.1.10)--|                                       |--DC2 
                   --PfsenseR2DC2(10.1.1.2)--                                                                                                                                                                                           --PfsenseR2DC1(10.2.1.2)--
          
          

          Chaque DC contient 2esxi et deux sans que je vais repartir dans 2 vlans différent.

          (*)Concernant le design, la Pfsense frontale de chaque site fait office de firewall indépendant qui pourrait être remplacé à l'avenir par n'importe quel autre distrib remplissant les criteres.
          J'ai aussi fait du CARP derriere la frontale car je ne pense pas avoir le droit d'attribuer la meme MAC à deux VM en front (tout ce ceci est sur un esxi et donc chaque IP m'est attribué en fonction de la MAC de la machine.

          Merci pour l'info du sujet discuté il y a quelques semaine, je m'en vais de ce pas le chercher.

          Bonne journée

          1 Reply Last reply Reply Quote 0
          • S
            Sagitta
            last edited by

            Le fait de rajouter les info dans le cham IPV4 Remote Network et IPV4 Local Network ne crée t il pas automatiquement les routes?

            PS: je sais je vis peut etre dans le monde des bizounours ^^"

            1 Reply Last reply Reply Quote 0
            • S
              Sagitta
              last edited by

              Donc Pour en revenir au problème initial, en prenant comme prédicat que je n'utilise que des pfsense à chaque fois.

              Cette connection openvpn fonctionne, je peux pinger n'importe quelle interface

              
              Pfsense frontalDC1---WAN---PfSense frontal DC2
              
              

              En rajoutant le CARP derrière la Pfsense Frontale et en nattant le port UDP 1194, je n'arrive à monter le tunnel vpn.

              Mon hypothèse serait que comme les 2 services vpn ne savent  pas qu'ils sont nattés, et qu'ils n'arrivent donc pas à communiquer pour monter le tunnel VPN.

              En résumé soit je fais mal mon NAT, soit j'oublie de lui rajouter quelque chose.
              J'ai lu des articles concernant le les "manual outbound", je vous avoue ne pas y comprendre beaucoup de choses, et ne pas comprendre si cela interviendrait dans mon cas

              PS: Concernant les routes je les ai ajoutés manuellement, en configurant une gateway sur le server openvpn qui était l'ip attribué au client openVPN, et plus de soucis de connection.

              PS2: Apres un petit coup de fil chez SoYouStart(ovh) ils mont confirmé que je ne pouvais pas faire mon CARP en frontale car dans ce cas là, cela nécessiterait que les deux vms aient la même MAC et une interruption de service pointerait son bout du nez.

              Merci de la lecture

              Si un schéma des vswitchs et des connections physiques au vswitch est nécessaire, je me ferai un plaisir de vous le créer, néanmoins ayant constaté un CARP fonctionnant et une connection internet effective, j'assume le fait que le problème ne viendrait pas de là.

              1 Reply Last reply Reply Quote 0
              • L
                Lolight
                last edited by

                @Sagitta:

                Le fait de rajouter les info dans le cham IPV4 Remote Network et IPV4 Local Network ne crée t il pas automatiquement les routes?

                Non
                cf https://forum.pfsense.org/index.php?topic=92048.0

                Les problème de route agis simplement sur l’aiguillage de paquets dans les deux sens.
                Celui-ci n'impacte pas le liaison en elle même.

                1 Reply Last reply Reply Quote 0
                • S
                  Sagitta
                  last edited by

                  Merci d'avoir pris le temps de lire.

                  Donc oui j'ai vu ça et j'ai du coup ajouter les routes, cela a réglé mon problème et a conclu que le tunnel pouvait se monter directement (test fait depuis la pfsense frontale donc sans NAT).

                  Or le tunnel n'arrive pas à se monter une fois que je le fais depuis la pfsense qui est derriere la frontale.

                  addressage réseau

                  
                                                                                                                     ==>10.1.1.1(Master pfsense)
                  Public IP=Pfsense Frontale=10.1.1.254=>10.1.1.10(CARP VIP)==>|
                                                                                                                     ==>10.1.1.2(Slave pfsense)
                  

                  Regles NAT

                  
                                  <rule><source>
                  				 <any><destination><network>wanip</network>
                  				<port>1194</port></destination> 
                  			<protocol>udp</protocol>
                  			<target>10.1.1.10</target>
                  			<local-port>1194</local-port>
                  			<interface>wan</interface>
                  			 <descr><associated-rule-id>nat_557aa0cfd877b8.73983935</associated-rule-id></descr></any></rule> 
                  
                  
                  1 Reply Last reply Reply Quote 0
                  • L
                    Lolight
                    last edited by

                    As-tu agis sur l'onglet "Client Specific Override" ?

                    Que donne les logs OpenVPN lors d'un essai de connexion ?

                    Verrifie dans t'es logs firewall que tu n'a pas bloqué le traffic sur un de t'es pfSense.

                    1 Reply Last reply Reply Quote 0
                    • S
                      Sagitta
                      last edited by

                      Non je n'ai pas agi sur le client override.
                      Comme je le disais plus haut la même configuration de vpn fonctionne depuis les pfsense frontales.
                      Il n'ya que lorsque je tente de le faire avec du nat derriere la pfsense frontale que ça ne fonctionne pas.

                      Les logs du client:

                      
                      Jun 12 15:20:24	openvpn[97824]: virtual_hash_size = 256
                      Jun 12 15:20:24	openvpn[97824]: client_connect_script = '[UNDEF]'
                      Jun 12 15:20:24	openvpn[97824]: learn_address_script = '[UNDEF]'
                      Jun 12 15:20:24	openvpn[97824]: client_disconnect_script = '[UNDEF]'
                      Jun 12 15:20:24	openvpn[97824]: client_config_dir = '[UNDEF]'
                      Jun 12 15:20:24	openvpn[97824]: ccd_exclusive = DISABLED
                      Jun 12 15:20:24	openvpn[97824]: tmp_dir = '/tmp'
                      Jun 12 15:20:24	openvpn[97824]: push_ifconfig_defined = DISABLED
                      Jun 12 15:20:24	openvpn[97824]: push_ifconfig_local = 0.0.0.0
                      Jun 12 15:20:24	openvpn[97824]: push_ifconfig_remote_netmask = 0.0.0.0
                      Jun 12 15:20:24	openvpn[97824]: push_ifconfig_ipv6_defined = DISABLED
                      Jun 12 15:20:24	openvpn[97824]: push_ifconfig_ipv6_local = ::/0
                      Jun 12 15:20:24	openvpn[97824]: push_ifconfig_ipv6_remote = ::
                      Jun 12 15:20:24	openvpn[97824]: enable_c2c = DISABLED
                      Jun 12 15:20:24	openvpn[97824]: duplicate_cn = DISABLED
                      Jun 12 15:20:24	openvpn[97824]: cf_max = 0
                      Jun 12 15:20:24	openvpn[97824]: cf_per = 0
                      Jun 12 15:20:24	openvpn[97824]: max_clients = 1024
                      Jun 12 15:20:24	openvpn[97824]: max_routes_per_client = 256
                      Jun 12 15:20:24	openvpn[97824]: auth_user_pass_verify_script = '[UNDEF]'
                      Jun 12 15:20:24	openvpn[97824]: auth_user_pass_verify_script_via_file = DISABLED
                      Jun 12 15:20:24	openvpn[97824]: port_share_host = '[UNDEF]'
                      Jun 12 15:20:24	openvpn[97824]: port_share_port = 0
                      Jun 12 15:20:24	openvpn[97824]: client = DISABLED
                      Jun 12 15:20:24	openvpn[97824]: pull = DISABLED
                      Jun 12 15:20:24	openvpn[97824]: auth_user_pass_file = '[UNDEF]'
                      Jun 12 15:20:24	openvpn[97824]: OpenVPN 2.3.6 amd64-portbld-freebsd10.1 [SSL (OpenSSL)] [LZO] [MH] [IPv6] built on Apr 8 2015
                      Jun 12 15:20:24	openvpn[97824]: library versions: OpenSSL 1.0.1l-freebsd 15 Jan 2015, LZO 2.09
                      Jun 12 15:20:24	openvpn[97824]: MANAGEMENT: unix domain socket listening on /var/etc/openvpn/client1.sock
                      Jun 12 15:20:24	openvpn[97985]: NOTE: the current --script-security setting may allow this configuration to call user-defined scripts
                      Jun 12 15:20:24	openvpn[97985]: Static Encrypt: Cipher 'AES-128-CBC' initialized with 128 bit key
                      Jun 12 15:20:24	openvpn[97985]: Static Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
                      Jun 12 15:20:24	openvpn[97985]: Static Decrypt: Cipher 'AES-128-CBC' initialized with 128 bit key
                      Jun 12 15:20:24	openvpn[97985]: Static Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
                      Jun 12 15:20:24	openvpn[97985]: Socket Buffers: R=[42080->65536] S=[57344->65536]
                      Jun 12 15:20:24	openvpn[97985]: TUN/TAP device ovpnc1 exists previously, keep at program end
                      Jun 12 15:20:24	openvpn[97985]: TUN/TAP device /dev/tap1 opened
                      Jun 12 15:20:24	openvpn[97985]: do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
                      Jun 12 15:20:24	openvpn[97985]: /sbin/ifconfig ovpnc1 10.10.8.2 netmask 255.255.255.248 mtu 1500 up
                      Jun 12 15:20:24	openvpn[97985]: /usr/local/sbin/ovpn-linkup ovpnc1 1500 1592 10.10.8.2 255.255.255.248 init
                      Jun 12 15:20:24	openvpn[97985]: Data Channel MTU parms [ L:1592 D:1450 EF:60 EB:4 ET:32 EL:0 ]
                      Jun 12 15:20:24	openvpn[97985]: Local Options String: 'V4,dev-type tap,link-mtu 1592,tun-mtu 1532,proto UDPv4,ifconfig 10.10.8.0 255.255.255.248,cipher AES-128-CBC,auth SHA1,keysize 128,secret'
                      Jun 12 15:20:24	openvpn[97985]: Expected Remote Options String: 'V4,dev-type tap,link-mtu 1592,tun-mtu 1532,proto UDPv4,ifconfig 10.10.8.0 255.255.255.248,cipher AES-128-CBC,auth SHA1,keysize 128,secret'
                      Jun 12 15:20:24	openvpn[97985]: Local Options hash (VER=V4): 'ac469f59'
                      Jun 12 15:20:24	openvpn[97985]: Expected Remote Options hash (VER=V4): 'ac469f59'
                      Jun 12 15:20:24	openvpn[97985]: UDPv4 link local (bound): [AF_INET]10.2.1.1
                      Jun 12 15:20:24	openvpn[97985]: UDPv4 link remote: [AF_INET]PfSenseFrontale1:1194
                      Jun 12 15:20:32	openvpn[97985]: MANAGEMENT: Client connected from /var/etc/openvpn/client1.sock
                      Jun 12 15:20:32	openvpn[97985]: MANAGEMENT: CMD 'state 1'
                      Jun 12 15:20:32	openvpn[97985]: MANAGEMENT: Client disconnected
                      
                      

                      logs serveur vpn:

                      
                      Jun 12 15:20:20	openvpn[57151]: push_ifconfig_defined = DISABLED
                      Jun 12 15:20:20	openvpn[57151]: push_ifconfig_local = 0.0.0.0
                      Jun 12 15:20:20	openvpn[57151]: push_ifconfig_remote_netmask = 0.0.0.0
                      Jun 12 15:20:20	openvpn[57151]: push_ifconfig_ipv6_defined = DISABLED
                      Jun 12 15:20:20	openvpn[57151]: push_ifconfig_ipv6_local = ::/0
                      Jun 12 15:20:20	openvpn[57151]: push_ifconfig_ipv6_remote = ::
                      Jun 12 15:20:20	openvpn[57151]: enable_c2c = DISABLED
                      Jun 12 15:20:20	openvpn[57151]: duplicate_cn = DISABLED
                      Jun 12 15:20:20	openvpn[57151]: cf_max = 0
                      Jun 12 15:20:20	openvpn[57151]: cf_per = 0
                      Jun 12 15:20:20	openvpn[57151]: max_clients = 1024
                      Jun 12 15:20:20	openvpn[57151]: max_routes_per_client = 256
                      Jun 12 15:20:20	openvpn[57151]: auth_user_pass_verify_script = '[UNDEF]'
                      Jun 12 15:20:20	openvpn[57151]: auth_user_pass_verify_script_via_file = DISABLED
                      Jun 12 15:20:20	openvpn[57151]: port_share_host = '[UNDEF]'
                      Jun 12 15:20:20	openvpn[57151]: port_share_port = 0
                      Jun 12 15:20:20	openvpn[57151]: client = DISABLED
                      Jun 12 15:20:20	openvpn[57151]: pull = DISABLED
                      Jun 12 15:20:20	openvpn[57151]: auth_user_pass_file = '[UNDEF]'
                      Jun 12 15:20:20	openvpn[57151]: OpenVPN 2.3.6 amd64-portbld-freebsd10.1 [SSL (OpenSSL)] [LZO] [MH] [IPv6] built on Apr 8 2015
                      Jun 12 15:20:20	openvpn[57151]: library versions: OpenSSL 1.0.1l-freebsd 15 Jan 2015, LZO 2.09
                      Jun 12 15:20:20	openvpn[57151]: MANAGEMENT: unix domain socket listening on /var/etc/openvpn/server1.sock
                      Jun 12 15:20:20	openvpn[57254]: NOTE: the current --script-security setting may allow this configuration to call user-defined scripts
                      Jun 12 15:20:20	openvpn[57254]: Static Encrypt: Cipher 'AES-128-CBC' initialized with 128 bit key
                      Jun 12 15:20:20	openvpn[57254]: Static Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
                      Jun 12 15:20:20	openvpn[57254]: Static Decrypt: Cipher 'AES-128-CBC' initialized with 128 bit key
                      Jun 12 15:20:20	openvpn[57254]: Static Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
                      Jun 12 15:20:20	openvpn[57254]: Socket Buffers: R=[42080->65536] S=[57344->65536]
                      Jun 12 15:20:20	openvpn[57254]: ROUTE_GATEWAY 10.1.1.254
                      Jun 12 15:20:20	openvpn[57254]: OpenVPN ROUTE: OpenVPN needs a gateway parameter for a --route option and no default was specified by either --route-gateway or --ifconfig options
                      Jun 12 15:20:20	openvpn[57254]: OpenVPN ROUTE: failed to parse/resolve route for host/network: 10.2.1.0
                      Jun 12 15:20:20	openvpn[57254]: TUN/TAP device ovpns1 exists previously, keep at program end
                      Jun 12 15:20:20	openvpn[57254]: TUN/TAP device /dev/tap1 opened
                      Jun 12 15:20:20	openvpn[57254]: do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
                      Jun 12 15:20:20	openvpn[57254]: /sbin/ifconfig ovpns1 10.10.8.1 netmask 255.255.255.248 mtu 1500 up
                      Jun 12 15:20:20	openvpn[57254]: /usr/local/sbin/ovpn-linkup ovpns1 1500 1592 10.10.8.1 255.255.255.248 init
                      Jun 12 15:20:20	openvpn[57254]: Data Channel MTU parms [ L:1592 D:1450 EF:60 EB:4 ET:32 EL:0 ]
                      Jun 12 15:20:20	openvpn[57254]: Local Options String: 'V4,dev-type tap,link-mtu 1592,tun-mtu 1532,proto UDPv4,ifconfig 10.10.8.0 255.255.255.248,cipher AES-128-CBC,auth SHA1,keysize 128,secret'
                      Jun 12 15:20:20	openvpn[57254]: Expected Remote Options String: 'V4,dev-type tap,link-mtu 1592,tun-mtu 1532,proto UDPv4,ifconfig 10.10.8.0 255.255.255.248,cipher AES-128-CBC,auth SHA1,keysize 128,secret'
                      Jun 12 15:20:20	openvpn[57254]: Local Options hash (VER=V4): 'ac469f59'
                      Jun 12 15:20:20	openvpn[57254]: Expected Remote Options hash (VER=V4): 'ac469f59'
                      Jun 12 15:20:20	openvpn[57254]: UDPv4 link local (bound): [AF_INET]10.1.1.1:1194
                      Jun 12 15:20:20	openvpn[57254]: UDPv4 link remote: [undef]
                      Jun 12 15:20:21	openvpn[57254]: MANAGEMENT: Client connected from /var/etc/openvpn/server1.sock
                      Jun 12 15:20:22	openvpn[57254]: MANAGEMENT: CMD 'status 2'
                      Jun 12 15:20:22	openvpn[57254]: MANAGEMENT: CMD 'quit'
                      Jun 12 15:20:22	openvpn[57254]: MANAGEMENT: Client disconnected
                      Jun 12 15:20:35	openvpn[57254]: MANAGEMENT: Client connected from /var/etc/openvpn/server1.sock
                      Jun 12 15:20:35	openvpn[57254]: MANAGEMENT: CMD 'state 1'
                      Jun 12 15:20:35	openvpn[57254]: MANAGEMENT: Client disconnected
                      
                      
                      1 Reply Last reply Reply Quote 0
                      • L
                        Lolight
                        last edited by

                        Tu n'a rien vu au niveau des firewall pfSense ? (Les deux frontaux)

                        Je vois pas d'erreur dans les log, t'es conf openvpn doivent être correcte. (Je te conseil plutôt l'AES-256-CBC)

                        Hmm le nat ne devrais pas poser soucis, j'ai du NAT sur mon pfSense est un serveur OpenVpn dessus.
                        Ca fonctionne très bien. Mon pfSense est en frontal.

                        As tu essayer de mettre du NAT sur ton frontal et sur ton serveur  ? (je sais pas si ça va résoudre ton problème.)

                        1 Reply Last reply Reply Quote 0
                        • S
                          Sagitta
                          last edited by

                          Merci pour ta réponse.

                          Pour mieux situer ta configuration, ta pfsense est en frontale c'est elle qui a l'ip publique et aussi elle qui a le service openvpn d'actif.

                          Si oui, cela correspond au test que j'ai effectué afin de savoir si ma conf vpn etait viable, qui fut concluant.

                          Donc je m'orrient plus sur un soucis de masquerade nat

                          1 Reply Last reply Reply Quote 0
                          • First post
                            Last post
                          Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.