"The Book of PF", version française

PF_Eyrolles_couverture.jpg

Ça y est, ma traduction de l'excellent The Book of PF de Peter N.M. Hansteen (blog) vient d'être publiée, chez Eyrolles, sous le titre Le Livre de Packet Filter (collection Cahiers de l'Admin) !

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 maitrise de tous les aspects de Packet Filter.

Une fois les présentations terminées (qu'est-ce que PF, pourquoi c'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ègle 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 commence par la gestion de la NAT, avec une mention spéciale pour la gestion du 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 maitriser 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 (mon préféré), 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. Que l'on me permette d'insister : 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é mis à 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.

Et si vous voulez voir un peu ce que cela donne concrètement, sachez que, suite à mon travail de traduction, j'ai décidé de réécrire totalement le script de configuration pf (/etc/pf.conf) que j'utilise pour mon réseau personnel, et j'y ai inclus un grand nombre d'astuces que l'on trouve dans le livre.

J'aimerais terminer en remerciant les éditions Eyrolles pour m'avoir fait confiance sur ce projet que j'ai mis plus d'un an à voir aboutir, Rodrigo Osorio pour avoir bien gentiment accepté de traduire le texte Explaining BSD de Greg Lehey afin que je ne sois pas obligé de faire pointer mes lecteurs vers un texte anglais :), et le canal IRC #OpenBSD.fr pour m'avoir bien aidé quand j'en avais besoin.

Et, enfin, 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,                   Un souffle d'air frais,
floating on white rose petals,   Flottant sur de blancs pétales,
eating strawberries.                    En mangeant des fraises.

Et voilà que je m’emporte :

Hartmeier codes now,                       Hartmeier développe,
Henning knows not why it fails,          Henning ne comprend pas
fails only for n00b.             Pourquoi les nuls n’y arrivent pas.

Tables load my lists,                Des tables chargent mes listes,
tarpit for the asshole spammer,      Punition pour les spammers.
death to his mail store.                  Mort à leur commerce !

CARP due to Cisco,                          CARP vient de Cisco,
redundant blessed packets,             Paquets redondants bénis,
licensed free for me.                        Sous licence libre.

Commentaires

1. Le mardi 8 décembre 2009, 16:13 par Comète

Bonjour,
j'avais déjà la version anglaise mais j'ai racheté votre traduction pour le principe. Merci pour votre travail !
Je viens de recevoir cette nouvelle édition et après un bref parcours, c'est vraiment du bon boulot ! une petite déception quand même :) je n'ai pas noté de changements en rapport avec OpenBSD 4.6 comme annoncé sur la couverture car hormis l'encart sur scrub, j'aurais bien aimé par exemple avoir une info sur le renommage de hostated par relayd... Mais je vais me replonger dedans avant de critiquer ;p

Merci encore et bravo !

2. Le dimanche 2 mai 2010, 15:49 par px

Bonjour,

Utilisateur de Linux depuis plus de 15 ans, il y a quelques mois je me suis mis à OpenBSD (après avoir aussi testé freeBSD) et ... et je n'en suis pas ressorti ;) et la syntaxe de pf est un vrai régal (comparativement à iptables) dont la mise en oeuvre ne paraît être limitée que par notre imagination!
Même la gestion de la bande passante est simple.
Le premier livre acheté sur BSD est donc le vôtre (mais il est vrai aussi que la FAQ d'OpenBSD est plutôt exemplaire).
Il s'agit d'un bel ouvrage présentant de manière graduée PF. Les livres sur ce domaine sont plutôt rares. Il faut donc souligner cette initiative des éditions Eyrolles. Cependant, j'aurais quelques remarques à formuler:
- j'aurais souhaité un chapitre sur les concepts et la syntaxe générale de pf même si la page man est -bien- faite pour ça, juste pour avoir dans un même document les informations (le chapitre 1 est un peu court).
- les changements apportés par openBSD 4.6 ne sont pas suffisamment mis en exergue, notamment la règle match (à part un encart page 161)
- je n'ai rien vu, sauf erreur, sur le marquage (tag) des paquets.

Sinon, j'espère qu'il y aura une version 2 enrichie et toujours aussi didactique.

Dans l'attente, merci et bonne continuation.

Ajouter un commentaire

Le code HTML est affiché comme du texte et les adresses web sont automatiquement transformées.

Fil des commentaires de ce billet