Forum général.général Configuration réseau Proxmox + pfSense

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
0
2
mar.
2016

Bonjour,

Je cherche à configurer un serveur dédié OVH avec l'architecture suivante :

L'OS est un hyperviseur de VM Proxmox (Linux + KVM).

L'administration par Internet du Proxmox se fait par une IPv4 publique, sur le port 22 (SSH) et le port 8006 (administration WEB).

Je veux qu'une VM avec pfSense (FreeBSD) serve de firewall / routeur, de manière à configurer les redirections de ports via l'administration WEB de pfSense (et aussi éviter de planter l'accès Proxmox en cas de mauvaise manip IPTABLE).

De l'extérieur, je veux garder l'accès aux ports 22 et 8006 du Proxmox, et avoir un accès à la page d'admin WEB du pfSense (port XXX).

Pour cela il faut configurer les IPTABLES du Proxmox, de manière à ce qu'il garde pour lui les trames 22 et 8006, puis redirige tout le reste du traffic vers la VM pfSense.

Ensuite pfSense sert de passerelle à toutes les autres VM (NAT et redirections de ports).

Et si possible, utiliser la fonction DMZ de pfSense.

Cette architecture est-elle possible ? Est-elle cohérente ?

Si oui, j'aimerai un peu d'aide sur ce qu'il faut faire comme IPTABLES coté Proxmox et pfSense.

PS : je ne dispose que d'une seule IP publique IPv4.

  • # combien d'IP publiques ?

    Posté par  . Évalué à 4.

    J'ai un truc similaire à ton cas sur mon proxmox, et voici comment je fais :

    vmbr0 du proxmox a l'ip publique
    les VMs ont des IPs privées et sont branchées sur vmbr1

    avec une seule IP publique

    il faut faire un peu d'iptables sur le proxmox pour renvoyer TOUT sauf PING/SSH/8006 vers le PFsense.
    et activer l'IP forward et le NAT pour planquer les VMs en ip privée derriere le proxmox

    le PFsense peut avoir 1/2/3/4/…/N cartes reseaux, que tu branches sur le vmbr1
    et que tu isoles si necessaire avec des vlans.

    ton PFsense a donc :
    - une patte WAN sur vmbr1, avec une IP privée et une passerelle par defaut (ton proxmox à qui tu auras mis une IP privée sur vmbr1)
    - autant de patte LAN/DMZ1/DMZ2… que tu veux, sur chacun des VLANs de vmbr1 pour aller causer à tes VMs

    tes VMs ont une ips privées et parlent au pFsense (leur route par defaut)

    avec plusieurs IPs publiques (failover)

    tu crees une IP publique avec une adresse MAC specifique,
    tu crees la VMs pfsense, avec une carte reseau sur vmbr0 ET avec l'adresse MAC/IP specifique, ce sera le WAN

    puis comme precedemment, tu as tes VMs sur vmbr1, tu fais donc une ou plusieurs interfaces sur vmbr1 avec ou sans vlan pour que pfsense puisse parler à des VMs.

    la passerelle des VMs est le pFsense.

    • [^] # Re: combien d'IP publiques ?

      Posté par  . Évalué à 0.

      Comment redirige tu tout le trafic sur le pfSense ? Tu fais une règle de NAT sur l'ensemble de l'interface vmbr0 ? Est-ce qu'il est possible de nater des plages de port ?

    • [^] # Re: combien d'IP publiques ?

      Posté par  . Évalué à 0.

      Peux-tu préciser les règles IPTABLES qui permettent de "renvoyer TOUT sauf PING/SSH/8006 vers le PFsense" ?

  • # Guide

    Posté par  . Évalué à 2. Dernière modification le 02 mars 2016 à 17:33.

    Salut,

    C'est mal exprimé à certain moment, mais rassures toi, tu as la bonne logique et ton besoin est tout ce qu'il y a de plus normal pour quelqu'un possédant un serveur dédié. Tous ceux qui ont un serveur dédié et qui sont passé par l'étape Firewall ont effectué cette installation au moins une fois.

    Aller zouh, petit pense-bête car j'ai pas mal galéré ma première fois, il y a quelques années :

    Tu te munis d'une IPFailover - IP+MAC

    Sois tu en à déjà une, sois tu peux en demander une gratuitement, ou enfin la payer, mais c'est de plus en plus rare

    Problématique / Solution

    Ton firewall aura une patte sur la vmbr0 pour sortir du contexte virtuel et une patte sur la vmbr1 pour le réseau privé. Les VM seront ensuite bridgé sur la vmbr1

    Préparer Proxmox

    Go sur l'interface web de Proxmox.
    Créer quelques interface Ethernet virtuelles pour les réseaux privés de tes différents contextes. (fait en une dizaine pour être tranquille)
    Procédure : va dans l’arborescence de ton nœud Proxmox, puis va dans l’onglet « Réseau ». Tu cliques sur « Créez » puis « Bridge »

    Création VM FIREWALL

    Ensuite tu créer une machine virtuelle avec deux cartes réseau, dont une avec l’adresse MAC fournit lors de la création de l’IP Failover. Puis charge l’ISO de ton PFSENSE/IPFire/whatelse, tu fais son installation en veillant bien d’associer l’interface red0 à la vmbr0 et green0 à la vmbr1

    Configuration réseau FIREWALL avec script au démarrage

    Tu fais un petit script qui s'exécute au boot de ton PFSENSE/IPFire/whatelse qui contient ceci (A adapter) :

    ifconfig red0 down
    ifconfig red0 [failover]/32 pointopoint [ip-vmbr0]
    route add default gw [failover] dev red0
    route add default gw [ip-vmbr0] dev red0
    ifconfig red0 up
    echo "Configuration IPTables pour IPfailover : OK"

    Tu y lancera grâce à la crontab au boot de ton FIREWALL, je suppose que tu sais comment ça marche.

    Tout fonctionne !

    Tu n'as plus qu'a bridger tes machines virtuelles sur les vmbr que tu as créé et configuré.

    Bonne chance !

    Ça risque de bien te prendre la tête à la première installation, tu auras besoin de patience et de chance ! :D

    • [^] # Re: Guide

      Posté par  . Évalué à 1.

      Salut, merci pour ton retour.

      Dans mon cas il s'agit d'un serveur de la filière Low-Cost de OVH (Kimsufi, serveur KS-3B), sur ces serveurs il n'est pas possible d'avoir plusieurs IP, ni d'IP failover. Donc je dois me débrouiller avec une seule IPv4.

      J'ai bien compris l'architecture réseau que je dois configurer, le soucis c'est plus la mise en pratique, car j'ai peu d'expérience en réseau / iptables.

      Mon soucis est de savoir comment faire passer l'ensemble du trafic TCP / UDP sur le firewall (pfSense), tout en gardant un accès au SSH et au serveur WEB du Proxmox.

      Au passage, si vous connaissez un bon tuto sur le fonctionnement des iptables je suis preneur.
      J'ai lu celui-ci qui est vraiment clair, mais il manque la partie NAT (http://sid.rstack.org/articles/netfilter/netfilter1.html).

      • [^] # Re: Guide

        Posté par  . Évalué à 2.

        quelques regles de bases

        pour convertir le flux TCP port 80 ou 443 quand on vient de l'exterieur vers le serveur :

        iptables -t nat -A PREROUTING -d IP-SERVEUR -p tcp --dport 80 -j DNAT --to-destination IP-privee-pfsense
        iptables -t nat -A PREROUTING -d IP-SERVEUR -p tcp --dport 443 -j DNAT --to-destination IP-privee-pfsense

        pour convertir en sortant du pfsense vers le publique

        iptables -t nat -A POSTROUTING -s IP-pfsense -j SNAT --to-source IP-SERVEUR

        un schema valant mieux qu'un long discours

        • [^] # Re: Guide

          Posté par  . Évalué à 1.

          Bonjour,

          Ce que je cherche à faire est exactement l'inverse,

          Ne pas rediriger les ports 80 et 8006, et rediriger tout le reste vers la pfSense.

          • [^] # Re: Guide

            Posté par  . Évalué à 2.

            remplace 80 par XX:YY et ca renvoie un range debutant à XX et terminant à YY
            ou utilise la negation

            • [^] # Re: Guide

              Posté par  . Évalué à 1.

              Je vais essayer les règles suivantes :

              PROXMOX :

              iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j ACCEPT
              iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8006 -j ACCEPT
              iptables -t nat -A PREROUTING -i eth0 -j DNAT --to 10.0.0.254 (adresse IP du pfSense)

              ("Vous pouvez utiliser la cible `-j ACCEPT' pour laisser passer une connexion sans réaliser de NAT.")

              Pour garder les paquets 80 et 8006 sur le proxmox, et rediriger le reste sur pfSense.

              PFSENSE :

              iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
              iptables -t nat -A PREROUTING -p tcp --dport 8080 -i eth0 -j DNAT --to 10.0.0.200 (SERVEUR WEB)
              iptables -t nat -A PREROUTING -p tcp --dport 5432 -i eth0 -j DNAT --to 10.0.0.210 (SERVEUR BDD)

              Pour faire le partage de connexion NAT et les redirections de ports.

              • [^] # Re: Guide

                Posté par  . Évalué à 1.

                Attention, toutes les règles sont sur le Proxmox ! Pas besoin de faire du iptables sur un pfSense, c'est même dangereux.

                • [^] # Re: Guide

                  Posté par  . Évalué à 1. Dernière modification le 04 mars 2016 à 09:21.

                  En effet ce ne sont pas des iptables sur pfSense, on fait la configuration par le site WEB d'administration.
                  Mais dans le principe le NAT MASQUERADE et les redirections de ports doivent bien se situer sur le pfSense (c'est le but de l'architecture).

              • [^] # Re: Guide

                Posté par  . Évalué à 2.

                l'idée est bonne, il faudra quand meme faire attention que :
                - l'interface publique de ton proxmox s'appelle vmbr0
                - l'interface privée sera vmbr0

                et sur le pfsense tes cartes vont s'appeler em0, em1, em2 et c'est à pfsense de faire le boulot, pas à iptables.

Suivre le flux des commentaires

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