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.
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
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 :
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 ».
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 »). (*)
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 :
route del default
Il y a maintenant deux commandes à passer — VERSION POUR ONLINE.NET :
route add -net 62.62.62.1/32 -iface em0
route add default 62.62.62.1
VERSION POUR OVH :
route add -net ip_server_public.254/32 -iface em0
route add default ip_server_public.254
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.