Provya

Expertise pfSense

Sommaire des articles  -  Liens & Actualités  -  Firewall pour pfSense

[pfSense] Filtrage géographique avec pfBlockerNG

icon 11/03/2025 - Aucun commentaire

Dans cet article, nous allons voir comment utiliser le package pfBlockerNG pour configurer un filtrage basé sur des adresses IP géographiques sur pfSense.

Ce type de filtrage est particulièrement utile pour renforcer la sécurité de notre réseau en limitant certains trafics à destination ou en provenance de pays spécifiques.

Par exemple, si nous disposons d'un serveur OpenVPN pour nos utilisateurs nomades ou en télétravail, et que nous sommes basés en France, nous devrions très probablement vouloir limiter les tentatives de connexion VPN aux seules adresses IP françaises.

De même, si nous hébergeons un extranet destinées de nos clients et que ceux-ci se trouvent exclusivement en Europe, alors il pourrait être utile de limiter l'accès à cet extranet aux seuls pays européens.


➡️ Cet article est la suite de pfBlockerNG - le package indispensable pour augmenter le niveau de sécurité de votre réseau.



Prérequis


Avant de commencer, assurez-vous d’avoir :



Étape 1/5 - Créer un compte chez Maxmind


Par défaut pfBlockerNG utilise Maxmind afin de télécharger et maintenir à jour une liste des blocs d'adresses IP publiques classés par pays et par continent.
Si nous le souhaitons, nous pouvons uiliser une liste d'un autre fournisseur.
Dans notre tutoriel, nous utiliserons la liste proposée par Maxmind.

Pour pouvoir télécharger cette liste, il faudra d'une part avoir un compte chez Maxmind (c'est gratuit) et d'autre part, générer une clef de licence (gratuit également).

Passons maintenant à la création du compte !

L'ouverture d'un compte MaxMind est très simple et se fait via le lien suivant : https://www.maxmind.com/en/geolite2/signup.

Les champs à remplir sont très classiques. Nous les complètons, nous cochons la case précisant que nous sommes en accord avec les conditions d'utilisation du service, puis nous cliquons sur le bouton Continue pour valider.

Création compte MaxMind pour pfSense


Nous recevrons un e-mail de bienvenue contenant un lien permettant d'activer notre compte et de définir notre mot de passe.

Une fois notre compte activé, nous pourrons nous connecter sur l'interface de MaxMind !



Étape 2/5 - Générer une nouvelle clef de licence chez Maxmind


Notre compte MaxMind est maintenant créé et nous sommes connectés.
Il nous reste à générer une nouvelle clef de licence que nous devrons ensuite renseigner sur pfBlockerNG.

Sur l'interface MaxMind, se rendre dans le menu Manage License Keys, puis cliquer sur le bouton Generate new license key.

Il est possible de générer jusqu'à 100 clefs de licence gratuites avec son compte MaxMind.

Création clef de licence MaxMind pour pfSense



Nous renseignons une nouvelle description pour notre clef de licence ; c'est surtout pratique si nous prévoyons d'en avoir plusieurs. Enfin, nous cliquons sur le bouton Confirm.

Notre clef est créée !

Comme indiqué (en anglais), nous devons noter notre Account ID et notre License Key ; cette dernière ne sera plus affichée et ne pourra pas être retrouvée une fois que nous aurons quitté la page de MaxMind.

Nouvelle clef de licence MaxMind pour pfSense




Étape 3/5 - Renseigner son identifiant et sa clef de licence sur pfBlockerNG


Notre configuration côté MaxMind est terminée. Nous passons maintenant sur pfSense pour la suite de la configuration.

Nous partons du principe que nous avons déjà installé pfBlockerNG. Si ce n'est pas le cas, vous pouvez suivre notre tuto d'installation : [pfSense] pfBlockerNG - le package indispensable pour augmenter le niveau de sécurité de votre réseau.

Se rendre dans le menu Firewall > pfBlockerNG, puis cliquer sur l'onglet IP :

Firewall - pfBlockerNG - pfSense - Provya


Descendre jusqu'à la rubrique MaxMind GeoIP configuration et compléter les champs comme suit :
  • MaxMind Account ID : l'ID de compte MaxMind
  • MaxMind License Key : la clef de licence MaxMind générée à l'étape précédente
  • MaxMind Localized Language : sélectionner la langue de son choix
  • MaxMind CSV Updates : laisser cette case décochée ; sauf si vous savez ce que vous faites

Configuration GeoIP pfBlockerNG - pfSense - Provya


Cliquer sur le bouton Save IP settings pour enregistrer les modifications.

Ensuite, accéder à l'onglet Update et cliquer sur le bouton Run afin de focer pfBlockerNG à télécharger la base de données d'adresses IP fournies par MaxMind.

Forcer la mise à jour de pfBlockerNG - pfSense - Provya


Lorsque la mise à jour est terminée, vérifier la présence de la ligne UPDATE PROCESS ENDED dans le tableau des logs.

Nous allons maintenant pouvoir créer des alias basés sur ces adresses IP.



Étape 4/5 - Créer un alias de type GeoIP


pfBlockerNG est un outil très complet et flexible.
Il permet de configurer facilement des règles globales de filtrage sur le firewall.

Par exemple, depuis l'onglet IP > GeoIP nous pouvons rapidement configurer pfBlockerNG pour bloquer ou autoriser des continents entiers ou des listes de pays répartis par continent :

Gestion automatique du filtrage GeoIP - pfSense - Provya


Cependant, nous ne recommandons pas cette approche, car elle manque de souplesse.


Pourquoi créer des alias personnalisés ?

Il est préférable de créer des alias contenant uniquement les pays qui nous intéressent, puis d'utiliser ces alias dans nos règles de filtrage.

Cela permet, par exemple :
➡️ d'appliquer un filtrage spécifique pour certains services et un autre filtrage pour d'autres services ;
➡️ de limiter la connexion à un service précis sans impacter le reste du trafic.

Prenons l'exemple suivant : nous voulons autoriser l'accès à notre serveur OpenVPN uniquement depuis la France et la Belgique.
➡️ Il vaut mieux créer un alias contenant ces deux pays autorisés, plutôt que de créer une énorme liste des pays interdits.
La raison est que plus un alias contient d'adresses IP, plus la consommation de mémoire vive et la charge processeur seront importantes. Une liste restreinte et ciblée permet une meilleure efficacité et performance du firewall.


Création d’un alias GeoIP

Se rendre dans le menu IP > IPv4 et cliquer sur le bouton + Add :

Création d'un alias GeoIP - pfSense - Provya


Renseigner les champs de la manière suivante :
  • Name / Description : le nom (sans espace, ni caractères spéciaux), ainsi qu'une description pour notre liste
  • Format : choisir GeoIP
  • State : choisir ON
  • Source : renseigner le nom du pays en anglais. Le champ propose une auto-complétion pour faciliter la sélection

Création d'un alias GeoIP - pfSense - Provya


Nous choisissons FR [ France ], puis nous cliquons sur le bouton + Add et procédons de même pour la Belgique :

Création d'un alias GeoIP - pfSense - Provya


Pour le champ Action, nous choisissons Alias Native, puis enfin nous cliquons sur le bouton Save IPv4 Settings.

La configuration n'est pas appliquée immédiatement. Pour forcer son rechargement : aller dans l'onglet Update, puis cliquer sur le bouton Run.

En quelques secondes, nous devrions voir apparaître la ligne UPDATE PROCESS ENDED, confirmant le bon déroulement de l’opération.


Vérification de l’alias

Notre alias est maintenant créé ! Nous pouvons le retrouver dans le menu Firewall > Aliases :

Menu Firewall > Aliases - pfSense - Provya




Étape 5/5 - Adapter ses règles de filtrage


L'alias que nous venons de créer peut maintenant être utilisé n'importe quelle règle de filtrage sur pfSense.


Exemple : restreindre l'accès à OpenVPN pour les utilisateurs nomades

Dans notre exemple, nous voulons autoriser l'accès à OpenVPN uniquement depuis la France et la Belgique.

➡️ Nous devons modifier (ou créer) une règle de filtrage en remplaçant la source "any" (qui autorise tout le monde) par notre alias :

Filtrage géographique avec pfSense - Provya


💡 Astuce : nous pouvons créer autant d'alias que nécessaire selon nos besoins spécifiques !



🎯 Étape bonus - Quelle différence entre FR et FR_rep ?


Lors du choix d’un pays dans pfBlockerNG, nous avons généralement deux entrées disponibles : FR (France) et FR_rep (France Representative).


Quelle est la différence ?

📌 FR : contient uniquement les adresses IP physiquement situées en France.
📌 FR_rep : Contient les adresses IP enregistrées en France, même si elles sont utilisées ailleurs (ex : services cloud, VPN).


📖 Exemple concret

Nous hébergeson notre site italien provya.it avec une adresse IP italienne fournies par OVH (société française).

🖥️ Adresse IP de provya.it : 94.23.73.62.

➡️ Cette IP apparaît dans la liste Italy (puisqu'elle est physiquement en Italie).
➡️ Mais elle apparaît aussi dans la liste FR_rep (car OVH est une entreprise française).



Conclusion


pfBlockerNG permet de mettre en place rapidement un filtrage par adresses IP géographiques, offrant ainsi plusieurs avantages :
Réduire l'exposition des services sensibles sur Internet.
Améliorer la sécurité en bloquant les pays non autorisés.
Administrer facilement ses règles depuis l'interface pfSense.

Grâce à cette configuration, nous avons mis en place un filtrage géographique efficace et optimisé pour sécuriser l'accès à OpenVPN (ou à tout autre service) ! 🚀

pfBlockerNG est un outil très utile et puissant pour renforcer la sécurité et contrôler le trafic réseau sous pfSense.

Ce tutoriel complète notre premier article pfBlockerNG - le package indispensable pour augmenter le niveau de sécurité de votre réseau.

Dans un prochain article, nous explorerons comment utiliser pfBlockerNG pour mettre en place facilement et efficacement un filtrage DNS.



Pour aller plus loin


[pfSense] pfBlockerNG - le package indispensable pour augmenter le niveau de sécurité de votre réseau
[pfSense] Sécurisez l'accès distant de vos collaborateurs nomades avec OpenVPN
[pfSense] Tout comprendre aux alias
Best practices / Recommandations pour la configuration de votre firewall
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


Formation pfSense     Formation OPNsense     Liste de filtrage des IP malveillantes     Firewall pro-Large pour pfSense et OPNsense     Firewall pro-Xtend pour pfSense et OPNsense     Firewall pro-Xtrem pour pfSense et OPNsense    

store.provya.fr

icon Tags de l'article :

[pfSense] pfBlockerNG - le package indispensable pour augmenter le niveau de sécurité de votre réseau

icon 07/01/2025 - 2 commentaires

Dans cet article, nous présentons le package pfBlockerNG, ses principales fonctionnalités et comment l'installer.

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.

pfBlockerNG pour pfSense


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 :

System > Package Manager - pfSense - Provya



Basculer sur l'onglet Available Packages, lancer une recherche sur pfBlockerNG et installer le package :

Installer pfBlockerNG - pfSense - Provya



Une fois le package installé, se rendre dans le menu Firewall > pfBlockerNG :

Menu Firewall > pfBlocerNG - pfSense - Provya




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 :

pfBlockerNG - étape 1 - pfSense - Provya


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 :

pfBlockerNG - étape 2 - pfSense - Provya



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 :

pfBlockerNG - étape 3 - pfSense - Provya



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 :

pfBlockerNG - étape 4 - pfSense - Provya



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 :

pfBlockerNG - étape 5 - pfSense - Provya




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


Formation pfSense     Formation OPNsense     Liste de filtrage des IP malveillantes     Firewall pro-Large pour pfSense et OPNsense     Firewall pro-Xtend pour pfSense et OPNsense     Firewall pro-Xtrem pour pfSense et OPNsense    

store.provya.fr

icon Tags de l'article :