[pfSense] pfBlockerNG - le package indispensable pour augmenter le niveau de sécurité de votre réseau
07/01/2025
La configuration détaillée de pfBlockerNG fera l'objet d'autres articles.
Introduction et bref historique de pfBlockerNG
pfBlockerNG est une extension puissante proposée sous la forme d'un package additionnel pour pfSense. Il apporte des fonctionnalités avancées de filtrage et de contrôle : contrôle des flux DNS, blocage des domaines dangereux ou inappropriés, filtrage géographique, filtrage des flux IP, etc.
pfBlockerNG apporte des fonctionnalités de haut niveau à pfSense afin d'éléver facilement et concrètement le niveau de sécurité apporté sur un réseau local.
Initialement conçu comme une évolution de l'outil pfBlocker, pfBlockerNG ("Next Generation") a été lancé pour répondre à des besoins croissants en matière de sécurité réseau. Sa popularité repose sur les fonctionnalités supplémentaires qu'il apporte à pfSense.
Les fonctionnalités offertes par pfBlockerNG
pfBlockerNG propose un large éventail de fonctionnalités permettant de contrôler et de protéger le trafic réseau :
- Filtrage géographique : bloquer ou autoriser le trafic en fonction des pays ;
- Gestion des listes noires et blanches : importer et utiliser des listes IP et DNS provenant de sources externes ;
- Filtrage DNS avancé : bloquer des domaines malveillants ou non souhaités ;
- Maîtrise des flux DNS : permet d'intercepter et de rediriger les flux DNS vers le pare-feu afin de les sécuriser et de les filtrer suivant la politique interne à appliquer ;
- SafeSearch : permet de forcer le mode SafeSearch sur les moteurs de recherche compatibles afin de détecter et de ne pas présenter de contenus obscènes ou violents ;
- Rapports et statistiques : visualiser en temps réel le trafic bloqué et les événements liés au pare-feu ;
- Compatibilité avec d’autres outils : s’intègre avec des listes de menace tiers comme Emerging Threats, Spamhaus ou la liste proposée par Provya.
pfBlockerNG vs pfBlockerNG-devel
Depuis plusieurs années, deux packages sont proposés au téléchargement : pfBlockerNG et pfBlockerNG-devel. Le premier étant le package recommandé en production et le second étant la version de développement plus complète et offrant une granularité de paramétrages plus fine, mais au prix d'une stabilité plus perfectible car en développement soutenu.
Les différences entre les deux versions sont aujourd'hui assez minimes. Si l'on recherche la stabilité avant tout, c'est clairement le package pfBlockerNG qu'il faudra utiliser. Si l'on recherche la nouveauté au risque d'une instabilité plus forte, on pourra utiliser le package pfBlockerNG-devel.
Pour un environnement de production (entreprise, école, ...), nous recommandons le package pfBlockerNG.
Pour un environnement de test ou personnel et si l'interruption de services n'est pas critique, on pourra s'orienter vers le package pfBlockerNG-devel, si on le souhaite.
Installation de pfBlockerNG
Pour installer pfBlockerNG, se connecter sur l'interface d'administration de pfSense et se rendre dans le menu System > Package Manager :
Basculer sur l'onglet Available Packages, lancer une recherche sur pfBlockerNG et installer le package :
Une fois le package installé, se rendre dans le menu Firewall > pfBlockerNG :
Première configuration de pfBlockerNG
Lors de la première configuration de pfBlockerNG, nous sommes dirigé vers un guide d'installation (wizard) permettant de réaliser la configuration initiale.
Pour démarrer le guide d'installation, cliquer sur le bouton Next :
La première étape consiste à caractériser chaque interface en précisant s'il s'agit d'une interface exposée sur Internet et dont on va chercher à filtrer le trafic entrant ou s'il s'agit d'une interface locale dont on va chercher à filtrer le trafic sortant.
Cette catégorisation va permettre à pfBlockerNG d'appliquer des traitements automatiques sur chaque interface en fonction de la catégorie qui lui a été attribuée. Il est évidemment possible d'empêcher pfBlockerNG de générer des règles automatiques si l'on souhaite configurer manuellement ses propres règles ; et il sera possible de modifier cette catégorisation si l'on s'est trompé ou si l'on souhaite ajouter une nouvelle interface sur notre réseau.
Ainsi, pour la première liste (Select Inbound Firewall Interface), sélectionner les interfaces WAN (c'est-à-dire donnant accès à Internet).
Pour la seconde liste (Select Outbound Firewall Interface), sélectionner les interfaces locales.
Puis, cliquer sur le bouton Next pour passer à l'étape suivante :
L'étape suivante consiste à choisir une adresse IP virtuelle pour pfBlockerNG et d'autres paramètres liés à la résolution DNS.
Pour intercepter correctement les requêtes DNS, pfBlockerNG a besoin de disposer d'une adresse IP virtuelle. Cette adresse IP virtuelle sera utilisée lors de l'interception des requêtes DNS à destination des domaines bloqués (par exemple, des sites malveillants ou indésirables). Lorsqu'un domaine est identifié comme devant être bloqué, pfBlockerNG renvoie l'adresse IP virtuelle (VIP) au lieu de l'adresse réelle du domaine. Cela permet de rediriger les utilisateurs vers une page de blocage ou simplement d'interrompre la connexion.
Par défaut, pfBlockerNG propose d'utiliser l'adresse IP 10.10.10.1. Il est indispensable que cette adresse IP ne soit pas déjà utilisée sur le réseau. Si c'est le cas, il faudra choisir une autre adresse IP privée appartenant à la plage RFC1918 (comme 10.x.x.x, 192.168.x.x, ou 172.16.x.x).
Nous pouvons ensuite préciser les ports d'écoute pour les interceptions des requêtes DNS. Sauf si nous savons ce que nous faisons, il n'y a a priori pas de raison de modifier ces ports.
Enfin, nous pouvons cocher la case IPv6 DNSBL afin d'activer le filtrage des flux DNS pour les réseaux IPv6, puis cliquer sur le bouton Next :
C'est fini. Nous devrions obtenir un message final nous indiquant que la configuration initiale de pfBlocker est terminée ; il restera à cliquer sur le bouton Finish :
Après avoir cliqué sur le bouton Finish, pfBlockerNG va automatiquement se mettre à jour. La mise à jour est terminée dès qu'apparaît dans le champ Log la mention UPDATE PROCESS ENDED :
Introduction aux différents onglets de pfBlockerNG
La configuration et l'utilisation de pfBlockerNG s'organise sous la forme d'onglets. Chaque onglet correspond à des paramètres globaux ou à une fonctionnalité spécifique de pfBlockerNG.
Nous proposons ici de présenter le périmètre que couvre chaque onglet.
Onglet General
L'onglet General est le point d'entrée permettant d'activer et configurer les paramètres globaux du package.
Il permet d’activer ou de désactiver pfBlockerNG, de gérer les fréquences de mises à jour automatiques et de préciser le nombre de lignes qu'il faut conserver dans les fichiers de journalisation.
Onglet IP
L'onglet IP est dédié à la gestion des listes d'adresses IP pour le filtrage réseau.
Il permet de configurer et de gérer des listes IP provenant de sources externes ou personnalisées afin de bloquer ou autoriser des adresses spécifiques (IP à risque, IP identifiées comme étant offensives, IP hébergeant des malwares, ...)
Cet onglet permet également d'activer le filtrage géographique (GeoIP), permettant de restreindre le trafic en fonction des pays.
Enfin cet onglet permet de définir comment les règles de filtrage automatique doivent être créées et où elles doivent l'être (sur les interfaces elles-même ou sur l'interface floating).
Onglet DNSBL
L'onglet DNSBL est conçu pour gérer le filtrage DNS : configurer les listes de blocage (Blacklist) ou d’autorisation (Whitelist) ; définir des comportements spécifiques comme le mode de blocage (rediriger vers une page personnalisée, par exemple).
Onglet Update
L'onglet Update permet de lancer les mises à jour manuelles. Les mises à jour de pfBlockerNG se font automatiquement à intervalle régulier, mais il est possible de forcer une mise à jour manuelle après une modification par exemple.
Onglet Reports
L'onglet Reports fournit une vue détaillée des activités de filtrage réalisées par le package.
Il permet de consulter les journaux relatifs aux domaines et adresses IP bloqués ou autorisés, en temps réel ou sur une période définie.
Cet onglet est très pratique pour analyser l’efficacité des règles de filtrage, identifier les menaces potentielles ou comprendre le comportement réseau des utilisateurs.
Les rapports peuvent être filtrés par source, destination ou type de blocage (DNSBL ou IP).
Onglet Feeds
L'onglet Feeds est dédié à la gestion des flux de données (feeds) externes utilisés pour alimenter les listes de blocage IP et DNSBL.
Il permet de sélectionner, d'ajouter ou de modifier des sources fiables fournissant des informations sur les adresses IP malveillantes, les domaines indésirables ou les menaces connues.
Cet onglet propose une large bibliothèque de flux préconfigurés, couvrant des besoins variés comme la protection contre les botnets ou le spam.
Onglet Logs
L'onglet Logs est conçu pour surveiller et analyser les événements générés par le package.
Il offre un accès détaillé aux journaux relatifs aux activités de blocage ou d’autorisation, qu’il s’agisse de filtrage IP ou DNSBL.
Cet onglet permet de visualiser les adresses IP et domaines interceptés, les interfaces concernées, ainsi que les heures et dates des événements.
Onglet Sync
L'onglet Sync est utilisé pour synchroniser les configurations du package entre plusieurs appareils pfSense.
Il est particulièrement utile dans des environnements disposant de plusieurs firewalls, comme des installations en haute disponibilité (HA).
Cet onglet permet de définir un appareil principal (Primary) qui partage ses paramètres avec des appareils secondaires (Secondary), garantissant une cohérence des règles de filtrage IP et DNSBL sur l’ensemble du réseau.
Conclusion
pfBlockerNG est un outil très utile et efficace pour renforcer la sécurité et le contrôle du trafic réseau sous pfSense.
Ce tutoriel a couvert les bases de son installation, de sa configuraiton initiale, et une présentation globale de son interface.
Les aspects avancés, comme le filtrage géographique ou DNS, seront abordés dans de futurs articles à paraître très prochainement !
Pour aller plus loin
[pfSense] Configurer un cluster de 2 pfSense redondants (failover)
[pfSense / OPNsense] Filtrer les adresses IP à risque
Tous nos articles classés par thème
Voir un article au hasard
Vous avez aimé cet article ? Vous cherchez un pare-feu de qualité ? Alors rendez-vous sur notre boutique en ligne.
Retrouvez nos services et firewall pour pfSense & OPNsense
2 commentaires
TsyMiroro - 08/01/2025 à 06:29:15
Bjr
Il me semble que SquidGuard propose également les mêmes fonctionnalités (filtrage domaines, liste blanches/listes noires, filtrage pays, ...)
Dans le cas d'une école par exemple ; filtrage porno/warez/cracks/jeux en lignes, tranches horaires pour accès aux réseaux sociaux/outils AI, statistiques/monitoring pour l'usage de l'internet, les profs ont accès à tout
[un genre de controle parental sur-vitaminé]
Quelles sont les différences en termes de fonctionnalités? de performances? et d'efficacités?
Guillaume - 08/01/2025 à 12:20:09
Bonjour TsyMiroro ,
En effet, SquidGuard a longtemps été un outil populaire pour le filtrage de contenu, notamment dans des environnements comme les écoles. Cependant, il est important de noter que SquidGuard est aujourd'hui considéré comme obsolète pour pfSense.
D'ailleurs, le package squid (et donc squidGuard) a été retiré de pfSense pour des raisons de sécurité.
Alors, pourquoi pfBlockerNG est une meilleure option aujourd’hui ?
- plus simple à déployer (pas de proxy, de wpad, de déploiement par stratégie de groupe [GPO], ...)
- plus performant
- plus complet et plus finement configurable
- activement maintenu
- tout aussi granulaire que squidGuard
Cordialement,
Guillaume
--
Provya
Flux RSS des commentaires de cet article