Recherche de site Web

Installer et configurer pfBlockerNg pour la liste noire DNS dans le pare-feu pfSense


Dans un article précédent, l'installation d'une puissante solution de pare-feu basée sur FreeBSD connue sous le nom de pfSense a été abordée. pfSense, comme mentionné dans l'article précédent, est une solution de pare-feu très puissante et flexible qui peut utiliser un ancien ordinateur qui ne fait peut-être pas grand-chose.

Cet article va parler d'un merveilleux package complémentaire pour pfsense appelé pfBlockerNG.

pfBlockerNG est un package qui peut être installé dans pfSense pour fournir à l'administrateur du pare-feu la possibilité d'étendre les capacités du pare-feu au-delà du pare-feu traditionnel L2/L3/L4 avec état.

À mesure que les capacités des attaquants et des cybercriminels continuent de progresser, les défenses mises en place pour contrecarrer leurs efforts doivent également évoluer. Comme pour tout dans le monde informatique, il n’existe pas de solution unique pour tous les produits.

pfBlockerNG fournit à pfSense la possibilité pour le pare-feu de prendre des décisions d'autorisation/refusement basées sur des éléments tels que la géolocalisation d'une adresse IP, le nom de domaine d'une ressource ou les évaluations Alexa de sites Web particuliers.

La possibilité de restreindre des éléments tels que les noms de domaine est très avantageuse car elle permet aux administrateurs de contrecarrer les tentatives de machines internes tentant de se connecter à des domaines défectueux connus (en d'autres termes, des domaines qui peuvent être connus pour contenir des logiciels malveillants, du contenu illégal ou autre). données insidieuses).

Ce guide vous expliquera la configuration d'un périphérique de pare-feu pfSense pour utiliser le package pfBlockerNG ainsi que quelques exemples de base de listes de blocage de domaines qui peuvent être ajoutées/configurées dans l'outil pfBlockerNG.

Exigences

Cet article fera quelques hypothèses et s'appuiera sur l'article d'installation précédent sur pfSense. Les hypothèses seront les suivantes :

  • pfSense est déjà installé et n’a actuellement aucune règle configurée (table rase).
  • Le pare-feu ne dispose que d'un port WAN et d'un port LAN (2 ports).
  • Le schéma IP utilisé côté LAN est 192.168.0.0/24.

Il convient de noter que pfBlockerNG peut être configuré sur un pare-feu pfSense déjà exécuté/configuré. La raison de ces hypothèses ici est simplement pour le bien de la raison et la plupart des tâches qui seront accomplies peuvent toujours être effectuées sur une boîte pfSense non vierge.

Diagramme de laboratoire

L'image ci-dessous est le diagramme de laboratoire de l'environnement pfSense qui sera utilisé dans cet article.

Installez pfBlockerNG pour pfSense

Le laboratoire étant prêt, il est temps de commencer ! La première étape consiste à se connecter à l'interface Web du pare-feu pfSense. Encore une fois, cet environnement de laboratoire utilise le réseau 192.168.0.0/24 avec le pare-feu agissant comme passerelle avec l'adresse 192.168.0.1. L'utilisation d'un navigateur Web et la navigation vers « https://192.168.0.1 » afficheront la page de connexion pfSense.

Certains navigateurs peuvent se plaindre du certificat SSL, c'est normal puisque le certificat est auto-signé par le pare-feu pfSense. Vous pouvez accepter le message d'avertissement en toute sécurité et si vous le souhaitez, un certificat valide signé par une autorité de certification légitime peut être installé, mais cela dépasse le cadre de cet article.

Après avoir cliqué avec succès sur « Avancé », puis sur « Ajouter une exception… », cliquez pour confirmer l'exception de sécurité. La page de connexion pfSense s'affichera alors et permettra à l'administrateur de se connecter au dispositif de pare-feu.

Une fois connecté à la page principale de pfSense, cliquez sur le menu déroulant « Système », puis sélectionnez « Gestionnaire de packages ».

En cliquant sur ce lien, vous passerez à la fenêtre du gestionnaire de packages. La première page à charger contiendra tous les packages actuellement installés et sera vierge (encore une fois, ce guide suppose une installation propre de pfSense). Cliquez sur le texte « Packages disponibles » pour obtenir une liste des packages installables pour pfSense.

Une fois la page « Packages disponibles » chargée, tapez « pfblocker » dans la zone « Terme de recherche » et cliquez sur « Rechercher'. Le premier élément renvoyé doit être pfBlockerNG. Localisez le bouton « Installer » à droite de la description de pfBlockerNG et cliquez sur le « + » pour installer le package.

La page se rechargera et demandera à l'administrateur de confirmer l'installation en cliquant sur « Confirmer ».

Une fois confirmé, pfSense commencera à installer pfBlockerNG. Ne quittez pas la page du programme d'installation ! Attendez que la page affiche une installation réussie.

Une fois l'installation terminée, la configuration de pfBlockerNG peut commencer. La première tâche à accomplir est cependant quelques explications sur ce qui va se passer une fois que pfBlockerNG sera correctement configuré.

Une fois pfBlockerNG configuré, les requêtes DNS pour les sites Web doivent être interceptées par le pare-feu pfSense exécutant le logiciel pfBlockerNG. pfBlockerNG aura alors des listes mises à jour des mauvais domaines connus qui sont mappés à une mauvaise adresse IP.

Le pare-feu pfSense doit intercepter les requêtes DNS afin de pouvoir filtrer les domaines défectueux et utilisera un résolveur DNS local appelé UnBound. Cela signifie que les clients sur l'interface LAN doivent utiliser le pare-feu pfSense comme résolveur DNS.

Si le client demande un domaine qui figure sur les listes de blocage de pfBlockerNG, alors pfBlockerNG renverra une fausse adresse IP pour le domaine. Commençons le processus !

Configuration de pfBlockerNG pour pfSense

La première étape consiste à activer le résolveur UnBound DNS sur le pare-feu pfSense. Pour ce faire, cliquez sur le menu déroulant « Services », puis sélectionnez « DNS Resolver ».

Au rechargement de la page, les paramètres généraux du résolveur DNS seront configurables. Cette première option qui doit être configurée est la case à cocher « Activer le résolveur DNS ».

Les paramètres suivants consistent à définir le port d'écoute DNS (normalement le port 53), à définir les interfaces réseau sur lesquelles le résolveur DNS doit écouter (dans cette configuration, il doit s'agir du port LAN et de Localhost), puis à définir le port de sortie (devrait être WAN dans cette configuration).

Une fois les sélections effectuées, assurez-vous de cliquer sur « Enregistrer » en bas de la page, puis sur le bouton « Appliquer les modifications » qui apparaîtra en haut de la page. la page.

L'étape suivante est la première étape de configuration de pfBlockerNG spécifiquement. Accédez à la page de configuration de pfBlockerNG dans le menu « Pare-feu », puis cliquez sur « pfBlockerNG ».

Une fois pfBlockerNG chargé, cliquez d'abord sur l'onglet « DNSBL » pour commencer à configurer les listes DNS avant d'activer pfBlockerNG.

Lorsque la page « DNSBL » se chargera, il y aura un nouvel ensemble de menus sous les menus pfBlockerNG (surlignés en vert ci-dessous). Le premier élément à résoudre est la case à cocher « Activer DNSBL » (surlignée en vert ci-dessous).

Cette case à cocher nécessitera que le résolveur UnBound DNS soit utilisé sur la case pfSense afin d'inspecter les requêtes DNS des clients LAN. Ne vous inquiétez pas, UnBound a été configuré plus tôt mais cette case devra être cochée ! L'autre élément qui doit être renseigné sur cet écran est « IP virtuelle DNSBL ».

Cette adresse IP doit être dans la plage du réseau privé et non une adresse IP valide sur le réseau dans lequel pfSense est utilisé. Par exemple, un réseau LAN sur 192.168.0.0/24 pourrait utiliser une adresse IP 10.0.0.1 car il s'agit d'une adresse IP privée et ne fait pas partie du réseau LAN.

Cette adresse IP sera utilisée pour collecter des statistiques ainsi que pour surveiller les domaines rejetés par pfBlockerNG.

En faisant défiler la page, quelques paramètres supplémentaires méritent d'être mentionnés. La première est l'Interface d'écoute DNSBL'. Pour cette configuration, et pour la plupart des configurations, ce paramètre doit être défini sur « LAN ».

L'autre paramètre est « Liste des actions » sous « Paramètres du pare-feu IP DNSBL ». Ce paramètre détermine ce qui doit se passer lorsqu'un flux DNSBL fournit des adresses IP.

Les règles pfBlockerNG peuvent être configurées pour effectuer n'importe quel nombre d'actions, mais « Deny Both » sera très probablement l'option souhaitée. Cela empêchera les connexions entrantes et sortantes vers l’adresse IP/le domaine sur le flux DNSBL.

Une fois les éléments sélectionnés, faites défiler vers le bas de la page et cliquez sur le bouton « Enregistrer ». Une fois la page rechargée, il est temps de configurer les listes de blocage DNS à utiliser.

pfBlockerNG fournit à l'administrateur deux options qui peuvent être configurées indépendamment ou ensemble selon les préférences de l'administrateur. Les deux options sont des flux manuels provenant d’autres pages Web ou d’EasyLists.

Pour en savoir plus sur les différentes EasyLists, veuillez visiter la page d'accueil du projet : https://easylist.to/

Configurer pfBlockerNG EasyList

Discutons et configurons d'abord les EasyLists. La plupart des utilisateurs à domicile trouveront ces listes suffisantes et les moins lourdes sur le plan administratif.

Les deux EasyLists disponibles dans pfBlockerNG sont « EasyList w/o Element Hiding » et « EasyPrivacy ». Pour utiliser l'une de ces listes, cliquez d'abord sur la « DNSBL EasyList » en haut de la page.

Une fois la page rechargée, la section de configuration EasyList sera mise à disposition. Les paramètres suivants devront être configurés :

  • Nom du groupe DNS – Choix de l'utilisateur mais sans caractères spéciaux
  • Description – Choix de l'utilisateur, caractères spéciaux autorisés
  • État des flux EasyList : indique si la liste configurée est utilisée
  • EasyList Feed – Quelle liste utiliser (EasyList ou EasyPrivacy), les deux peuvent être ajoutées
  • En-tête/Étiquette – Choix de l'utilisateur mais pas de caractères spéciaux

La section suivante est utilisée pour déterminer quelles parties des listes seront bloquées. Encore une fois, ce sont toutes les préférences de l'utilisateur et plusieurs peuvent être sélectionnées si vous le souhaitez. Les paramètres importants dans « DNSBL – Paramètres EasyList » sont les suivants :

  • Catégories – Les préférences de l'utilisateur et plusieurs peuvent être sélectionnées
  • List Action – Doit être défini sur « Non lié » afin d'inspecter les requêtes DNS.
  • Fréquence de mise à jour – À quelle fréquence pfSense mettra à jour la liste des sites malveillants

Lorsque les paramètres EasyList sont configurés selon les préférences de l'utilisateur, assurez-vous de faire défiler vers le bas de la page et de cliquer sur le bouton « Enregistrer ». Une fois la page rechargée, faites défiler vers le haut de la page et cliquez sur l'onglet « Mettre à jour ».

Une fois sur l'onglet de mise à jour, cochez la case d'option « Recharger », puis cochez la case d'option « Tous ». Cela s'effectuera via une série de téléchargements Web pour obtenir les listes de blocage sélectionnées plus tôt sur la page de configuration EasyList.

Cela doit être fait manuellement, sinon les listes ne seront pas téléchargées avant la tâche périodique planifiée. Chaque fois que des modifications sont apportées (listes ajoutées ou supprimées), assurez-vous d'exécuter cette étape.

Regardez la fenêtre de journal ci-dessous pour toute erreur. Si tout se passe comme prévu, les machines clientes du côté LAN du pare-feu devraient pouvoir interroger le pare-feu pfSense pour détecter les sites malveillants connus et recevoir de mauvaises adresses IP en retour. Encore une fois, les machines clientes doivent être configurées pour utiliser la boîte pfsense comme résolveur DNS !

Notez dans le nslookup ci-dessus que l'URL renvoie la fausse adresse IP configurée précédemment dans les configurations pfBlockerNG. C’est le résultat souhaité. Cela aurait pour conséquence que toute requête vers l'URL « 100pour.com » serait dirigée vers la fausse adresse IP de 10.0.0.1.

Configurer les flux DNSBL pour pfSense

Contrairement aux AdBlock EasyLists, il est également possible d'utiliser d'autres listes noires DNS dans pfBlockerNG. Il existe des centaines de listes utilisées pour suivre les commandes et le contrôle des logiciels malveillants, les logiciels espions, les logiciels publicitaires, les nœuds Tor et toutes sortes d'autres listes utiles.

Ces listes peuvent souvent être extraites dans pfBlockerNG et également utilisées comme autres listes noires DNS. Il existe de nombreuses ressources qui fournissent des listes utiles :

  • https://forum.pfsense.org/index.php?topic=114499.0
  • https://forum.pfsense.org/index.php?topic=102470.0
  • https://forum.pfsense.org/index.php?topic=86212.0

Les liens ci-dessus fournissent des fils de discussion sur le forum de pfSense où les membres ont publié une grande collection de listes qu'ils utilisent. Certaines des listes préférées de l’auteur sont les suivantes :

  • http://adaway.org/hosts.txt
  • http://www.malwaredomainlist.com/hostslist/hosts.txt
  • http://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&mimetype=plaintext
  • https://zeustracker.abuse.ch/blocklist.php?download=domainblocklist
  • https://gist.githubusercontent.com/BBcan177/4a8bf37c131be4803cb2/raw

Encore une fois, il existe des tonnes d'autres listes et l'auteur encourage fortement les individus à rechercher davantage/d'autres listes. Continuons cependant avec les tâches de configuration.

La première étape consiste à accéder à nouveau au menu de configuration de pfBlockerNG via 'Pare-feu' -> 'pfBlockerNG' -> 'DSNBL'.

Une fois à nouveau sur la page de configuration DNSBL, cliquez sur le texte « Flux DNSBL », puis cliquez sur le bouton « Ajouter » une fois la page actualisée.

Le bouton Ajouter permettra à l’administrateur d’ajouter plus de listes de mauvaises adresses IP ou de noms DNS au logiciel pfBlockerNG (les deux éléments déjà dans la liste proviennent des tests de l’auteur). Le bouton Ajouter amène l'administrateur à une page où les listes DNSBL peuvent être ajoutées au pare-feu.

Les paramètres importants dans cette sortie sont les suivants :

  • Nom du groupe DNS – Utilisateur choisi
  • Description – Utile pour garder les groupes organisés
  • Paramètres DNSBL – Ce sont les listes réelles
    • État – Si cette source est utilisée ou non et comment elle est obtenue
    • Source – Le lien/source de la liste noire DNS
    • En-tête/Étiquette – Choix de l'utilisateur ; pas de caractères spéciaux
  • Action de liste – Défini sur Non lié
  • Fréquence de mise à jour – À quelle fréquence la liste doit être mise à jour

Une fois ces paramètres définis, cliquez sur le bouton enregistrer en bas de la page. Comme pour toute modification apportée à pfBlockerNG, les modifications prendront effet au prochain intervalle cron planifié ou l'administrateur peut forcer manuellement un rechargement en accédant à l'onglet « Mettre à jour », puis en cliquant sur « Recharger<. », puis cliquez sur le bouton radio « Tous ». Une fois ceux-ci sélectionnés, cliquez sur le bouton « Exécuter ».

Regardez la fenêtre de journal ci-dessous pour toute erreur. Si tout s'est déroulé comme prévu, testez que les listes fonctionnent en essayant simplement d'effectuer une recherche ns depuis un client côté réseau local vers l'un des domaines répertoriés dans l'un des fichiers texte utilisés dans la configuration DNSBL.

Comme le montre le résultat ci-dessus, le périphérique pfSense renvoie l'adresse IP virtuelle qui a été configurée dans pfBlockerNG comme mauvaise adresse IP pour les domaines de la liste noire.

À ce stade, l'administrateur peut continuer à régler les listes en ajoutant d'autres listes ou en créant des listes de domaines/IP personnalisées. pfBlockerNG continuera à rediriger ces domaines restreints vers une fausse adresse IP.

Merci d'avoir lu cet article sur pfBlockerNG. Veuillez montrer votre appréciation ou votre soutien pour le logiciel pfSense ainsi que pour pfBlockerNG en contribuant de toutes les manières possibles au développement continu de ces deux merveilleux produits. Comme toujours, veuillez commenter ci-dessous pour toute suggestion ou question !