Recherchez sur tout Techno-Science.net
       
Techno-Science.net : Suivez l'actualité des sciences et des technologies, découvrez, commentez
 A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | +
Packet Filter

Packet Filter (ou PF) est le pare-feu logiciel et officiel de OpenBSD, écrit à l'origine par Daniel Hartmeier. C'est un Logiciel Libre gratuit.

Il remplace IPFilter (IPFilter (ou IPF) est un module logiciel qui fournit des fonctions de pare-feu à de nombreux Systèmes d'exploitation Unix, Linux ou BSD.) de Darren Reed depuis la version 3.0 de OpenBSD (OpenBSD est un système d'exploitation libre de type Unix, dérivé de 4.4BSD. Créé en 1994 par Theo de Raadt, OpenBSD est issu de la séparation avec NetBSD, le plus ancien des trois autres...), suite à des problèmes de licence mais aussi des refus systématiques de Reed d'incorporer des modifications de code venant de développeurs OpenBSD.

Il a été porté sur DragonflyBSD 1.2 et NetBSD (NetBSD est un système d'exploitation libre de type unix BSD dérivé de 386BSD et de Net/2 (4.3BSD-Lite).) 3.0 ; il est fourni (Les Foúrnoi Korséon (Grec: Φούρνοι Κορσέων) appelés plus communément Fourni, sont un...) en standard sur FreeBSD (FreeBSD est un système d'exploitation UNIX libre. Le nom vient de l'association d'une part de free qui signifie à la fois libre (liberté) et gratuit...) (version 5.3 et ultérieures).

Un port gratuit de PF a également été réalisé pour les systèmes d'exploitation Windows (Windows est une gamme de systèmes d'exploitation produite par Microsoft, principalement destinées aux machines compatibles PC. C'est le...) 2000 et XP par la communauté Core FORCE (Le mot force peut désigner un pouvoir mécanique sur les choses, et aussi, métaphoriquement, un pouvoir de la volonté ou encore une vertu morale « cardinale »...). Ce port n'est cependant qu'un firewall personnel : il n'implémente pas les fonctions de PF permettant de faire du NAT ou d'utiliser ALTQ

Gestion de La Bande Passante (La bande passante (angl. bandwidth) est un intervalle de fréquences pour lesquelles la réponse d'un appareil est supérieure à un minimum. Elle est généralement confondue avec...)

Depuis OpenBSD 3.0, la Mise en queue alternée ALTQ fait partie du système de base.

Depuis OpenBSD 3.3, ALTQ a été intégrée dans PF.

L'implémentation de ALTQ dans OpenBSD supporte les algorithmes de Mise en Queue par classes (CBQ) et de Mise en Queue par priorités (PRIQ), mais aussi la Détection Aléatoire Anticipée (RED) et la Notification de Congestion ( La congestion est l'augmentation subite de la quantité de sang contenue dans les vaisseaux d'un organe ou d'une partie d'organe. La congestion d'un réseau...) Explicite (ECN).

L'intégration de ALTQ dans PF permet entre autre de définir la priorité d'un trafic dans le filtre (Un filtre est un système servant à séparer des éléments dans un flux.) qui l'autorise.

Voir: PF : Gestion de La Bande Passante

Ceci permet par exemple:

  • de rendre HTTP prioritaire par rapport à SMTP si vous voulez rendre le surf sur internet (Internet est le réseau informatique mondial qui rend accessibles au public des services variés comme le courrier électronique, la messagerie...) prioritaire à l'envoi de mails.
  • de rendre les petits paquets d'Acquittements prioritaires sur les autres paquets, ce qui est très pratique pour les accès à Internet asymétriques (ADSL...).
  • de réserver des bandes passantes minimum pour des applications temps (Le temps est un concept développé par l'être humain pour appréhender le changement dans le monde.) réels comme Voix sur réseau IP.

Qualités

  • Le chargement (Le mot chargement peut désigner l'action de charger ou son résultat :) de la configuration est atomique. C’est-à-dire que si une erreur de syntaxe ou de cohérence est trouvée dans le fichier ( Un fichier est un endroit où sont rangées des fiches. Cela peut-être un meuble, une pièce, un bâtiment, une base de données informatique. Par...) configuration, un retour en arrière est effectué. Quasiment aucun pare-feu commercial (Un commercial (une commerciale) est une personne dont le métier est lié à la vente.) n'implémente de solution de ce type.
  • Grace à la Gestion de La Bande Passante et l'intégration de ALTQ, Packet Filter (Packet Filter (ou PF) est le pare-feu logiciel et officiel de OpenBSD, écrit à l'origine par Daniel Hartmeier. C'est un Logiciel Libre gratuit.) offre un contrôle souple des flux (Le mot flux (du latin fluxus, écoulement) désigne en général un ensemble d'éléments (informations / données,...) et des performances réseau.
  • Pour des raisons de sécurité, PF ne fait pas d'inspection de service (Comme FTP, RPC) dans le noyau. En effet l'inspection de service étant complexe, tout (Le tout compris comme ensemble de ce qui existe est souvent interprété comme le monde ou l'univers.) bug pourrait permettre la prise de contrôle de la machine. Pour faire de l'inspection de service il faut installer un proxy qui lui tourne en Espace utilisateur (Quand le processeur d'un système informatique possède au moins deux modes de fonctionnement, dont un mode dit superviseur qui n'impose pas de restrictions sur les instructions...).
  • Les développeurs ont fourni un effort important pour rendre la syntaxe lisible, souple et claire (les erreurs d'utilisation représentant un danger important pour la sécurité d'un pare-feu).
  • Grâce à l'utilisation combinée de pfsync et CARP (CARP peut faire référence à :), PF peut utiliser de la redondance pour assurer de la haute disponibilité.

Défauts

  • Le fait que PF (comme IPF) ne fasse pas d'inspection de service mais impose l'utilisation de proxy est gênant quand il manque un proxy pour un protocole. Par exemple il n'y a pas de proxy pour les protocoles basés sur RPC, ni pour le protocole UPnP (Universal Plug and Play).
  • Comme la plupart des pare-feux libres, PF ne gère pas IPsec (IPSec (Internet Protocol Security) est un ensemble de protocoles (couche 3 modèle OSI) utilisant des algorithmes permettant le transport de...), les proxys, les IDS, les serveurs d'authentification (L'authentification est la procédure qui consiste, pour un système informatique, à vérifier l'identité d'une entité...) et plein d'autres technologies que les pare-feux commerciaux ont l'habitude de gérer. Pour faire cela il faut utiliser d'autres modules BSD qui se configurent à part.
  • Les IDS et logiciels antivirus conçus pour une intégration étroite avec les logiciels pare-feux supportent rarement PF (et plus généralement, les pare-feux des systèmes BSD).

Commandes et paramètres

Quelques exemples d'utilisation de pfctl, l'outil (Un outil est un objet finalisé utilisé par un être vivant dans le but d'augmenter son efficacité naturelle dans l'action. Cette augmentation se traduit...) d'administration en ligne de commande (Commande : terme utilisé dans de nombreux domaines, généralement il désigne un ordre ou un souhait impératif.) des pare-feux utilisants PF:

  • pfctl -e -> active pf
  • pfctl -d -> désactive pf
  • pfctl -f -> charge (La charge utile (payload en anglais ; la charge payante) représente ce qui est effectivement transporté par un moyen de transport donné, et qui donne lieu à un paiement ou un...) les règles décrites par le fichier dans PF. Si une seule erreur de syntaxe est trouvée dans le fichier, rien n'est changé.
  • pfctl -sn -> affiche les règles de NAT activées
  • pfctl -sr -> affiche les règles de filtrage activées

Exemple de configuration

Explications élémentaires sur la syntaxe:

  • Les valeurs des macros sont automatiquement substituées lors de l'évaluation de la configuration.
  • La syntaxe $interface:network se voit automatiquement substituer l'adresse (Les adresses forment une notion importante en communication, elles permettent à une entité de s'adresser à une autre parmi un ensemble d'entités. Pour qu'il n'y ait pas d'ambiguïté, chaque adresse doit...) du réseau attachée à $interface.
  • Le mot clef (Au sens propre, la clef ou clé (les deux orthographes sont correctes) est un dispositif amovible permettant d'actionner un mécanisme.) "egress" est automatiquement remplacé par le nom de l'interface (Une interface est une zone, réelle ou virtuelle qui sépare deux éléments. L’interface désigne ainsi ce que chaque...) à laquelle est attachée la route (Le mot « route » dérive du latin (via) rupta, littéralement « voie brisée », c'est-à-dire...) par defaut, et "(egress)" par son IP. Ces valeurs sont mises à jour (Le jour ou la journée est l'intervalle qui sépare le lever du coucher du Soleil ; c'est la période entre deux nuits, pendant laquelle les rayons du Soleil éclairent le ciel. Son début (par...) dynamiquement en cas de changement.
 
 # Macros 
 int_if="rl0" 
 ports_ouverts_pourt_tous="{ http https }" 
 ports_ouverts_pour_lequipe="{ ssh 21 60000:60100 }" 
 # Tables 
 table  { XXX.XXX.XXX.XXX, XXX.XXX.XXX.XXX, XXX.XXX.XXX.XXX } 
 # Normalisation du trafic 
 scrub in no-df 
 # NAT 
 nat on egress -> (egress) 
 # Règles de filtrage 
 block in 
 pass out keep state 
 pass in on egress proto tcp from  to port $ports_ouverts_pour_lequipe flags S/SFRA keep state 
 pass in on egress proto tcp to $ports_ouverts_pourt_tous flags S/SFRA keep state 
 block in quick on $int_if proto tcp from $int_if:network to port 4662 
 pass quick on !egress keep state 
 
Source: Wikipédia publiée sous licence CC-BY-SA 3.0.

Vous pouvez soumettre une modification à cette définition sur cette page. La liste des auteurs de cet article est disponible ici.