Ce livre, basé sur le célèbre didacticiel que l'auteur avait rédigé comme support de conférence, est l'un des très rares ouvrages (le seul en français) à couvrir ce filtre de paquets développé par Daniel Hartmeier pour OpenBSD, puis repris et intégré par FreeBSD et NetBSD. Il intéressera les professionnels (administrateurs système et/ou réseau, etc.) désireux d'apprendre à se servir de ce petit bijou qu'est PF, ou de se perfectionner dans sa maîtrise, ainsi que les amateurs de bidouille réseau qui y trouveront largement de quoi s'amuser quelques temps.
Comme son titre l'indique, ce livre ambitionne de servir de support à l'apprentissage et à la maîtrise de tous les aspects de Packet Filter.
Une fois les présentations terminées (qu'est-ce que PF, pourquoi ce n'est pas disponible dans le monde GNU/Linux, etc.), on enchaîne sur un premier chapitre qui sert d'introduction, présentant les grandes lignes de l'histoire du développement de PF et expliquant les bases de la terminologie employée (NAT, IPv4/IPv6, différences entre filtre réseau et pare-feu, etc.).
On en arrive alors, au deuxième chapitre, à la configuration basique de PF, de son activation à l'écriture d'un tout premier jeu de règles pour une machine seule et autonome ; tout est détaillé pour OpenBSD, FreeBSD et NetBSD. L'auteur touche également deux mots à propos des statistiques que peut nous donner pfctl(8) si on lui demande gentiment.
Les choses sérieuses commencent au troisième chapitre : on débute par la gestion de la NAT, avec une mention spéciale pour le protocole FTP dans un réseau NATé (ftp-sesame, pftpx et bien entendu ftp-proxy), on continue par le debugging réseau (protocole ICMP pour le ping, traceroute, et la MTU path discovery), et on termine par l'explication de pourquoi les tables c'est bien. Notez qu'à chaque fois, les détails sont donnés pour les implémentations de PF d'OpenBSD, de FreeBSD et de NetBSD.
Le chapitre 4 est tout entier consacré aux réseaux sans-fil (Wi-Fi) : généralités d'usage, configuration d'une interface Wi-Fi côté client et côté routeur (avec le morceau de script /etc/pf.conf qui va bien), et on termine bien entendu par la spécialité locale : la création d'une passerelle authentifiante grâce à authpf.
Au cinquième chapitre, l'auteur termine son tour des fonctionnalités basiques de PF, que tout administrateur ou passionné se doit de maîtriser pour utiliser PF dans une vraie configuration : mise en place d'une DMZ (avec ou sans NAT), filtrage de service (accessibilité depuis l'extérieur et/ou depuis le LAN), répartition de charge avec hoststated, utilisation des tags (étiquettes) pour clarifier le jeu de règles de filtrage. L'auteur ajoute à cela la mise en place d'un pare-feu ponté (décrite pour OpenBSD, FreeBSD et NetBSD), et une petite astuce pour gérer le fait que les adresses IPv4 non routables ne devraient jamais ni envoyer ni recevoir de trafic par Internet.
Au chapitre 6, l'auteur traite ce qui est peut-être LE sujet par excellence quand on touche à OpenBSD : la défense pro-active. C'est ainsi qu'il (re-)donne l'astuce qui a fait la célébrité de son didacticiel en ligne : la gestion des attaques par force brute grâce à une liste noire et à quelques options (max-src-conn, max-src-conn-rate, overload, et flush global). Ensuite, l'auteur explique en détail la mise en place d'une stratégie antispam grâce à spamd ; au menu : liste noire, liste grise (greylisting), greytrapping, et utilisation des outils associés que sont spamdb et spamlogd. Insistons là-dessus : ce chapitre constitue la seule vraie documentation sur spamd existant en français à l'heure actuelle, alors ne boudons pas notre plaisir...
Quant au septième chapitre, il conviendra aux plus barbus : ALTQ est détaillé sur une vingtaine de pages, et le couple CARP/pfsync sur une dizaine. Au vu du faible nombre de documentations existant en français sur ces sujets, les connaisseurs apprécieront...
Enfin, le chapitre 8 est consacré à la journalisation et aux statistiques (pflog, syslog, labels pour les règles, pftop, pfstat, pfflowd), et le neuvième et dernier chapitre donne une référence aux options utiles mais non couvertes dans le reste du livre, notamment la normalisation de trafic (scrub).
Vous trouverez en outre deux annexes, qui donnent respectivement des références documentaires et des remarques de l'auteur concernant la prise en charge du matériel.
A noter que l'intégralité du livre a été mise à jour pour être en concordance avec les dernières modifications survenues dans PF entre la sortie de la dernière version en date (OpenBSD 4.5) et celle qui sortira le 1er novembre prochain (OpenBSD 4.6), je pense notamment à scrub. Vous savez sur qui taper en cas de problème. ;-)
Vous l'aurez compris, cet ouvrage est une mine d'or pour qui cherche à apprendre à se servir de Packet Filter, que ce soit dans un cadre professionnel ou amateur. Allez, juste pour vous mettre l'eau à la bouche, voici la traduction du fameux haïku PF que Jason Dixon a publié sur la liste de diffusion de PF, le 20 mai 2004, et qui conclut l'avant-propos du livre :
Comparé à iptables, PF est comme ce haïku :
A breath of fresh air,
floating on white rose petals,
eating strawberries.
Un souffle d'air frais,
Flottant sur de blancs pétales,
En mangeant des fraises.
Et voilà que je m'emporte :
Hartmeier codes now,
Henning knows not why it fails,
fails only for n00b.
Tables load my lists,
tarpit for the asshole spammer,
death to his mail store.
CARP due to Cisco,
redundant blessed packets,
licensed free for me.
Hartmeier développe
Henning ne comprend pas
Pourquoi les nuls n'y arrivent pas.
Des tables chargent mes listes,
Punition pour les spammers.
Mort à leur commerce !
CARP vient de Cisco,
Paquets redondants bénis,
Sous licence libre.
Aller plus loin
- La page du livre sur le site des Editions Eyrolles (82 clics)
- La page du livre sur le site de No Starch Press (15 clics)
- l'auteur (8 clics)
- Le didacticiel PF en ligne, sur lequel le livre est basé (63 clics)
# juste parce que je suis un gros ignorant...
Posté par cosmocat . Évalué à 10.
Pourquoi (expliqué de façon simple) Packet Filter ne peut pas actuellement être implémentable sous linux? Je suppose que c'est à cause d'un choix architecturel, mais lequel??
[^] # Re: juste parce que je suis un gros ignorant...
Posté par kowalsky . Évalué à 9.
[^] # Re: juste parce que je suis un gros ignorant...
Posté par Kerro . Évalué à 3.
[^] # Re: juste parce que je suis un gros ignorant...
Posté par Patrick Lamaizière (site web personnel) . Évalué à 4.
Non je ne crois pas qu'il y ait beaucoup de dépendances au noyau. Par exemple PF a été porté sous Windows http://force.coresecurity.com/index.php?module=base&page(...)
FreeBSD utilise des PFIL_HOOK pour les pare-feux (pf, ipfw ou ipfilter), y'en a pas partout... http://www.enderunix.org/docs/en/pfil_hook.html
les pixels au peuple !
[^] # Re: juste parce que je suis un gros ignorant...
Posté par Pierre Jarillon (site web personnel) . Évalué à 2.
C'est à mon avis pour cela que le portage de PF sur Linux n'est peut-être pas très simple.
# Petite précision
Posté par gaston . Évalué à 10.
Il faut rendre à césar ce qui lui appartient.. PF à été developpé à l'origine par Daniel Hartmeier comme remplacement 'feature-compatible' de l'IPF de Darren Reed, mais tout les développements et extensions faites depuis maintenant deux ans sont l'oeuvre principalement de Henning Brauer (henning@) et Ryan Mc Bride (mcbride@), ainsi que de beaucoup d'autres dans une moindre mesure.
[^] # Re: Petite précision
Posté par Maxime DERCHE (site web personnel) . Évalué à 4.
# amis sysadmins linux ^^
Posté par Jul (site web personnel) . Évalué à 5.
Par contre, la première fois que l'on compare des régles PF avec iptables on est un peu surpris : C'est comme comparer du C et du perl en terme de verbosité et de lisiblité pour parser un fichier.
De même que je préfère perl au C pour parser un fichier, je trouve pf cool. Comme le C iptables a ses avantages. Ils ne me concernent pas, je trouve pas les règles de fw bandantes mais seulement utiles et j'aime qu'elles soient faciles à écrire (donc moins d'erreur) et maintenir.
Non je n'ai pas la plus grosse, oui je suis fainéant, et pour tout ceux qui raisonnent ainsi pf est cool. pour les pros iptables est bon : mangez en.
Pour les clients : préférez vous un pro qui fait des trucs compliqués et qui coûte cher, ou un qui résous le problème rapidement et simplement ? ^_^
[^] # Re: amis sysadmins linux ^^
Posté par bubar🦥 (Mastodon) . Évalué à 8.
# IP v6
Posté par Thierry Thomas (site web personnel, Mastodon) . Évalué à 10.
(C'est pas que ça soit plus compliqué, mais il y a moins d'exemples disponibles sur le net)
[^] # Re: IP v6
Posté par Maxime DERCHE (site web personnel) . Évalué à 3.
[^] # Re: IP v6
Posté par Thierry Thomas (site web personnel, Mastodon) . Évalué à 5.
[^] # Re: IP v6
Posté par Nicolas Legrand (site web personnel) . Évalué à 6.
ne pas oublier la bonne doc en français d'OpenBSD
« Il est possible de spécifier la famille d'adresses IP à laquelle appliquer une règle à l'aide de ce mot-clef. Les deux valeurs possibles sont inet pour les adresses IPv4 et inet6 pour IPv6. PF peut généralement déterminer à quelle famille appartient un paquet à partir de ses adresses source et destination. »
[^] # Re: IP v6
Posté par Mr Kapouik (site web personnel) . Évalué à 2.
Sinon il est vrai que quelques spécificité sur certain protocole ne serait pas forcement un luxe bien qu'il me semble qu'une fois le bouquin lu, on ai plus vraiment besoin pour adapter pf à IPv6 grâce à sa syntaxe plus que clair.
[^] # Re: IP v6
Posté par FRLinux (site web personnel) . Évalué à 3.
[^] # Re: IP v6
Posté par Bernez . Évalué à 5.
[^] # Re: IP v6
Posté par Mr Kapouik (site web personnel) . Évalué à 3.
Et pour ce qui est de la petite révolution niveau ICMP, c'est justement de ça dont je parle avec les protocoles spécifique IPv6. Mais bon quand on sait ce qu'on fait, il n'est pas forcement des plus dur de remplir la section protocole d'une ligne de PF.
Je ne dis pas que la documentation est inutile mais plutôt que si l'on connait bien PF, on peut faire un passage sans problème en IPv6 sans pour autant avoir un énorme bouquin sur le sujet.
Pour pas mourir idiot voila une doc sur la configuration de PF pour IPv6 avec des exemples https://solarflux.org/pf/pf+IPv6.php
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.