pfSense
Sécurité sans compromis, connectivité sans frontières : pfsense, votre rempart numérique inébranlable !
(by ChatGPT)
- [pfSense] Installation
- [pfSense] Accéder au panel depuis le WAN
- [pfSense] Règles de pare-feu
- [pfSense] Règle NAT
- [pfSense] OpenVPN
- [pfSense] Wireguard
[pfSense] Installation
Introduction
pfSense est un système d'exploitation open source ayant pour but la mise en place de routeur/pare-feu basé sur le système d'exploitation FreeBSD.
Il s'installe aussi bien en machine virtuelle qu'en physique et requiert au minimum 2 cartes réseaux pour pouvoir faire la jonction entre les deux réseaux et contrôler les fluxs.
Installation
Commencez par télécharger l'ISO sur le site officiel en choisissant l'architecture, le type de support et le miroir.
Nous sélectionnerons AMD64, DVD Image ISO et le miroir de Francfort.
Démarrez sur le système puis suivez les étapes d'installation (j'ai pour habitude de tout laisser par défaut car cela fonctionne très bien).
Lorsque le système redémarre, il vous sera demandé si vous souhaitez configurer les VLANs, choisissez non :
Il vous sera ensuite demandé de saisir l'interface WAN.
Pour cela, déterminez quelle est l'interface entre vtnet0 et vtnet1 qui possède l'adresse MAC de la carte réseau qui doit être définie comme le WAN.
Dans mon cas, il s'agit de vtnet0 :
Le clavier est en qwerty, vous ne devez donc pas appuyer sur MAJ ou Shit pour saisir les nombres
Enfin, il vous demandera de saisir l'interface qui sera utilisé comme LAN, dans mon cas vtnet1 :
Une confirmation vous sera demandée, tapez y :
Attendez que la configuration soit mise en place puis vous devriez arriver sur l'interface de pfSense :
Assignation des interfaces
Il est possible de modifier quelle interface doit être utilisée comme WAN ou comme LAN en choisissant l'option 1.
Configuration des adresses IP
On peut choisir la configuration IP de chaque interface en choisissant l'option 2.
Il nous sera demandé si on souhaite configurer l'interface avec le DHCP ou en statique (recommandé).
Ensuite, on nous demandera si le serveur DHCP doit être activé sur l'interface (recommandé pour l'interface LAN).
[pfSense] Accéder au panel depuis le WAN
Introduction
Par défaut, le pare-feu protège le système de sorte à ne pouvoir modifier la configuration que depuis le LAN.
Dans de nombreuses configurations je ne trouve pas cela pertinent car le LAN représente souvent le réseau des utilisateurs tandis que le WAN représente le réseau de l'administrateur.
Bien que ce ne soit pas vrai tout le temps, ce type de configuration reste courante.
Manuel
Pour pouvoir accéder à l'interface web de pfSense depuis le réseau WAN, vous allez devoir commencer par désactiver le pare-feu.
Ouvrez donc un shell avec l'option 8 puis entrez la commande pfctl -d :
La touche du tiret du 6 (-) en qwerty se situe juste à droite du 0 (n'appuyez pas sur Shift ou MAJ).
Ensuite, connectez vous à l'interface web et allez dans Interface > WAN pour désactiver les deux options suivantes :
- Block private networks and loopback addresses
- Block bogon networks
Puis rendez-vous dans Firewall > Rules puis Add pour créer une nouvelle règle avec les caractéristiques suivantes :
- Interface : WAN
- Source : Any
- Destination : WAN address
- Protocol : Any
- Description : Allow all
Pour une raison inconnue, un redémarrage de pfSense est nécessaire pour que la solution fonctionne.
[pfSense] Règles de pare-feu
Introduction
Vous pouvez configurer aisément vos propres règles de pare-feu sur pfSense depuis l'interface web.
Cependant, vous devez comprendre quelques notions primordiales pour pouvoir le faire.
Manuel
Accéder à la table des règles
Tout d'abord, depuis l'interface web, rendez vous dans Firewall > Rules :
Ensuite, sélectionnez l'interface sur laquelle vous souhaitez appliquer la règle (ici DMZ300) :
Fonctionnement de la table
Pour chaque interface, vous pouvez voir apparaître les règles qui seront appliquées pour chaque paquet qui passe sur l'interface dans l'ordre du haut vers le bas.
Le paquet va donc être testé par chacune des règles :
- Dans le cas où la règle match avec le paquet, l'action définie lui sera appliquée (PASS, BLOCK ou REJECTED).
- Dans le cas où la règle ne match pas avec le paquet, le paquet va être testé par la règle en dessous et ainsi de suite.
Vous remarquerez que l'ordre des règles est capital.
Autoriser un flux
Pour l'exemple, nous allons créer une règle pour autoriser les connexions sortantes HTTP sur l'interface de la DMZ300.
Commencez par cliquer sur Add et définissez les options suivantes :
- Action : PASS
- Protocol : TCP
- Source : DMZ300 Net
- Destination : any
- Destination Port Range : From HTTP (80) to HTTP (80)
- Description : Allow HTTP
Vous pouvez appuyer sur Save puis Apply Changes pour appliquer les changements :
Bloquer un flux
Maintenant si vous souhaitez bloquer un flux, vous pouvez procéder à la même opération en modifiant simplement l'action PASS par BLOCK.
[pfSense] Règle NAT
Introduction
Le NAT pour Network Address Translation permet de rediriger le flux entrant de l'interface d'un réseau vers l'interface d'un autre réseau.
La plupart du temps cette fonctionnalité est utilisée pour rediriger un flux qui entre sur le WAN vers le LAN.
Dans le jargon, on appelle cela une redirection de port ou une ouverture de port.
Manuel
Pour créer une règle NAT, rendez vous sur l'interface web puis dans Firewall > NAT :
Ensuite, dans l'onglet Port Forward, cliquez sur Add pour créer une règle :
Admettons que vous souhaitez déployer une règle NAT pour rediriger le flux HTTPS qui entre sur l'interface WAN de votre pfSense, vers votre serveur web situé dans votre WAN qui a pour IP 192.168.1.100.
Vous devrez alors indiquer les paramètres suivants :
- Interface : WAN
- Protocol : TCP
- Destination : WAN address
- Destination port range : from HTTP (80) to HTTP (80)
- Redirect target IP : Single Host > 192.168.1.100
- Redirect target Port : HTTP (80)
- Description : Redirection to web server
Vous pouvez appuyez sur Save puis Apply Changes pour appliquer les changements.
[pfSense] OpenVPN
Introduction
Les pare-feu pfSense permettent la mise en place de VPN client-to-site ou site-to-site avec le logiciel OpenVPN notamment.
Installation client-to-site
[pfSense] Wireguard
Introduction
Wireguard supporte depuis récemment l'installation d'un VPN wiregard qui est le plus rapide et performant du marché des VPNs open source.
Installation
Tout d'abord, installez le paquet WireGuard depuis le menu System > Package Manager > Available Packages :
Cliquez sur Install puis Confirm et attendez que le message suivant apparaisse :
Ensuite, rendez vous dans l'onglet VPN > Wireguard et cliquez sur Add tunnel :
Pour la configuration du tunnel, saisissez en description le nom de votre VPN puis générez une paire de clés en cliquant sur Generate :
Dans la configuration de l'interface, saisissez l'adresse IP privée du routeur associée à l'interface du tunnel :
Cliquez sur Save et rendez vous dans l'onglet Peer puis cliquez sur Add Peer :
Sélectionnez votre Tunnel dans le menu déroulant et mettez le nom de votre client en Description :
Depuis votre client Wireguard, générez une paire de clés publique/privée :
wg genkey | tee wg-private.key
cat wg-private.key | wg pubkey | tee wg-public.key
Et renseignez la clé publique dans la configuration du peer sur pfsense :
Et n'oubliez pas de décocher Dynamic Endpoint :
Saisissez ensuite l'adresse IP de l'Endpoint (IP publique de votre routeur qui sera atteinte pour se connecter au VPN) :
Dans la configuration d'adressage, vous pouvez choisir les réseaux accessibles via le VPN.
Vous devez saisir l'IP du peer ainsi que les sous-réseaux de destination que vous souhaitez autoriser :
Cliquez sur Save puis rendez vous dans l'onglet Settings pour activer le service Wireguard et cliquez sur Save :
Cliquez sur Apply Changes :
Après, allez sur Interfaces > Assignements, sélectionnez l'interface du tunnel et cliquez sur Add :
Cliquez sur le nom de la nouvelle interface créée pour accéder à sa configuration puis activez l'interface et modifiez son nom :
En IPv4 Configuration Type sélectionnez Static IPv4 puis dans Static IPv4 Configuration renseignez l'adresse du routeur sur le réseau VPN (définie précédemment) :
Cliquez sur Add a new gateway puis renseignez les informations et cliquez sur Add :
Cliquez ensuite sur Save et Apply Changes.
On doit ensuite configurer le pare-feu pour autoriser les connexions en allant dans le menu Firewall > Rules > WG puis Add :
Faite une règle pour autoriser tout le trafic ou seulement ce que vous souhaitez si vous souhaitez affiner vos règles et cliquez sur Save et Apply Changes :
Vous devez aussi créer une règle sur votre WAN pour autoriser le flux UDP/51820 vers votre pare-feu.
La dernière étape consiste à créer le fichier de configuration du client VPN :
[Interface]
PrivateKey = <PEER_PRIV_KEY>
Address = 10.1.0.2/24
[Peer]
PublicKey = <SRV_PUB_KEY>
AllowedIPs = 10.1.0.0/24, 192.168.5.0/24
Endpoint = <SRV_PUBLIC_IP>:51820