Packet Filter

Cet article est une ébauche concernant un logiciel et la sécurité informatique.

Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants.

Consultez la liste des tâches à accomplir en page de discussion.
Packet Filter
Informations
Développé par Projet OpenBSD (d)Voir et modifier les données sur Wikidata
Dépôt cvsweb.openbsd.org/srcVoir et modifier les données sur Wikidata
Écrit en CVoir et modifier les données sur Wikidata
Type Firewall software (d)
Filtre de paquets (d)Voir et modifier les données sur Wikidata
Licence Licence BSDVoir et modifier les données sur Wikidata
Site web www.openbsd.org/faq/pf/index.htmlVoir et modifier les données sur Wikidata

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

Il remplace IPFilter de Darren Reed depuis la version 3.0 d'OpenBSD, à la suite de 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 DragonFly BSD 1.2 et NetBSD 3.0 ; il est fourni en standard sur FreeBSD (version 5.3 et ultérieures).

Depuis OS X v10.7 Lion, c'est le pare-feu par défaut des Apple Macintosh.

Un port gratuit de PF a également été réalisé pour les systèmes d'exploitation Windows 2000 et XP par la communauté Core FORCE. Ce port n'est cependant qu'un pare-feu personnel : il n'implémente pas les fonctions de PF permettant de faire du NAT ou d'utiliser ALTQ

Gestion de la bande passante

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

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

L'implémentation d'ALTQ dans OpenBSD supporte les algorithmes de Mise en Queue par classes (CBQ) et de Mise en Queue par priorité (PRIQ), mais aussi la Détection Aléatoire Anticipée (RED) et la Notification de Congestion Explicite (ECN).

L'intégration d'ALTQ dans PF permet, entre autres, de définir la priorité d'un trafic dans le filtre qui l'autorise.

Ceci permet par exemple :

Particularités

Commandes et paramètres

Quelques exemples d'utilisation de pfctl, l'outil d'administration en ligne de commande des pare-feu utilisant PF.

Commande Action
pfctl -e active Packet Filter
pfctl -d désactive Packet Filter
pfctl -f <fichier> charge 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 -s nat affiche les règles de NAT activées
pfctl -s rules affiche les règles de filtrage activées

Exemple de configuration

Explications élémentaires sur la syntaxe :


# Macros
int_if="rl0"
ports_ouverts_pour_tous="{ http https }"
ports_ouverts_pour_lequipe="{ ssh 21 60000:60100 }"

# Tables
table <ip_de_lequipe> { XYZ.XYZ.XYZ.XYZ, XYZ.XYZ.XYZ.XYZ, XYZ.XYZ.XYZ.XYZ }

# 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 <ip_de_lequipe> to port $ports_ouverts_pour_lequipe
pass in on egress proto tcp to port $ports_ouverts_pour_tous
block in quick on $int_if proto tcp from $int_if:network to port 4662
pass quick on !egress

Références

Voir aussi

Les autres pare-feu libres

Liens externes