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/
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 ilip . É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 NeoX . É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 ilip . É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 Ecran Plat (site web personnel) . É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 Julien_J06 . É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 NeoX . É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 fredezic . É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.