[Proxmox] Cloud serveur Proxmox 6.x sur un serveur Kimsufi avec pfSense et Openvpn

 

Cloud serveur Proxmox 6.x sur un serveur Kimsufi avec pfSense et Openvpn
Article original Publié le : 17 avril 2021
Mise a jour le : 25 aout 2022
Mise a jour le : 15 mai 2022

 

Pour faire suite a l’article https://it.izero.fr/proxmox-cloud-serveur-proxmox-6-x-sur-un-serveur-kimsufi/

Pour les premiers tests, j’ouvrais les flux avec iptables mais cela devient vite trop lourd à gérer.
Du coup, Les vm’s seront exposé derriere un firewall pfSense et administrable via  Openvpn
L’ensemble du trafic sera re-routé a l’exception du port ssh, http/https et du webui serveur proxmox qui reste ouvert depuis iptables sur mes ip’s publiques.

Bref, j’ai essayé de schématiser 😆

 

 

I. Configuration réseau sur le socle Proxmox

Il faut créer les bridges virtuels vmbr1 et 2

En cli

le vmbr0 est lié à l’interface qui porte l’IP publique

le vmbr1 servira de passerelle avec la pate wan du pfSense, son plan d’adressage sera 10.0.0.1/30

le vmbr2 servira aux vm’s et a la pate lan du pfSense, son plan d’adressage sera 192.168.50.1/24

 

 

II. pfSense

Pour les specs ca tourne correctement avec  1GO ram, 2 vcpu, 10GO hdd et deux cartes réseaux
net0 qui sera rattaché a vmbr1
net1 qui sera rattaché a vmbr2

Récupérer l’iso depuis le repo officiel https://www.pfsense.org/ puis assigner les interfaces réseaux a l’installation
l’adresse WAN sera sur l’interface vtnet0 et portera l’adresse 10.0.0.2/30
IPv4 Upstream gateway: 10.0.0.1
l’adresse LAN sera sur l’interface vtnet1 et portera l’adresse 192.168.50.2/24
IPv4 Upstream gateway: none

 

 

III. Tunneling ssh

Pour la première connexion a pfSense, le plus simple, c’est de faire un tunnel ssh sur le seul port ouvert en redirigeant le 80 vers 8080
Une autre solution serait de créer une vm avec une interface graphique sur le bond vmbr2, qui permettra d’avoir un accès direct depuis le mode console

Se connecté sur l’interface depuis localhost sur le port declaré

On profite pour changer le mot de passe et le port d’administration en https
Il faudra également activer la rule wan pour administrer le firewall depuis l’extérieur et autorisé en source son ip public
On peut en profiter pour changer le port d’administration 443 par 8443

Aller dans Interface / Wan et décocher Block private networks and loopback addresses

Puis aller dans System / Advanced / Admin Access

Puis dans les rules

 

 

IV. Iptables

/!\ Un recap de l’état de l’iptables avec un INPUT et OUTPUT en drop

#INPUT

#FORWARD

#OUTPUT

Pour l’interface pfSense

Si ces regles sont correctes, on peut passer au nat

Activer le FORWARD

Pour le PREROUTING, voici l’ordre pour conserver la connexion au ssh et au webgui

Port SSH

Port WEB

Port Let’s Encrypt (a n’activer qu’au besoin si  service externe utilisé)

Enfin renvoyer tout le traffic vers la pate WAN du pfSense

Activer la SNAT

# Rediriger les paquets destinés au LAN pour l’interface WAN du pfSense

 

Voici ce que l’on devrait avoir en listant les routes

 

Normalement on est bon, on peut verifier les règles iptables

 

On peux maintenant sauvegarder les règles d’iptables dans un fichier

Editer le fichier interface et ajouter lui l’instruction pour la restauration du fichier au demarrage

 

 

V. Uptime Robot

Je rajoute ce pavé pour superviser l’etat du service avec ce monitor en ligne.

Voici la plage d’adresse a autorisé (je suis pas sur de la finalité de mettre toutes les ips),  pour une meilleure lisibilité, j’ai taggué un commentaire

https://uptimerobot.com/inc/files/ips/IPv4andIPv6.txt

 

 

VI. Openvpn

Dans les grandes lignes, j’utilise le module OpenVpn via pfSense,
La plage d’adresses pour les clients vpn est 192.168.51.0/24

 

La CA

 

Le certificat serveur (et client)

 

 

VII. Les règles pfSense pour Openvpn

Avec le Wizard les règles seront crées automatiquement

 

 

 

 

VII. Export du certificat client

Pour pouvoir exporter son certificat dans différents formats (.cer, ovpn …)
il faut installer le plugin openvpn-client-export depuis le menu SystemPackage / ManagerInstalled / Packages

 

 

 

 

VIII. NAT pfSense

Exemple pour l’ouverture de flux pour Let’s Encrypt pour une vm nécessitant le besoin

Il faut ouvrir le port 80 et 443 sur firewalld, et coté pfSense, naté les 2 ports et autorisé les ports entrants sur le lan

 

 

IX. Tips

Petit mémo pour l’administration d’iptables

  • Lister les règles de NAT

  • Pour supprimer une règle de PREROUTING

  • Pour supprimer une règle de POSTROUTING

 

  • Lister les règles INPUT

  • Pour supprimer une regle INPUT

 

  • Lister les règles OUTPUT

  • Pour supprimer une règle OUTPUT

 

Shutdown Manually

 

 

X. Sources

Quelques liens utiles

https://computerz.solutions/pfsense-nat-pat-deux-serveurs-dns/

https://www.pc2s.fr/pfsense-installation-et-configuration/

 

 

Rating: 5.0/5. From 1 vote.
Please wait...
Voting is currently disabled, data maintenance in progress.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.