[pfSense] Filtrage géographique avec pfBlockerNG
11/03/2025
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.
Avant de commencer, assurez-vous d’avoir :
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.

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

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.

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 :

Descendre jusqu'à la rubrique MaxMind GeoIP configuration et compléter les champs comme suit :

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.

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.
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 :

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 :

Renseigner les champs de la manière suivante :

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

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 :

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 :

💡 Astuce : nous pouvons créer autant d'alias que nécessaire selon nos besoins spécifiques !
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).
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.
[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.
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 :
- un pare-feu pfSense installé et opérationnel : nous a rédigé un tuto à ce sujet, Installer pfSense ; nous proposons également une gamme complète de pare-feux avec pfSense (ou OPNsense) pré-installé, tous garantis 3 à 5 ans : store.provya.fr
- le package pfBlockerNG installé : nous avons également rédigé un tuto complet, [pfSense] pfBlockerNG - le package indispensable pour augmenter le niveau de sécurité de votre réseau
É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.

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.

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.

É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 :

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

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.

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 :

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 :

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

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

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 :

É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 :

💡 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 & OPNsense







Aucun commentaire
Flux RSS des commentaires de cet article