pfSense : mise en place d’un pare-feu 

Présentation

Dans ce tutoriel, je vais vous expliquer comment mettre un place pfSense qui est une distribution qui permet de mettre en place un pare-feu périmétrique.

pfSense est fork basé sur de m0n0wall basé sur FreeBSD.

pfSense intègre les fonctionnalités standard des firewall opensource :

  • Filtrage flux entrant / sortant
  • Proxy basé sur Squid
  • Routage
  • Serveur VPN
  • Serveur DHCP
  • Serveur DNS

Il est possible d’ajouter des fonctionnalités à pfSense avec l’ajout de plugin (Reverse proxy, Snort …)

Prérequis

Pour installer pfSense, vous avez besoin d’un ordinateur (physique ou virtuel) avec deux cartes réseaux minimum :

  • LAN
  • WAN

Dans ce tutoriel, mon interface WAN sera en DHCP

Concernant les ressources CPU / RAM et disques, cela va dépendre principalement du nombre de périphériques et de fonctionnalités que vous allez activer.

Pour l’espace disque prévoir à minima 20Go.

Ici, je vais utilisé un ordinateur virtuel sous VMWare.

Commencer par télécharger l’ISO pfSense : https://www.pfsense.org/download/

Installation de pfSense

Démarrer sur l’ISO.

Accepter le contrat de licence.

Sélectionner Install.

Sélectionner le type de partition, ici ça sera Auto (ZFS).

Choisir l’option Install.

Ayant un seul disque, je vais choisir stripe.

Sélectionner le disque (touche espace) et valider.

Valider l’écriture des informations sur le disque.

Patienter pendant l’installation …

Une fois l’installation terminée, il faut redémarrer.

Retirer l’ISO présenté à l’ordinateur et patienter pendant le redémarrage …

Le redémarrage terminé, on arrive sur un menu qui nous permet de configurer le firewall pfSense.

Configuration post-installation de pfSense

pfSense est installé, mais les interfaces réseaux ne sont pas configurées correctement, je vais vous montrer comment faire cette configuration de la console.

Changer l’affectation des interfaces réseaux

Entrer l’option 1 qui correspond à Assign interfaces.

Indiquer si vous souhaitez configurer des VLANs, pour moi ici c’est non.

Indiquer le nom de l’interface WAN pour moi em1.

Indiquer l’interface LAN (em0)

Confirmer l’application de la configuration des interfaces.

L’assignement des interfaces est effectives.

Configurer l’adresse IP d’une interface

Par défaut pfSense assigne l’adresse 192.168.1.1 à l’interface Wan, dans mon cas, je ne peux accéder à l’interface web du firewall, car c’est l’adresse de mon réseau local. Pour résoudre ce problème, je vais configurer l’adresse IP de l’interface LAN de pfSense.

Entrer l’option 2 du menu (Set interface(s) IP address.

Entrer le numéro de l’interface que l’on souhaite configurer.

L’assistant vous demande si vous souhaitez que l’adresse soit attribuer par DHCP pour ma part non, on va être en statique.

On aurait pu aussi configurer l’interface en DHCP pour avoir une adresse IP dans le LAN si un serveur DHCP est présent et ensuite faire la configuration définitive par l’interface web.

Indiquer l’adresse IPv4, son masque au format CIDR et appuyer sur la touche Enter pour la gateway.

Ignorer la configuration IPv6 de l’interface.

Ensuite de configurer par de serveur DHCP et répondre oui (y) à la question Do you want to revert to HTTP as the webConfiguration protocol.

Une fois la configuration appliquée, appuyer sur Enter.

La configuration est terminée.

Première connexion à l’interface Web de pfSense

Maintenant que les interfaces sont configurés, nous allons pouvoir accéder à l’interface Web du pare-feu.

Comme beaucoup de firewall, lors de la première connexion, un assistant va se lancer pour effectuer la configuration de base de pfSense.

Depuis un navigateur Web, entrer l’adresse IP LAN du firewall (http://lan-ip).

pfSense login form

Les informations d’identification par défaut sont :

  • Identifiant : admin
  • Mot de passe : pfsense

Lors de la première connexion, on arrive sur un assistant de configuration, à la première étape, cliquer sur Next 1.

La seconde étape présenter le support Netgate, cliquer sur Next 1.

Configurer le nom du firewall 1, le domaine 2, indiquer les serveurs DNS 3 en cochant la case Override DNS 4 et cliquer sur Next 5.

Configurer le fuseau horaire 1 et cliquer sur le bouton Next 2.

Vérifier la configuration de l’interface WAN puis cliquer le bouton Next 1 en bas de page.

Vérifier la configuration de l’interface LAN et cliquer sur Next 1.

pfSense force, le changement du mot de passe par défaut, entrer un nouveau mot de passe 1 pour le compte admin et cliquer sur el bouton Next 2.

La configuration est terminée, cliquer sur Reload 1 pour appliquer les changements.

Cliquer sur Finish 1 pour quitter l’assistant de configuration.

Pour finir lors de la redirection, deux fenêtres vont s’afficher, sur la première cliquer sur Accept pour valider la licence et ensuite cliquer sur Close.

On arrive sur le tableau de bord du firewall.

Nous allons maintenant passer à la configuration du firewall.

Configuration de pfSense

Dans cette partie, nous allons différents de configuration pour la mise ne route du firewall.

Les règles par défaut

Par défaut, des règles ont été créées, elle bloque tout le trafic venant d’Internet (WAN) et autorise tout le trafic LAN vers Internet (WAN).

Pour accéder au règle, depuis le menu cliquer sur Firewall 1 puis sur Rules 2.

En cliquant sur WAN 1, les règle de l’interface WAN s’affiche :

Il n’y a pas de règle explicite pour le blocage, car par défaut, ce qui n’est pas explicitement autorisé est bloqué.

En cliquant sur LAN 1, vous accéder au règle de l’interface.

Configuration d’un serveur DHCP sur l’interface LAN

Cette partie est facultative, si vous avez déjà un serveur DHCP sur votre réseau. Dans ce cas là, vérifier que la passerelle distribué est l’adresse IP de l’interface LAN du firewall.

Pour configurer le serveur DHCP, aller sur System 1 / Advanced 2.

Cliquer ensuite sur Networking 1.

Lors de la rédaction de ce tutoriel, pfSense propose 2 serveurs DHCP (Kea DHCP et ISC DHCP). Sélectionner Kea DHCP 1 et aller en bas de la page et cliquer sur Save 2.

Depuis le menu, aller sur Services 1 puis sur DHCP Server 2.

Cocher la case Enable DHCP server on LAN interface 1.

Ajuster le pool d’adresse 1 si nécessaire, configurer le ou les serveurs DNS 2, en adresse de Gateway 3 entrer l’adresse LAN du firewall et en bas de la page cliquer sur Save 4.

Cliquer sur le bouton Apply Changes 1.

Pour tester le bon fonctionnement, j’ai branché un ordinateur dans la partie LAN et j’ai bien obtenu une adresse comme on peut le voir dans les baux DHCP.

Pour accéder aux baux DHCP, depuis le menu Status cliquer sur DHCP Leases.

Configuration DNS

Cette étape est à faire si vous utilisez le firewall comme serveur DNS.

Cliquer sur System 1 puis sur General Setup 2.

Dans la section DNS Server Setting, sélectionner Use remote DNS Servers, ignore local DNS puis cliquer sur Save en bas de la page.

Cette option permet de transférer les requêtes DNS directement aux serveurs configurés.

Tester le firewall en allant sur Internet

Maintenant que tout est prêt, nous allons pouvoir tester le passage à travers le firewall.

Depuis un ordinateur client, essayer d’aller sur Internet.

Pour ma part tout fonctionne j’arrive à aller sur Internet

En parallèle sur le Tableau de bord du firewall, on peut voir les graphique du trafic.

Par défaut les graphe ne sont pas afficher, il faut personnaliser le tableau de bord, en cliquant sur le + dans la partie en haut ai niveau du fils d’ariane.

Configuration du proxy Squid en mode transparent sur pfSense

Dans cette partie, on va voir comment configurer Squid sur pfSense en mode transparent pour le trafic HTTP / HTTPS.

Prérequis pour l’utilisation du proxy

Afin de pouvoir utiliser correctement le proxy SQUID notamment pour la partie SSL, on doit utiliser pfSense comme serveur DNS.

Là plusieurs solutions s’offre à vous :

  • Configurer comme serveur DNS pfSense sur les ordinateurs.
  • Si vous utilisez des serveurs DNS Windows, configurer comme redirecteur DNS le firewall pfSense.

Création de l’autorité de certification

Avant de configurer le proxy, nous allons créer une autorité de certification qui va servir pour la partie HTTPS.

Aller sur System 1 / Certificates 2.

Cliquer sur le bouton Add 1.

Remplir les différents pour la création et cliquer sur Save.

L’autorité de certification est créée.

Installation de Squid sur pfSense

Par défaut Squid n’est pas installé sur pfSense,

Aller sur System 1 et cliquer sur Package Manager 2.

Cliquer sur Available Packages 1 pour accéder aux Packages disponibles. Recherche squid 2 et cliquer sur le bouton Install 3 qui correspond au package squid.

Cliquer sur le bouton Confirm 1.

Patienter pendant l’installation …

Squid est installé.

Si on va sur Installed Packages, on peut voir squid.

Configuration de Squid

L’accès à la configuration se fait par le menu en cliquant sur Services puis sur Squid Proxy Server.

Configuration du cache

Pour fonctionner sur pfSense, il est nécessaire de configurer la partie Local cache 1.

Dans la partie Squid Hard Disk Cache setting, configurer la taille du cache sur le disque (Hard Disk Cache Size) 1 et l’emplacement du cache (Hard Disk Cache Location) 2 avec la valeur /var/squid/cache.

Aller ensuite en bas de la page et cliquer sur Save 1.

Configuration du Proxy HTTP/HTTPS en mode transparent

Dans la partie Squid General Setting, cocher la case Enable Squid Proxy 1 et la case Resolve DNS IPv4 First 2.

Dans la section Transparent Proxy Setting, cocher la case Transparent HTTP Proxy 1.

Dans la partie SSL Man In The Middle Filtering, cocher la case HTTPS/SSL Interception 1, SSL/MITM Mode choisir Splice Whitelist, Bump Otherwise 2, dans la champ CA 3 choisir l’autorité de certification précédemment créée.

En fonction du mode choisie, le trafic SSL est juste analysé (SPLICE ALL) et ne nécessite pas d’installer le certificat de la CA et le mode BUMP, va déchiffrer le trafic SSL et permettre une analyse plus poussée, comme le passage par l’antivirus.

Aller en bas de la page et cliquer sur Save.

Le proxy SQUID est configuré.

Test du proxy SQUID

Il ne reste plus qu’a tester notre proxy.

Avertissement

Le déchiffrage HTTPS est assez hasardeux, il ne fonctionne pas sur les sites Web utilisant un CDN, car le système n’arrive pas à faire le lien avec une IP / une URL.

Si vous avez la bonne configuration a appliqué, je suis preneur.

Sur un ordinateur, lancer un navigateur Internet et aller sur facebook (https://www.facebook.com), normalement vous devriez avoir une erreur SSL.

Si on regarde le certificat SSL, on peut voir qu’il émane de l’autorité du firewall, le trafic a donc bien été déchiffré.

Pour ne plus avoir l’erreur, il faut installer le certificat du firewall sur les ordinateurs dans le magasin de l’ordinateur : Autorités de certification de confiance.

Commencer par exporter le certificat, aller sur System / Certificate.

Depuis la liste des certificats, cliquer sur l’icone d’export de l’autorité de certification utilisé par Squid.

Installer le certificat sur l’ordinateur, pour un déploiement par GPO, vous pouvez suivre ce tutoriel : GPO : déployer un certificat

Fermer le navigateur et l’ouvrir de nouveau et aller sur Facebook, la page s’affiche normalement et on peut voir que le certificat a été émis par Squid.

Dans le même temps, on peut suivre le trafic en temps réél de Squid, dans la partie Real Time de la configuration.


Ce premier tutoriel dédié à pfSense s’arrête ici, vous savez maintenant comme déployer une firewall et mettre en place un proxy transparent pour contrôler le trafic sortant.

D’autres tutoriels sont en préparation où nous verrons :

  • Interdire l’accès à certains site Web avec Squid et SquidGuard
  • Publier un serveur sur Internet
  • Mettre en place des mécanismes de sécurité



Laisser un commentaire