Après avoir décrit comment installer pfSense sur Firebox X Core/X Core-E et XTM 5, nous allons nous attaquer à la finalisation de l’installation en prenant en charge l’afficheur LCD en façade, la vitesse de ventilation et les voyants en façade.

Cet article fait appel aux fichiers suivants :

Ventilation et voyant en façade avec WGXepc

Il est possible de régler la ventilation et le voyant « Arm/Disarm » en façade à l’aide de l’utilitaire WGXepc.

Installation de WGXepc sous pfSense 2.2.1 (32 bits, Firebox X et X-e)

Rendez-vous dans Diagnostics>NanoBSD et passez le système de fichier en lecture/écriture.

Allez à présent dans Diagnostics>Command Prompt, et saisissez la commande suivante dans le champ « Execute Shell Command » :

fetch -o /conf http://files.labcellar.com/firebox-pfsense/drivers/WGXepc;chmod 755 /conf/WGXepc

Installation de WGXepc sous pfSense 2.3.2 (64 bits, Firebox XTM 5)

Allez dans Diagnostics>Command Prompt, et saisissez la commande suivante dans le champ « Execute Shell Command » :

fetch -o /conf/WGXepc http://files.labcellar.com/firebox-pfsense/drivers/WGXepc64;chmod 755 /conf/WGXepc

Verification du bon fonctionnement de WGXepc

Toujours dans l’invite « Execute Shell Command », vous pouvez saisir les commandes suivantes pour passer la LED en vert ou en rouge :

/conf/WGXepc -l green
/conf/WGXepc -l red

Automatisation du lancement de WGXepc

Il faut ensuite installer Shellcmd qui est disponible dans les paquets pfSense. Le gestionnaire de paquets est accessible dans System>Packages. Shellcmd nous permettra de configurer des commandes qui s’exécuteront lors du démarrage de notre routeur.

Pour ajouter des commandes dans Shellcmd, rendez-vous dans Services>Shellcmd. Pour ajouter une commande à la liste, cliquez sur le bouton « Add », remplissez la commande dans le champ « Command », sélectionnez comme type « shellcmd » (pour qu’elle s’exécute vers la fin du boot). Ajoutez éventuellement une description pour vous souvenir de son utilité.

Pour nos Firebox XTM5, nous utilisons la commande suivante pour passer la LED Arm/Disarm en vert à la fin du boot (utile pour savoir si la Firebox a fini de booter) :

/conf/WGXepc -l green

Et la commande suivante pour abaisser le niveau de ventilation à quelque chose de plus « tranquille » :

/conf/WGXepc -f 8

Affichage en façade avec LCDproc-dev

Pour gérer l’affiche en façade de nos Firebox qui sont dotées d’un magnifique afficheur matriciel à cristaux liquides, nous utilisons le daemon LCDproc, associé à un client adapté à pfSense. Malheureusement le driver pour les écrans de Firebox a la fâcheuse tendance à désactiver automatiquement le rétro-éclairage au bout d’un certain intervalle de temps (sans qu’on puisse désactiver cette fonctionnalité). Nous avons choisi de re-compiller un driver qui ne présente pas cette limitation (plus d’informations sont disponible sur notre dépôt GitHub).

Avec pfSense 2.2.1 (32 bits, Firebox X et X-e)

Sous pfSense 2.2.1, LCDproc-dev fait parti des dépôts par défaut. Rendez-vous dans System>Package Manager, et installez le paquet LCDproc-dev.

Rendez-vous à présent dans Service>LCDproc, et utilisez les paramètres suivants :

  • Enable LCDproc : coché
  • COM Port : Parallel port 1 (/dev/lpt0)
  • Display Size : 2 rows 20 columns
  • Driver : Watchguard Firebox with SDEC

N’oubliez pas ensuite d’activer le service LCDproc en vous rendant dans Status>Services et en cliquant sur le bouton d’activation associé au service LCDproc.

A présent vous devriez avoir un écran LCD fonctionnel, mais qui s’éteint 30 secondes après le dernier appui sur une des touches en façade. Pour y remédier, il faut utiliser notre driver spécialement compilé à cet effet. La suite des opérations s’effectue à l’aide de commandes. Vous pouvez les saisir dans Diagnostics>Command Prompt, mais je vous recommande vivement de vous connecter en SSH à votre routeur (plus pratique).

Commencez par effectuer une copie du driver existant :

mv /usr/pbi/lcdproc-i386/lib/lcdproc/sdeclcd.so /usr/pbi/lcdproc-i386/lib/lcdproc/sdeclcd.so.bak

Téléchargez le nouveau driver :

fetch http://files.labcellar.com/firebox-pfsense/drivers/sdeclcd32.so.zip -o /tmp/sdeclcd32.so.zip
unzip /tmp/sdeclcd32.so.zip -d /tmp
rm /tmp/sdeclcd32.so.zip
mv /tmp/sdeclcd.so /usr/pbi/lcdproc-i386/lib/lcdproc/sdeclcd.so

Redémarrez votre Firebox pour prendre en charge notre driver modifié.

Si à tout hasard notre driver poserait des soucis, vous pouvez toujours faire marche arrière :

rm /usr/pbi/lcdproc-i386/lib/lcdproc/sdeclcd.so
mv /usr/pbi/lcdproc-i386/lib/lcdproc/sdeclcd.so.bak /usr/pbi/lcdproc-i386/lib/lcdproc/sdeclcd.so

Avec pfSense 2.3.2 (64 bits, Firebox XTM)

Les instructions sont directement tirée de cette page, tout se passe dans Diagnostics>Command Prompt.

Il faut installer plusieurs paquets (freetype, le daemon LCDproc et son client intégré dans l’interface pfSense) :

pkg install -y print/freetype2
pkg add http://pkg.freebsd.org/freebsd:10:x86:64/release_3/All/lcdproc-0.5.7_2.txz
pkg add https://github.com/Treer/FreeBSD-ports/releases/download/0.10.4-amd64/pfSense-pkg-LCDproc-0.10.4.txz

Il faut aussi remplacer le driver sdeclcd.so par le nôtre pour pouvoir profiter du rétro-éclairage en continu :

mv /usr/local/lib/lcdproc/sdeclcd.so /usr/local/lib/lcdproc/sdeclcd.so.bak
fetch http://files.labcellar.com/firebox-pfsense/drivers/sdeclcd64.so.zip -o /tmp/sdeclcd64.so.zip
unzip /tmp/sdeclcd64.so.zip -d /tmp
rm /tmp/sdeclcd64.so.zip
mv /tmp/sdeclcd.so /usr/local/lib/lcdproc/sdeclcd.so
chmod +x /usr/local/lib/lcdproc/sdeclcd.so

Ensuite lancer la commande suivante pour déclencher les scripts de fin d’installation du paquet

/usr/local/bin/php -f /etc/rc.packages LCDproc POST-INSTALL

Finalement il faut éditer le fichier /conf/config.xml (Diagnostics>Edit File), ajouter les lignes suivantes à l’intérieur de la balise <installedpackages> :

<menu>
  <name>LCDproc</name>
  <tooltiptext>Set LCDproc settings such as display driver and COM port.</tooltiptext>
  <section>Services</section>
  <url>/packages/lcdproc/lcdproc.php</url>
</menu>
<service>
  <name>lcdproc</name>
  <rcfile>lcdproc.sh</rcfile>
  <executable>LCDd</executable>
  <description><![CDATA[LCD Driver]]></description>
</service>

Redémarrez puis allez dans Services>LCDproc, dans l’onglet Server choisissez Watchguard Firebox with SDEC en tant que Interface Traffic et cochez la case Enable LCDproc at startup puis sauvegardez.

 

Allez dans Status>Services puis démarrez le service LCDproc.

Conclusion

Après avoir installé pfSense et y avoir effectué toutes les configurations nécessaires, la Firebox se trouve être une machine très pratique à utiliser comme routeur. Quoique un peu bruyante à notre goût, sa fiabilité, ses performances, son ergonomie et son prix (à condition de l’acheter d’occasion bien sûr) la rendent quasiment inégalable pour des particuliers comme nous.