Tut's pfSense

[pfSense 2.2.6] Mise en place d’un routeur pfSense en frontal sur un dédié avec ESXi

Mettre un pfSense en dit « en frontal » sur un serveur dédié vous assure d’avoir une sécurité en plus pour protéger vos VM et naturellement votre serveur.

Il est très fortement recommandé d’effectuer ce genre de pratique pour s’assurer d’avoir un serveur fiable et robuste contre la majorité des attaques. Attention, ce n’est pas parce que vous mettez en place ce genre de  système que votre serveur est implacable ! Veillez toujours à regarder vos fichiers de logs de temps à autre pour être sûr du bon fonctionnement de vos machines.


I. Pré-requis

  • Un serveur dédié actif (*) ;
  • VMware ESXi 5.x / 6.x installé et prêt à l’emploi ;
  • 1 x IP FailOver + son adresse MAC virtuelle « VMware » (**) ;
  • VMware vSphère Client 5.x / 6.x (***) ;
  • De la patience et de l’envie.

* = La procédure suivante est saisie pour un serveur dédié chez Online.net, mais vous pouvez utiliser cette même procédure pour mettre en place l’architecture dans votre serveur chez OVH ou autre – quelques modifications peuvent être à prévoir en fonction des hébergeurs.

** = L’adresse IP FailOver est INDISPENSABLE. Sans elle, vous ne pourrez pas avoir internet dans votre réseau privé. Assurez-vous d’avoir votre IP FailOver active, disposant d’une adresse MAC virtuelle spécifique pour VMware ESXi (commençant par 00:50:56 chez Online.net) et attribuée dans votre serveur dédié.

*** = VMware vSphère Client est indispensable lui aussi pour que vous puissiez accéder à vos machines virtuelles. Vous pouvez télécharger le VMware vSphère Client correspondant à votre version d’ESXi directement sur votre serveur dédié, en accédant par le biais de votre navigateur web à votre adresse IP de votre serveur ESXi. Un lien « Download VMware vSphere Client » vous sera proposé pour que vous puissiez télécharger le logiciel – Poids = ~ 350 MO.

Une fois ces pré-requis remplis, vous pouvez donc étudier l’architecture à mettre en place !

NB : Pour l’exemple, les IP ci-dessous sont fictives. Vous devez les remplacer par vos IP.

  • IP Serveur ESXi = 62.62.62.62
  • IP Passerelle ESXi = 62.62.62.1
  • IP FailOver = 212.212.212.212
  • Adresse MAC (virtuelle) de l’IP FailOver = 00:50:56:11:11:11

Chez Online.net, l’adresse IP de votre serveur ESXi vous permet d’avoir officieusement une adresse IP de passerelle – Cette adresse de passerelle (Gateway) est assez simple : Il s’agit de votre IP de serveur, en remplaçant le dernier octet par « 1 » comme dans l’exemple. Je ne connais pas la méthode chez les autres hébergeurs.


II. Récapitulatif de l’architecture à mettre en place

Ce que nous souhaitons mettre en place, c’est un serveur ayant un réseau privé (qui deviendra votre réseau LAN privé pour toutes vos VM) disposant d’internet par le biais d’un routeur (pfSense dans notre exemple/procédure) sur une seule et même adresse IP FailOver.

Avantages :

  • Vous n’avez qu’une seule IP FailOver à louer ;
  • Votre réseau privé « LAN » sera invisible pour quiconque sur le net puisqu’il est « natté » ;
  • Tous les PC dans le réseau privé « LAN » disposeront d’internet par le biais de votre routeur pfSense.

Inconvénients :

  • Pas de redondance IP possible (puisqu’un seul achat a été effectué dans cette procédure)
  • La connexion internet est mutualisée pour l’ensemble des VM -> la connexion internet de toutes les VM passent par un seul goulot : pfSense.

Connectez-vous (de préférence en root) à votre ESXi à l’aide de vSphère Client, et entrez directement dans la configuration réseau de ce dernier :

  • Cliquer sur l’adresse IP de votre serveur dans l’inventaire ;
  • Sur la fenêtre de droite, cliquer sur l’onglet « Configuration » ;
  • Dans l’encadré « Matériel« , cliquer sur « Mise en réseau« .

Vous avez par défaut un premier « Commutateur standard » (un vSwitch). Ce premier vSwitch est connecté à votre interface réseau physique de votre serveur ESXi. C’est par cette carte réseau que vous allez accéder à l’internet. Notre routeur pfSense prochainement créé devra donc avoir une « patte » sur ce vSwitch, mais aussi sur un autre vSwitch que vous allez créer maintenant.

Pourquoi faut-il créer ce nouveau vSwitch ?

Cette création est nécessaire pour bien cloisonner vos réseaux d’une part, mais aussi pour permettre d’avoir un réseau privé (donc pour toutes vos VM). Vous pourrez gérer tout ce qui se passe sans aucune bride quelconque.

Ce vSwitch ne doit surtout pas être relié à une quelconque interface réseau physique de votre serveur ESXi !

Vous devrez décocher la case à côté de la carte réseau lors de la création de votre vSwitch, pour que ce dernier ne soit pas relié à une carte réseau de votre serveur.
Une fois la création terminée, vous pouvez déjà créer votre VM pfSense avec deux interfaces réseaux au minimum : Une interface sera connectée sur le vSwitch0 (celui qui dispose d’internet « en brut »), et l’autre interface sera connectée sur le second vSwitch (celui que vous venez de créer) – Il s’agit donc du vSwitch de votre réseau « LAN ».

Vous devez donc avoir ce genre d’architecture si vous avez compris / suivi la méthode :

Vous pouvez ajouter plusieurs autres vSwitchs dans ce type d’architecture. N’oubliez pas d’ajouter une « patte » du routeur pfSense sur chaque vSwitch pour que ces derniers puissent bénéficier de l’internet (si vous souhaitez avoir internet sur ces vSwitchs).
Attention, pfSense ne peut pas contenir plus de 4 cartes réseaux !


III. Configuration post-installation de pfSense

Au préalable, n’oubliez pas qu’il faut modifier l’adresse MAC de l’interface réseau qui est connectée sur le vSwitch0, celui qui a internet. Vous devez y saisir la mac virtuelle fournie par votre hébergeur.

Cliquez sur la carte réseau n°1, puis sur « Manuel » et enfin, saisissez l’adresse MAC. Validez les changements en cliquant sur le bouton « OK ».

Je passe volontairement l’installation de pfSense – Je considère que vous avez déjà préparé vos VM de tests (pfSense comme routeur, et un Windows ou GNU/Linux pour avoir un client de test de connexion internet.

1°) Configuration de l’interface « WAN »

Une fois votre pfSense installé, vous pouvez dès à présent configurer le routage « préliminaire » au bon fonctionnement du réseau.

Rappel :

  • IP Serveur ESXi = 62.62.62.62
  • IP Passerelle ESXi = 62.62.62.1
  • IP FailOver = 212.212.212.212
  • Adresse MAC (virtuelle) de l’IP FailOver = 00:50:56:11:11:11

Lorsque pfSense est installé, l’interface « WAN » (« em0« ) n’a pas d’adresse IP: logique puisque votre hébergeur n’a pas de DHCP dans le réseau vous permettant d’accéder à Internet. Nous allons donc lui (interface « em0 ») attribuer une adresse IP, mais pas n’importe laquelle. Dans la console de pfSense, entrez le chiffre « 2 » pour attribuer une adresse IP à une interface donnée – Vous aurez la liste des interfaces disponibles.

Il faut configurer l’adresse IP de l’interface WAN de votre pfSense. Saisissez donc le chiffre « 1 » (ou tout autre chiffre correspondant à votre interface WAN) pour pouvoir mettre un adressage IP fixe. L’assistant de configuration est très simple d’utilisation : Vous devez entrer l’adresse IP, le nombre de bits concernant le masque… STOP.

Dans un premier temps, une première question vous est posée pour savoir si il faut configurer cette interface en DHCP – Il faut y répondre non, en saisissant « n ».

Une configuration spécifique est nécessaire pour cette interface :

  • L’adresse IP à saisir pour cette interface virtuelle est votre adresse IP FailOver (Dans notre exemple, il s’agit donc de 212.212.212.212) ;
  • Le masque à mettre pour cette adresse IP est « /24 » (Saisissez seulement « 24 »). (*)

Nous devrions mettre en temps normal un masque de 32 bits (soit 255.255.255.255), cependant pfSense ne nous laisse pas le choix concernant le masque à sélectionner par le biais de cet assistant… Mais ce n’est pas grave. Il sera possible de modifier la configuration du masque dans l’interface web de pfSense.

Vous ne devez pas entrer d’adresse de passerelle / routeur ; Continuez l’assistant en cliquant sur la touche « Entrée ». Une fois l’interface WAN configurée, nous pouvons maintenant passer au routage.

2°) Configuration du routage « préliminaire »

Il faut passer une nouvelle fois par le shell de pfSense pour pouvoir y passer les commandes nécessaires au routage statique. Si une des manipulations ci-dessous ne sont pas bonnes, vous ne pourrez pas avoir internet dans votre LAN !

/! ÉTAPE CRUCIALE /!

Appuyez sur la touche « 8 » pour entrer dans le shell.

Note de la part de Manu (lecteur) : Vous pouvez déjà avoir une route par défaut, qui va entrer en conflit avec les prochaines routes / commandes. Vous devez donc supprimer votre route par défaut via cette commande :

Il y a maintenant deux commandes à passer — VERSION POUR ONLINE.NET :

VERSION POUR OVH :

Quelques explications :

– La première commande permet d’ajouter la route à utiliser sur l’interface « EM0 », c’est-à-dire l’interface connectée à l’Internet (et donc l’interface qui a votre IP FailOver, ainsi que la Mac Virtuelle). Il faut y saisir l’adresse IP Passerelle de votre ESXi, soit 62.62.62.1 dans notre exemple (A remplacer naturellement par votre « IP ESXi et terminer par .1 ») ;

– La seconde commande impose la route à utiliser par défaut par pfSense – Soit l’adresse IP passerelle de votre ESXi (62.62.62.1 pour notre cas / exemple).

Lorsque les commandes sont effectuées, nous avons accompli une bonne part du travail ! Le routage est effectif, il ne reste plus qu’à terminer la configuration de nos interfaces réseaux et mettre en place le NAT par le biais de l’interface web !

3°) Terminer l’installation de pfSense

Par défaut, lorsque pfSense est installé sur votre machine, vous devez terminer l’installation par le biais de son interface web pour accéder pleinement à toutes les fonctionnalités proposées par pfSense.

La seconde interface réseau de pfSense est (en principe) dans votre réseau « LAN » – Vous devez donc accéder à l’interface web de pfSense en utilisant votre machine client, et en vous connectant sur l’adresse IP donnée (dans la majorité des cas, il s’agit de « 192.168.1.1 » si vous n’avez pas encore changé cette adresse). Vous n’êtes pas obligé de mettre le préfixe « https:// » devant l’adresse IP – l’interface sera découverte automatiquement par votre navigateur.

Lorsque vous arrivez sur l’interface web pour la première fois, une erreur SSL apparaît – Poursuivez sur le site en vous connectant (login = « admin » | mot de passe = « pfsense« ). Vous allez être obligés de continuer par l’installation « Wizard »…

4°) Terminer la configuration des interfaces réseaux

Les adresses IP et le routage préliminaire est effectué, pourtant il nous reste encore une étape à effectuer pour avoir une configuration optimale concernant votre interface réseau « WAN »… En effet, vous avez mit plus haut dans pfSense l’adresse IP FailOver sur cette interface « internet ». Un masque de 24 bits y a été mit (par obligation). Ce masque n’est pas tout à fait correct. Il faut mettre un masque de 32 bits sur cette adresse IP / interface réseau pour que notre architecture puisse fonctionner de manière optimale. De plus, l’adresse IP FailOver distribuée par Online.net (ou OVH ou autre) nécessite un masque 32 bits…

En ouvrant l’interface web, la première configuration à terminer est celle de l’interface WAN. Il n’y a que très peu de choses à modifier / remplir ici :

Vous devez saisir votre adresse MAC Virtuelle (correspondant à votre IP FailOver) dans la case « Mac Address » (soit dans notre exemple 00:56:57:11:11:11).

Une fois la MAC saisie, une autre information concernant l’interface WAN doit être donnée ; il faut modifier à cet endroit précis le masque de votre IP FailOver – Remplacer 24 bits par 32 bits :

« IP Address » correspond à votre IP FailOver (212.212.212.212 dans notre exemple).

Il ne faut pas mettre de passerelle ! Laissez le champ « Gateway » vide !! La passerelle a déjà été configurée précédemment (« route add… »).

Une fois la configuration de l’interface WAN terminée, une toute petite partie concernant l’interface LAN vous sera présentée pour configurer l’adresse IP de cette dernière interface. Lorsque tous les paramètres sont entrés, vous pouvez sauvegarder le tout en cliquant sur le bouton « Reload » de l’interface web de pfSense.

Nos interfaces réseaux sont maintenant connectées et configurées, il faut donc mettre en place le NAT « derrière » l’interface WAN pour que nos machines virtuelles dans le LAN puissent bénéficier de l’Internet.

5°) Configuration du NAT dans pfSense

Dans l’interface web de pfSense, dirigez-vous dans le menu « Firewall » (tout en haut), puis sur la rubrique « NAT » :

Dans la fenêtre qui s’est ouverte, il faut se diriger sur l’onglet gris « Outbound » – C’est dans cette partie que nous allons créer la règle NAT nous permettant d’avoir un accès internet dans notre réseau LAN.

Avant d’ajouter notre règle, il y a une option primordiale à activer –> Le mode MANUAL. Ce mode vous permet d’utiliser vos propres règles en lieu et place de celles de pfSense par défaut. Vous prenez ainsi le contrôle (quasi) total de votre pare-feu concernant ces règles.

Cochez donc la case « Manual Outbound NAT rue generation », et cliquez sur le bouton « Save » pour recharger la configuration ; Une fois la tâche effectuée, nous pouvons créer notre règle NAT.

Pour ajouter une nouvelle règle, vous devez cliquer sur le bouton gris sur la droite, avec une icône de document et le signe « + » dessus. Un assistant va s’ouvrir pour que vous puissiez créer cette règle — Vous devez avoir la même configuration que l’image ci-dessous :

Quelques explications sont nécessaires pour comprendre cette configuration / création de règle :

  • L’interface sur laquelle la règle NAT va être effectuée est l’interface WAN ;
  • Nous souhaitons faire passer tous les protocoles ; « any » dans « Protocol » est donc de mise ;
  • La source est aussi de type « any » –> Tout ce qui vient d’Internet est accepté (logique, c’est ce que nous souhaitons : avoir internet sans aucune bride) ; Il n’y a pas non plus de port source de spécifié, pour la même raison que celle évoquée juste au dessus.
  • La destination est de type « any » –> Par défaut, tout ce qui entre par le WAN sera redistribué sur toutes les autres interfaces réseaux et réseaux de pfSense. C’est utile de laisser cette option telle quelle pour bénéficier de l’Internet partout dans vos différents réseaux privés LAN.
  • Il n’y a pas de « Destination port », pour ne pas avoir de brides.
  • « Translation = interface address » signifie que les paquets vont être « masqués » / « mappés » dans l’adresse IP WAN, c’est-à-dire votre IP FailOver. Il faut donc laisser cette option sur « Interface Address ».

Lorsque la règle est prête à être enregistrée, vous devez cliquer sur le bouton « save » tout en bas. Pourtant, le NAT ne sera toujours pas effectif à ce moment… Un message d’avertissement sera alors affiché :

Message assez explicite : « La configuration NAT a été changée – Vous devez appliquer les modifications pour qu’elles puissent prendre effet » — Pour se faire, cliquez sur le bouton « Apply changes« . La page va alors se recharger automatiquement et très rapidement.

Vous devez donc avoir un récapitulatif similaire à celui-ci :

Le tableau récapitulatif vous permet de bien visualiser ce qu’il se passe grâce au NAT : Tout (qu’importe l’IP et le protocole) ce qui vient de l’interface WAN auront comme destination « Tout », sur tous les protocoles sur lesquels ils sont envoyés. L’adresse « NAT » correspond à votre adresse IP du WAN, c’est-à-dire que l’IP visible sur l’Internet sera donc votre IP FailOver…

Si tout s’est bien passé, vous devriez donc avoir Internet sur votre machine cliente !


IV. Tests

L’architecture est maintenant mise en place, il est nécessaire de tester la connexion internet !!

Comme il est possible de le voir dès les premières lignes, notre machine utilise un chemin « simple », celui que nous avons mit en place dans le routeur pfSense :

  • La VM passe par sa passerelle (ici 192.168.0.1, la patte « LAN » de notre routeur pfSense) ;
  • Le routeur pfSense lui utilise la passerelle par défaut que nous lui avons ajouté dès le début de cette procédure (soit 62.62.62.1) ;
  • Ensuite, il s’agit d’un cheminement « banal » vers Google… Ce qui ne devient plus vraiment intéressant à notre niveau / situation.

Pour pousser le vice encore plus loin, un ping s’impose !

Le DNS de Google est bien « pingé », de même que le site « www.google.fr ». Nous sommes sûr maintenant d’avoir une connexion internet dans notre VM !


V. Optimisations

A partir de cet instant, vous avez internet sur votre pfSense, y compris sur le LAN de votre pfSense. Toutefois, si vous redémarrez votre serveur pfSense, vous n’aurez plus internet > les commandes effectuées dans le shell (plus haut dans l’article) ne sont pas sauvegardées. Pour régler ce problème, il faut installer un paquet (shellcmd) – Vous pouvez trouver l’article correspondant à cette installation sur le site, à cette adresse.

En voir plus

30 thoughts on “[pfSense 2.2.6] Mise en place d’un routeur pfSense en frontal sur un dédié avec ESXi”

    1. En effet Brice, « Shellcmd » est LE package à installer très rapidement sur pfSense pour le routage !
      Merci pour la précision 🙂

  1. Merci beaucoup pour ça !

    Une petite correction à apporter :
    Lorsque j’ai voulu ajouter ma passerelle par defaut (à l’etape 2). Il a fallu que je supprime d’abord l’ancienne passerelle pour qu’il accepte ma commande :
    route del default

  2. Merci a fond!!

    pour moi il a fallu faire une manip en plus:

    -> j’ai ajouté la Gateway via l’interface web car sinon ca effacait mes routes (no route to host). Apres j’ai refait les route add et ca fonctionne super 🙂

  3. Merci infiniment !! un gain de temps colossale grâce au tuto ! Réussi du premier coup sur dédié OVH !

  4. Bonjour Julien,

    Merci du tutoriel, j’ai une question au pour les ips.

    Comment mettre 5 ips avec pfsense et ensuite effectuer le routage avec les ip lan des vm esxi.

      1. Bonjour Almaud, merci pour ton retour !! 🙂
        Pas eu le temps de répondre plus tôt – Tu as apparemment trouvé la solution sur l’excellent forum mondedie.fr, et c’est vraiment chouette d’avoir partagé la solution / l’information !
        Quant a ton problème d’IP, je ne pensais pas qu’il était possible d’affecter plusieurs IP sur une seule interface réseau de pfSense – c’est bon à savoir !

    1. Bonjour Pierre,
      Si vous souhaitez effectuer cette procédure sur votre serveur dédié, il vous faut obligatoirement une IP failover, sans quoi vous ne pourrez pas router vos VM (derrière le pfSense) sur l’internet.

  5. Even though this is written in French and I had to use a translation engine, it was really useful. However, right now links to images are broken. Could you please fix them?

    Thanks.

    1. Thank you John ! 🙂
      I’ve updated the article > a mis-configuration during the restauration of this document… It’s ok now !
      Hope you’ll have internet on your dedicated server with pfSense ! 🙂

  6. Merci pour ce super tuto. J’ai juste un souci pour faire communiquer ma VM avec PFSense. Dans l’étape 4 « Test », il est noté « La VM passe par sa passerelle (ici 192.168.0.1, la patte « LAN » de notre routeur pfSense) ; » Ce n’est pas très claire pour moi, dans le tuto on voit la config du ESXi, celle du PFSense, mais pas celle de la VM, pourriez-vous afficher le « cat /etc/network/interfaces » de la VM ?
    Merci

    1. Je me suis peut être mal exprimé – je vais corrigé dans l’article :). Ce que je souhaitais faire comprendre, c’est que la passerelle des VM « derrière » pfSense va être l’IP de la carte réseau côté « LAN » du pfSense. Ainsi, si votre pfSense a pour IP « 192.168.0.1 » dans sa partie LAN, la VM doit avoir ce type de configuration :
      address 192.168.0.10 — netmask 255.255.255.0 — network 192.168.0.0 — broadcast 192.168.0.255 — gateway 192.168.0.1
      Bien entendu, c’est le même principe IP pour un Windows.
      PS : Désolé pour la lenteur de ma réponse, peu de temps à consacrer au site web en ce moment… 🙁

    1. Bonjour,
      Le portail captif est sur le contrôleur Wi-Fi directement ? Si oui, alors la passerelle côté WAN du pfSense sera l’IP du contrôleur Wi-Fi. Ainsi, la connexion des clients se fera de la sorte :
      user > (serveur DHCP) > pfSense côté (LAN) > [NAT] > pfSense côté (WAN) > Contrôleur Wi-Fi > [Portail captif] > Routeur > Internet.

      Sinon, pfSense peut aussi faire office de portail captif – je n’ai pas (encore) eu l’occasion de le tester, il doit certainement offrir les mêmes possibilités que le portail captif de votre contrôleur Wi-Fi 🙂

  7. Bonjour,

    L’article a l’air super c’est dommage que les liens des images soient cassés. Est-il possible d’actualiser l’article ?

    Merci 🙂

    1. Bonjour Anthony,
      En effet c’est tout de suite plus intéressant quand l’article est propre 🙂 C’est désormais chose faite, les images ont même été actualisées pour certaines !
      Merci pour l’info 🙂

  8. Bonjour,
    Tuto sympa, qui m’a aider, j’ajouterais simple que chez Online pas d’IPV6, aussi il faut penser a désactiver celui-ci
    SYSTEM / ADVANCED / NETWORKING et décocher IPv6

  9. la commande :  » route add x.x.x.x/32 -link -iface -emx  » ne fonctionne plus.

    Voici la nouvelle commande :  » route add -net x.x.x.x/32 -iface -emX  »

    A+ !

  10. attention je me suis fait bloqué mon ip failover par online pour cause : flood dhcpv6 de pfsense. et ce apres environ 30 minutes.

    1. Avec les sécurités en vigueur chez Online, le DHCPv6 bloque l’IP FailOver en effet – un rapide ticket auprès d’Online permet de débloquer rapidement l’IP. Pour éviter ce blocage, il ne faut pas connecter la partie WAN sur le pfSense tant que la configuration initiale n’est pas terminée – c’est un point que je vais ajouter de ce pas dans l’article !! Merci pour le rappel 😉

      1. oui le deblocage a ete très rapide. Par contre question: n’y atil pas un autre tuto pour expliquer comment configurer une ip du lan en DMZ, pour qu’une des VM puisse avoir un acces total , faut il obligatoirement ajouter une 3eme carte EM2 et un 3eme switch juste pour une seule VM ( pour tout un sous reseau je comprends bien , mais juste une ip?, sur les routeurs type box on nous laisse choisir une ip du lan (hors range dhcp) qui est en DMZ, est ce possible sur pfsense? ) merci.

    1. En effet, puisque les VM sont derrière le pfSense qui effectue du NAT de la connexion.
      Pour avoir différentes IP pour les VM en sortie, il faut utiliser les « virtual IP » de pfSense et être en possession de plusieurs adresses IP. Ainsi, via un jeu de pare-feu/proxy/configuration interne de pfSense, chaque VM pourra avoir une IP différente les unes des autres, selon le nombre d’IP (virtuelles) que le pfSense aura sur son port WAN.

Laisser un commentaire

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

Close