[pfSense 2.2.6] Remonter le routage au démarrage de pfSense

Quand pfSense redémarre, le routage statique que vous avez pu mettre en place via le Shell sera supprimé automatiquement. Il est possible de « figer » ce routage et le récupérer au démarrage de pfSense via un plugin spécifique.

Shellcmd est utilisé dans ce cas pour un pfSense sur un serveur dédié chez Online.net – J’ai donc repris l’exemple et l’architecture de ce lien – ComputerZ Solutions > Mise en place d’un routeur pfSense en frontal sur un dédié Online.net avec ESXi – Toutefois, les manipulations restent les mêmes vis-à-vis de shellcmd, ce sera à vous d’optimiser / modifier vos lignes de commandes en fonction de votre installation.

I. Installation de l’utilitaire via l’interface web

Le paquet concerné s’intitule « shellcmd« . C’est grâce à cet utilitaire que vous pourrez lancer des commandes shell quelconques qui se lanceront en même temps que le démarrage de pfSense. C’est la seule et unique méthode « simple » (à la portée de tous) pour que pfSense puisse recréer le routage que vous avez effectué.

Pour ce faire, connectez-vous dans l’interface web de pfSense – dirigez-vous dans le menu « System » et cliquez sur le lien « Packages« . La liste des paquets disponibles va alors se mettre à jour ; lorsque la liste est chargée, descendez dans cette liste jusqu’à la ligne « shellcmd ». Un bouton à droite de cette ligne est présent pour que vous puissiez installer l’utilitaire.

L’installation est assez rapide. L’interface web de pfSense risque de redémarrer pour prendre en compte les modifications, pour que vous puissiez utiliser l’utilitaire. Il n’est pas nécessaire de redémarrer intégralement le serveur à cette étape.


II. Utilisation du paquet shellcmd

Pour retrouver shellcmd, dirigez-vous sur le menu « Services » et enfin, cliquez sur le lien « shellcmd« . Une fenêtre va alors s’afficher, pour vous présenter les lignes de commandes shell déjà présentes – à cette étape, vous devriez avoir un tableau vide, puisque le paquet vient tout juste d’être installé sur votre serveur.

L’idée, c’est d’ajouter les deux règles de routage utilisées lors du premier démarrage de pfSense pour avoir internet sur le serveur et le redistribuer par la suite via du NAT. Pour ajouter ces règles, il faut cliquer sur le petit bouton gris « + » à côté du tableau. Un (très simple) assistant va alors s’ouvrir

La commande que vous souhaitez lancer au démarrage de pfSense est à saisir dans la ligne « command« . Je vous conseille fortement d’ajouter des descriptions à vos commandes, ne serait-ce que pour vous rappeler de l’objectif de la commande…

Pour rappel, les commandes à saisir pour le routage sur un pfSense installé sur un dédié Online.net sont les suivantes :

route add 62.62.62.1/32 -link -iface em0
route add default 62.62.62.1

Edit au 08/07/2017 : (merci à Orionis)

Depuis les dernières mises à jour de FreeBSD et pfSense, ces commandes sont obsolètes. Il faut maintenant utiliser celles-ci :

route add -net 62.62.62.1/32 -iface em0
route add default 62.62.62.1

Vous ne pouvez ajouter qu’une seule commande à la fois. Vous devrez donc répéter la procédure autant de fois que vous avez de commandes à passer au démarrage.

Les explications complémentaires quant aux lignes ci-dessus sont dans l’article suivant : ComputerZ Solutions > Mise en place d’un routeur pfSense en frontal sur un dédié Online.net avec ESXi

Ainsi, pour mon serveur, voici ce que rend mon tableau au final :

pfSense sera en mesure de lancer ces deux commandes au démarrage, avant l’initialisation des cartes réseaux – Le routage sera alors effectif une fois les cartes réseaux montées et l’internet sera accessible sur le serveur, y compris pour le réseau qui est « natté » derrière pfSense.

Le test à effectuer quant à cette mise en place est très simple : redémarrez votre pfSense ; Une fois le démarrage terminé, vous devriez avoir internet sur votre routeur et votre réseau « natté », sans avoir eu besoin de ressaisir une nouvelle fois les commandes de routage.

Julien H

Passionné depuis toujours par l'informatique, je transforme ma passion en expertise. J'utilise quotidiennement les outils et systèmes Microsoft. Je ne délaisse pas mon côté ouvert, notamment via l'utilisation des OS Debian et Archlinux. L'infosec m'ouvre les yeux sur les enjeux actuels et futurs de l'IT.

9 commentaires

    1. Salut !
      Je n’ai pas utilisé cette option pour deux choses (en toute honnêteté) :
      – Je n’avais pas vu cette option puisque je n’ai absolument pas cherché… :p
      – J’ai lu le message en dessous : « Note: Do not enter static routes for networks assigned on any interface of this firewall. Static routes are only used for networks reachable via a different router, and not reachable via your default gateway. » — dans le cas pour Online.net, la passerelle est accessible (IP du serveur dédié), donc cette partie ne peut pas être exploitée pour la situation concernée.

      Est-ce que je m’en sorts bien avec ces arguments ? =)
      Il y avait aussi une histoire de masque de sous réseau ; de souvenir, l’interface web de pfSense ne supportait pas les masques en « /31 » ou « /32 », ce qui pose problème pour le cas d’un pfSense en frontal sur un dédié Online.net

  1. A mon avis la bonne pratique c’est de passer par System/Routing/routes, ta méthode c’est un hack clairement. Maintenant tu es quand-même pardonné lol 😉

    Tcho !

    1. Je retesterai via ce panneau System/Routing/Routes pendant mes vacances, je modifierai cet article en conséquence 🙂
      Merci pour l’information !

      1. Hello.
        As-tu pu regarder pour configurer ça via l’interface graphique ? Je débute en pfsense ! Avec le package ça marche mais je trouve aussi que c’est un workaround.

        Sinon une question qui peut te paraître bête, mais quand tu configures ton adresse ip static WAN avec ton ip failover, ça veut dire quoi /32 dans ce cas ? Qu’est-ce que ça change si tu mets autre chose ? Je pose cette question car sur une instance pfsense que j’avais installé y’a un moment déjà j’avais mis /1 et mon routage fonctionnait (en tout cas j’avais pas utilisé shellcmd, du coup mes routes avaient du sauter au reboot)

        1. Salut !
          En effet, avec pfSense 2.3, c’est devenu plus simple > un article est à cette adresse : https://computerz.solutions/pfsense-2-3-ajout-route-acces-internet/

          Quant au /32 sur l’IP FailOver, c’est une « obligation » pour pouvoir l’utiliser sur le réseau de l’hébergeur (dans mon cas, Online.net). Le /32 permet de dire qu’il n’y a qu’une seule adresse. Peut-être que d’autres hébergeurs n’auront pas besoin d’avoir un /32, là je ne peux malheureusement pas t’en dire plus !

          Bon courage !

  2. 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+ !

    1. Merci Orionis pour ce rappel ! Curieusement j’ai réussi à re-passer la commande de l’article dans un pfSense 2.3.4 ; En réinstallant un autre pfSense, j’ai utilisé ta commande avec succès. Je me suis renseigné sur cette nouvelle forme du « route add », il s’agit d’une modification côté FreeBSD, d’où le fait que pfSense soit « impacté ».
      Article modifié en conséquence 🙂

  3. Bonjour,
    Pour ma part il m’est impossible d’ajouter la gateway via cette fonction j’ai le message suviant
    « The gateway address xx.xx.xxx.254 does not lie within one of the chosen interface’s subnets. »

    Tout est fonctionnel en amont hormis le fait de devoir ajouter le routage manuellement dans ma vm pfsense.

    Si quelqu’un à une idée je suis preneur 😉

Laisser un commentaire

Votre adresse de messagerie 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.

Partagez-moi !

L'article vous a plu et vous souhaitez m'aider à vous fournir plus de contenu ? Partagez gratuitement et SANS tracking cet article, je vous en serai très reconnaissant ! :-)

Shares
Fermer
Fermer