HAPROXY avec reverse HTTPS de LAN à LAN


  • Bonjour à tous,

    Je me permets de solliciter votre aide.
    J'ai un PFSENSE avec HAPROXY qui me permet de faire du reverse en HTTPS, j'arrive très bien à accéder à mes serveurs Web à partir d'internet en HTTPS.
    Pour l'accès interne, j'utilise DNS RESOLVER qui marche très bien, mais je me connecte en HTTP.
    Je voulais savoir s’il existe un moyen d'utiliser HAPROXY pour écouter le LAN et par la même occasion permettre d'utiliser les certificats SSL pour une connexion HTTPS en interne?

    Voici la topologie de mon réseau :

    • VLAN LAN1 (interne) 192.168.10.0/24
    • VLAN LAN2 (interne) 192.168.20.0/24
    • VLAN WIFI1 (interne) 192.168.30.0/24
    • VLAN DMZ1(externe) 10.1.1.0/24

    Objectif :
    Accéder aux différents serveurs de la zone DMZ1 à partir de LAN1, LAN2 et WIFI1 en transitant via HAPROXY pour bénéficier d'une connexion HTTPS avec le certificat de HAPROXY.

    Voici le test réalisé :
    J'ai crée un FRONTEND dans HAPROXY qui écoute le LAN1 et j'ai modifié DNSRESOLVER pour faire pointer le nom de domaine de mes serveurs WEB en direction de la passerelle du LAN1 (192.168.1.254).
    Jusque là tout fonctionne bien, par contre ayant plusieurs LAN ce système n'est pas fonctionnel, car je ne peux pas mapper le DNSRESOLVER sur les passerelles de chaque sous-réseau.

    Auriez-vous une idée, sur la façon de faire?

    Merci d'avance,


  • Hello,

    Bon, je commence par me permettre une petite remarque : en postant en français, tu écartes d'emblées toute l'aide que tu pourrais recevoir des utilisateurs internationaux. 😉

    Je me heurte comme toi à ce problème, encore que je vois que tu es allé plus loin que moi :)
    Je te remercie d'avoir partagé ta méthode, ca me donne des pistes de choses à tester.

    Quelques questions :

    • tu fais du SSL offloading au niveau de HAProxy ? (mon cas), ou alors tu forward simplement HTTPS vers le backend ? vu ton descriptif je pense que tu fais de l'offloading, mais c'est pour confirmer.
    • est-ce que tu filtre le traffic inter-LAN (entre LAN1/LAN2/WIFI1) ?

    Quelques idées:

    • si tu mets un frontend HAproxy en écoute sur par exemple l'interface LAN1
    • et que tu définis des entrées dans le DNS resolver pour tes sites en utilisant l'IP de l'interface LAN1
      (jusque là je pense que c'est ce que tu as déjà fait)
      => est-ce que depuis une machine en LAN2 tu peux atteindre le frontend qui écoute sur LAN1 ou pas ?
      Concrètement, je ne vois pas ce qui pourrait l'empêcher.

    En gros : (admettons que tes interfaces pfSense portent toutes la .1 dans chaque VLAN):

    • le frontend haproxy "interne" écoute sur LAN1 (192.168.10.1)
    • les entrées dans le resolver pointent toutes sur cette IP (192.168.10.1) (par ex : monsite.mondomaine.fr)
    • depuis une machine située en LAN2 :
      • quand tu ping ou essaye de résoudre monsite.mondomaine.fr, tu obtiens bien 192.168.10.1 ?
      • quand tu essayes de l'ouvrir dans un navigateur, que se passe-t-il ?
      • si ca ne fonctionne pas, vois tu des paquets bloqués dans les logs FW de pfSense ?

    [EDIT]
    Hummm, je viens de réaliser un truc : l'interface d'admin de pfSense écoute déja sur le port 443 des interfaces internes (au moins une d'elles je pense, probablement LAN1) => il faut donc créer ton fronted interne sur une des interfaces qui n'héberge pas la page d'admin de pfSense !

    Autre option : changer le port d'écoute de l'interface d'admin dans "system/advanced/admin access" puis l'option "tcp port".


  • Je m'auto-réponds, ca fonctionne pour moi.

    1/ J'ai changé le port de l'interface d'admin de pfSense vers un autre port pour être sur que le 443 est libre
    2/ J'ai créé une interface supplémentaire (pour avoir un second LAN comme toi), appelons là "LAN2"
    3/ Dans Haproxy, j'ai copié la configuration de mon frontend "public" fonctionnel, et j'ai simplement assigné ce nouveau frontend à l'interface "LAN2" créée en 2/
    4/ Dans le DNS resolver j'ai changé le record existant pour "monsite.mondomaine.fr" qui pointait en direct sur le serveur et j'ai mis l'adresse IP de l'interface "LAN2" (celle qui a aussi été utilisée pour HAproxy).

    Tests :

    • depuis une machine de mon LAN1, la résolution de monsite.mondomaine.fr retourne bien l'IP de l'interface "LAN2" => DNS resolver OK
    • depuis cette même machine, je ping bien cette adresse => pas de filtrage
    • depuis mon navigateur, j'accède bien à mon site en HTTPS.

    Grâce à toi j'ai résolu mon problème, donc j'espère que cela fonctionnera pour toi aussi 😉

    J'ai égalemen testé en assignant le frontend sur l'interface LAN1, et en mettant évidemment à jour les records dans le resolver, tout fonctionne parfaitement.


  • Bonjour @Myster_fr,

    Mais oui, je n'y ai pas pensé un instant à voir le problème en sens inverse.
    Vraiment merci beaucoup, ça fait des jours que je planche dessus. 😊 👍 👍 👍 👍

    ça marche parfaitement bien.


  • A deux cerveaux, on finit par s'en sortir :).
    Du coup, si tu pouvais cliquer sur le petit pouce jaune pour moi...
    Je suis franchement inscrit sur le forum et j'ai besoin d'accumuler des points de réputation ;)

    Merci !