Ceci est une ancienne révision du document !
Table des matières
Couverture de survie
Le firewall de la Freebox
La Freebox v6 propose une case à cocher pour activer un firewall sur la délégation principale. Si celle-ci est activée, alors une autre case concernant les délégations secondaires devient activable.
Le problème, c'est que rien n'indique ce que fait ou ce que ne fait pas ce firewell et rien ne semble paramétrable. Aussi allons-nous utiliser notre maquette pour mettre en place sur demoserver
un pare-feu certes minimaliste, mais qui aura le mérite d'être maîtrisé. Il y a plus loin un chapitre dédié au système de filtrage de paquets du noyau Linux.
Netfilter et Nftables (et Iptables)
Juste un mot pour donner du courage.
- Netfilter, c'est le cœur du système de filtrage de paquets, présent dans le kernel Linux depuis les versions 2.4x. C'est un système extrêmement puissant et peu gourmand en ressources CPU.
- IPtables, c'est l'outil qui permetait autrefois de définir les règles de filtrage que Netfilter doit suivre. La commande «iptables» permet de créer de manipuler ces règles. C'est en quelque sorte le «front-end» de Netfilter.
- Nftables apparaît comme le successeur d'IPtables, toujours en appui sur Netfilter, mais avec plus de cohérence et d'efficacité.
Passer d'un système de gestion des règles à l'autre n'est pas simple, mais ce n'est pas ici le débat. IPtables est toujours activement supporté, bien que Debian 12 (Bookworm) installe nftables par défaut.
Ici, nous allons faire de la résistance, avec iptables, qu'il va falloir installer:
apt install iptables -y
...
Réception de :1 http://deb.debian.org/debian bookworm/main amd64 libip6tc2 amd64 1.8.9-2 [19,4 kB]
Réception de :2 http://deb.debian.org/debian bookworm/main amd64 libnfnetlink0 amd64 1.0.2-2 [15,1 kB]
Réception de :3 http://deb.debian.org/debian bookworm/main amd64 libnetfilter-conntrack3 amd64 1.0.9-3 [40,7 kB]
Réception de :4 http://deb.debian.org/debian bookworm/main amd64 iptables amd64 1.8.9-2 [360 kB]
....
Paramétrage de iptables (1.8.9-2) ...
update-alternatives: utilisation de « /usr/sbin/iptables-legacy » pour fournir « /usr/sbin/iptables » (iptables) en mode automatique
update-alternatives: utilisation de « /usr/sbin/ip6tables-legacy » pour fournir « /usr/sbin/ip6tables » (ip6tables) en mode automatique
update-alternatives: utilisation de « /usr/sbin/iptables-nft » pour fournir « /usr/sbin/iptables » (iptables) en mode automatique
update-alternatives: utilisation de « /usr/sbin/ip6tables-nft » pour fournir « /usr/sbin/ip6tables » (ip6tables) en mode automatique
update-alternatives: utilisation de « /usr/sbin/arptables-nft » pour fournir « /usr/sbin/arptables » (arptables) en mode automatique
update-alternatives: utilisation de « /usr/sbin/ebtables-nft » pour fournir « /usr/sbin/ebtables » (ebtables) en mode automatique
...
On sent bien que iptables va être traduit en nftables au passage…
Principes de base
Il y a deux façons de concevoir un pare-feu:
- Tout interdire, sauf ce dont on a besoin;
- Tout autoriser sauf ce dont on n'a pas besoin.
Sur une installation similaire à notre maquette, nous pouvons effectuer un permier niveau de filtrage sur demoserver:
- pour sa protection personnelle;
- pour la protection des nœuds présents dans la délégation qui est derrière lui.
Nous pouvons également ajouter des filtrages plus personnels sur chaque hôte de la délégation. Le but ici est de faire juste un minimum, en partant du principe que les postes clients ne sont que des clients de l'internet et que demoserver
n'a aucun service à proposer à l'extérieur de sa délégation.
Protéger demoserver
Du fait que cet hôte n'a rien à partager avec le monde extérieur, aucune requête venant de dehors ne devrait passer. en mode TCP, tous les paquets contenant un simple [SYN] devraient être rejetés.
En revanche, demoserver va avoir des requêtes à formuler vers les services extérieurs, ne serait-ce que pour que notre résolveur DNS puisse fonctionner. Il faut également assurer les mises à jour du système qui nécessiteront de se connecter aux dépôts de paquets Debian. En UDP, il n'y a pas de SYN, mais Netfilter va bien se débrouiller.