Forum Linux.général Routage Proxmox + pfSense

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
0
13
fév.
2020

Bonjour,

J'ai mis en place un système de machines virtuelles Proxmox sur un serveur dédié OVH,
Avec un machine virtuelle pfSense (DMZ) qui sert de firewall / redirection de ports.

Mon architecture est équivalente à celle décrite sur ce post :
https://blog.zwindler.fr/2017/07/18/deploiement-de-proxmox-ve-5-sur-un-serveur-dedie-part-2/

Titre de l'image

L'ensemble du trafic entrant sur le Proxmox est redirigé vers la VM firewall (sauf le port SSH et le port admin) :

# accepter les trames port 22 (SSH) et 8006 (Proxmox WEB UI)
iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 22 -j ACCEPT
iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 8006 -j ACCEPT

# envoyer le reste du trafic TCP / UDP sur le firewall pfSense
iptables -t nat -A PREROUTING -i vmbr0 -j DNAT --to 10.0.0.2

Et le trafic sortant est géré par la règle suivante (NAT masquerade) :

# activer le SNAT pour le partage de connexion internet
iptables -t nat -A POSTROUTING -o vmbr0 -j SNAT -s 10.0.0.0/30 --to-source EXTERNAL_IP

Cette configuration fonctionne correctement, je peux accéder à mes VM depuis l'extérieur avec des redirections de ports dans pfSense, et mes VM peuvent accéder à Internet.

Je rencontre cependant un problème lorsque une VM souhaite se connecter à un service d'une autre VM en utilisant le nom de domaine.

Exemple : curl https://mon-domain.com

Le DNS est correctement résolu et un paquet réseau est envoyée à destination de EXTERNAL_IP.
Le paquet réseau est routé vers la gateway (pfsense), celui-ci route le paquet vers son interface WAN (le proxmox). Et la requête s'effectue alors sur le Proxmox, qui ne contient pas le service HTTPS. Dans mon cas je souhaite que le paquet réseau soit routé comme un paquet qui viendrait de l'extérieur, c'est à dire routé sur la VM pfSense, puis vers la VM serveur WEB grâce à la redirection de port.

Dans ce cas je ne sais pas si je dois configurer quelque chose dans pfSense pour qu'il ne route pas les paquets en direction de EXTERNAL_IP vers le WAN mais qu'il le garde sur le réseau LAN en utilisant les redirections de ports,
Ou si je dois laisser ressortir le paquet vers Proxmox et ajouter une règle iptables pour re-router le paquet vers pfSense.
Dans les deux cas je n'ai pas trouvé de règle iptables ou configuration pfSense qui fonctionne.

Auriez-vous des idées à ce sujet ?

  • # NAT reflection

    Posté par  . Évalué à 1.

    Le "NAT reflection" semble être adapté à cette problématique

    https://docs.netgate.com/pfsense/en/latest/book/nat/nat-reflection.html

    C'est pas très pratique car je dois dupliquer les règles NAT du WAN sur le LAN mais ça semble fonctionner

  • # IP supplémentaire

    Posté par  . Évalué à 4.

    regarde si ton fournisseur du serveur ne peut pas t'attribuer une IP supplémentaire (failover ou autre).

    ainsi tu mets cette nouvelle IP sur le pfsense, interface WAN
    c'est alors indépendant de l'IP du proxmox.

    tu n'as alors plus à te soucier des règles de firewall dans le proxmox
    les flux arrivent directement sur vmbr0 (interface publique du pfsense)
    et tu as tes VMs sur ton vmbr2 (internal OVSbridge par exemple, le LAN du pfsense)

    • [^] # Re: IP supplémentaire

      Posté par  . Évalué à 1. Dernière modification le 13 février 2020 à 14:42.

      Ah oui c'est vrai qu'il y a aussi cette méthode qui simplifie vraiment les choses.
      A l'époque j'utilisais un serveur OVH kimsufi et c'était pas possible d'avoir plusieurs IP.
      Mais là comme c'est un serveur de la gamme OVH dédié, c'est peut être jouable, je vais regarder

      • [^] # Re: IP supplémentaire

        Posté par  (site web personnel, Mastodon) . Évalué à 3.

        Bien sur que c'est possible j'ai un soyoustart avec plusieurs ip,
        elles sont toute mapper sur la mac virtuel du wan du pfsense qui est connecté à vmbr0

        après j'ai fait une deuxième carte vmbr1 qui est mapper sur un dumy.
        Le lan du pfense y est raccorder ainsi que toutes mes vm et containers.
        Je gère tous les accès depuis le pfsense.

        Sur le serveur j'ai que laisser un port ssh sur un port exotique d'ouvert avec un fail2ban c'est pour un accès de secours (genre maj du proxmox et redémarrage, si le pfense ne remonte pas on peut y acceder pour le restarter.

        Comme mon routeur à la maison c'est un pfsense j'ai même un vpn site à site sur openvpn qui me permet d'adresser directement les VM sur leurs adresses internes depuis mon lan

        Le truc qu'il faut faire gaffe, c'est la gateway que tu indiques dans le pfsense comme elle est pas dans le même subnet que l'adresse ip tu dois bricoler un truc
        https://www.it-connect.fr/pfsense-2-4-3-ip-failover-sur-un-esxi-chez-ovh/
        https://www.it-connect.fr/pfsense-shellcmd-pour-executer-des-commandes-au-demarrage/
        (c'est pour un pfsense sur esxi mais c'est pareil sur proxmox)

  • # Le bon vieux coup du fichier host

    Posté par  . Évalué à 1.

    Hello,

    Si j'ai pas loupé une étape dans mon raisonnement, mettre une entrée dans le fichier host de la machine serveur ça ne réglerait pas le problème ?
    Hors considération de maintenance et d'évolution du réseau ? Ou bien passer par l'IP lors de la configuration du service sur la machine cliente ?

    Julien_c'est_bien (y'a pas que Seb)

    • [^] # Re: Le bon vieux coup du fichier host

      Posté par  . Évalué à 2.

      dans la meme idée,

      mettre le service DNS en route sur le pfsense.
      et renvoyer les noms de domaine vers les IPs internes des VMs

      ainsi les VMs causent entre elles en interne.

      mais il faut alors gérer 2 DNS, celui publique, et celui du pfsense.

  • # architecture

    Posté par  . Évalué à 1.

    j'ai du mal a comprendre a quoi sert le vmWanNet

    en général quand on veut proteger par un firewall un réseau, il faut le mettre le plus proche d'internet

    je ne suis pas un expert de promox mais le plus simple selon moi est de mettre ta vm pfsense avec ton ip publique en direct sur internet et mettre l'ip d'admin de ton hyperviseur dans ton réseau privé

    tu n'as plus de double nat a gérer avec iptable et pfsense, il y a des chances pour que ca fonctionne plus facilement

    les enchainements de nat comme ca, ca peut devenir rapidement compliquer a suivre

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.