Nous retrouvons dans pfSense la plupart des fonctionnalités inclus dans des firewalls commerciaux et quelques autres complémentaires. L'ensemble des fonctionnalités présentés ci-dessous sont directement disponibles à partir de l’interface web, sans qu'il soit nécessaire de taper une seule ligne de commande sous Unix.
En plus d'une description précise des fonctionnalités, cette pages vous présente aussi les limites connues de pfSense. Partant de notre expérience et de celle des milliers d'utilisateurs, nous avons bien compris ce qu'il est possible et ce qu’il est impossible de réaliser avec pfSense. Là ou nous sommes particulièrement différent des autres c’est que nous communiquons aussi sur ces limitations.
Nous invitons les utilisateurs à contribuer à notre projet afin d’éliminer ces limitations et parfaire ce système. Les nombreuses limitations que nous indiquons ici sont communes aux firewalls qu’ils soient OpenSource ou commerciaux. Les limitations de la version 1.2 qui seront corrigées dans la prochaine version (2.0) seront annotées.
Firewall
- Filtrage par source et destination au niveau des adresses IP, protocole IP, port source et destination des protocoles TCP et UDP.
- Capacité à limiter le nombre de connexion règle par règle.
- pfSense utilise p0f, un utilitaire qui permet de filtrer de façon passive en fonction du type de Système d’Exploitation qui initie la connexion. Vous souhaitez autoriser les systèmes FreeBSD et Linux à accéder à l’Internet, mais bloquer les système Windows (ou l’inverse) ? pfSense peut réaliser cela en filtrant de façon passive les Systèmes d’Exploitation utilisés.
- Capacité à archiver les traces règle par règle.
- Grande flexibilité dans les politiques de routage en sélectionnant la passerelle par défaut règle par règle (utile pour la répartition de charge, le failover ou le multi-WAN, etc.).
- Les Alias permettent de regrouper les règles et de nommer les adresses IPs, les réseaux et les ports. Cela aide à conserver les règles de votre firewall propres et simple à comprendre. Spécialement dans des environnements avec de multiples adresses IPs publics et de nombreux serveurs.
- Filtrage de niveau 2 transparent permettant de passer les interfaces en mode pont et de filtrer à ce niveau, éventuellement pour un firewall sans IPs (bien que vous souhaitiez probablement avoir une IP pour la gestion de votre firewall…).
- Normalisation de paquets. La description donnée sur le site de pf Scrub est la suivante : «Scrubbing est l’action de normaliser les paquets afin qu’il n’y ait pas d’ambiguité sur l’interprétation de la destination finale des paquets. La directive ‘scrub’ permet aussi de ré-assembler les paquets fragmentés, protégeant ainsi certains OS de certaines formes d’attaques. Elle supprime aussi les paquets TCP qui présentent des combinaisons incompatibles».
- Activé par défaut sur pfSense
- Peut-être désactivé en cas de nécessité. Cette option peut provoquer des problèmes sur certaines implémentations de NFS, mais doit normalement être laissé activé dans la plupart des cas.
- Désactiver l’ensemble du filtrage de votre firewall si vous souhaitez transformer pfSense en un routeur.
Table d’état
La table d’état du firewall maintien des informations sur les connexions réseau ouvertes. pfSense est un firewall qui gère les états, par défaut toutes les règles prennent cela en compte.
La plupart des firewalls ne disposent pas de fonctionnalités qui permettent de gérer de façon très précises ces tables d’état. pfSense a de nombreuses fonctionnalités qui permettent un contrôle précis de ces tables d’état, notamment grâce aux capacités d’OpenBSD pf.
- Table d’état ajustable - il y a de nombreux firewall pfSense en production qui gèrent plusieurs centaines de milliers d’état. La table d’état par défaut à une taille de 10.000 entrées, mais elle peut être ajustée à la volée à la taille de votre choix. Chaque ‘état’ prends environ 1KB de RAM, alors gardez bien en tête l’impact sur la mémoire de votre firewall lorsque vous ajusterez ce paramètre. Ne le fixez pas à une valeur arbitrairement haute.
- Règle par règle :
- Limite les connexions simultanées d’un hôte
- Limite le nombre d’état par hôte
- Limite le nombre de nouvelle connexion par seconde
- Définit un timeout en fonction des états
- Définit un type d’état
- Type d’état : pfSense offre de multiple options pour la gestion des états.
- Conserve l’état - fonctionne avec tout les protocoles. Activé par défaut pour toutes les règles.
- Module l’état - ne fonctionne qu’avec le protocole TCP. pfSense générera un Numéro de Séquence Initiale (ISN) forte agissant au nom de l’hôte.
- Etat Synproxy - met les connexions TCP entrantes en proxy afin d’aider à protéger les serveurs des attaques de type TCP SYN. Cette option inclus les fonctionnalités de conservation d’état et de modulation exposées ci-dessus.
- Aucune - ne conserve aucune information d’état pour ce trafic. Ceci est rarement utile, mais est mis à disposition car cela peut-être utile dans certains cas très limités.
- Optimisation des tables d’état - pf offre quatre options pour l’optimisation des tables d’état.
- Normal - l’algorithme par défaut
- Haute latence - utile pour les liens avec une grande latence tels que les liens satellites. Les connexions expirent plus tard que le normal.
- Agressif - Expire les connexions plus rapidement que la normal. Permet d’optimiser les ressources hardware, mais peut couper de connexions légitimes.
- Conservateur - Essai d’éviter de déconnecter les connexions légitimes avec en contre partie une surexploitation de la mémoire et du CPU.
NAT (Translation d’adresses réseau)
-
Forwarding de ports incluant des plages et de multiples IPs publics
-
NAT 1:1 pour des IPs individuelles ou des sous-réseaux entiers.
- NAT en sortie
- Les réglages par défaut NAT tout le trafic vers l’interface IP WAN. Dans le cas d’utilisation de multiple interfaces WAN, les réglages par défaut NAT le trafic sortant vers l’interface WAN qui est utilisée.
- Les réglages avancés de NAT sortant permettent à ce comportement par défaut d’être désactivé et de créer des règles de NAT très flexibles (ou pas de règles NAT).
- Dans certains cas un NAT réflexif peut être activé, cela permet à ce que des services IP disposant d’IP publiques soient accessibles depuis l'intérieur d’un réseau.
Les limites du NAT
- Les limites dues à PPTP et GRE - La capacité de gestion des état de pf pour le protocole GRE est limitée à une seule session par IP publique par serveur externe. Cela signifie que si vous utilisez une connexion VPN de type PPTP seule une machine interne peut se connecter à un serveur PPTP sur l'Internet. La seule manière de contourner cette limitation est d'utiliser de multiples adresses IP publiques sur votre firewall, une par client client, ou d'utiliser de multiples IP publiques sur le serveur PPTP externe. Ceci ne pose pas de problème avec les autres types de connexions VPN. Une solution pour parvenir à gérer cela est en cours de développement.
- Les limitation de SIP - par défaut tout le trafic UDP et TCP autre que SIP et IPSec ont le port source qui est réécrit. Vous trouverez plus d'information (en Anglais) dans la documentation sur les ports statiques. Parceque la réécriture du port source est la façon dont pf gère quelle IP interne a établi une connexion vers un serveur donné, et tout le trafic SIP utilise le même port source, seul un client SIP peut se connecter de façon similaire à un même serveur sur l'Internet. A moins que vous n'utilisiez des clients SIP pouvant fonctionner avec de la réécriture de port (la plupart en sont incapables), vous ne pourrez pas utiliser plusieurs téléphones avec un serveur externe unique sans utiliser une IP publique par client. Le paquet sipproxd offre maintenant une solution à ce problème pour les versions 1.2.1 et plus récentes.
- Les limitations du NAT reflexif - Le NAT reflexif ne peut être utilisé qu'avec des adresses de ports inférieures à 500 et il ne peut pas être utilisé avec des hôtes qui font du NAT 1:1.
Ce document est en cours de traduction…
Comments
There are 1 comments on this post
Paul Pogba (non vérifié)
- répondre
Aug 11, 2016Partant de notre expérience et de celle des milliers d'utilisateurs, nous avons bien compris ce qu'il est possible et ce qu’il est impossible de réaliser avec pfSense.
Cordialement,
Paul.
Leave a comment.