Installer ToutWAF sur Raspberry Pi
ToutWAF sur un Raspberry Pi ou un autre serveur ARM 64 bits : système requis, cartes visées, mémoire et stockage. Expérimental : jamais essayé sur du vrai matériel ARM.
La version que vous installez
La version publique est une version de développement, nommée 0.3.0-dev. Son nom ne change pas : chaque publication remplace la précédente, et un identifiant de build distingue deux builds. Aucune version stable n'existe encore : elle ne sera publiée que lorsque chaque système et chaque paquet auront été testés de bout en bout. Les commandes de cette page installent donc depuis le canal dev. Une version de développement peut contenir des défauts : essayez-la sur un site de test avant de vous y fier.
L'essentiel
- Un système 64 bits est obligatoire : Raspberry Pi OS 64 bits (Bookworm / Debian 12 ou plus), Ubuntu 22.04 ou 24.04 arm64, Debian 12 ou 13 arm64. Le 32 bits (armv7l, armhf) n'est pas pris en charge et n'est pas prévu, même sur un Pi 4 ou 5.
- Cartes visées : Raspberry Pi 5, 4, 400 et CM4 ; Pi 3 et CM3 (1 Go : plan de données seul) ; Pi Zero 2 W (512 Mo : déconseillé). Pi 2 v1.1, Zero, Zero W et Pi 1 : non pris en charge. D'autres serveurs arm64 (Graviton, Ampere) utilisent la même version.
- Mémoire : l'installateur prévient sous 1 Go ; pour tout-en-un (console, plan de données et base de politiques sur la même carte), prévoyez 2 Go ou plus.
- Stockage : préférez un SSD ou un bon disque USB ou NVMe à une carte SD, qui s'use avec les écritures continues et peut se corrompre à une coupure de courant. Choisissez l'emplacement avec --home.
Les commandes, pas à pas
Vérifier que le système est en 64 bits
uname -m doit afficher aarch64 et getconf LONG_BIT doit afficher 64. Sinon, flashez une image 64 bits avec Raspberry Pi Imager : une conversion sur place n'est pas possible.
uname -m # aarch64 = 64-bit kernel (armv7l = 32-bit: unsupported)
getconf LONG_BIT # must print 64
dpkg --print-architecture # Debian family: arm64 is required (armhf = 32-bit system)Vérifier la compatibilité sans rien installer
Le script affiche le verdict et le tableau des systèmes pris en charge, sans rien modifier sur la machine.
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh -o install.sh
sudo bash install.sh --check-compatInstaller avec le script en une ligne
Le script télécharge les binaires natifs adaptés à votre architecture, crée un utilisateur dédié sans privilèges et installe les services systemd durcis toutwaf-dp (plan de données, ports 80 et 443) et toutwaf-cp (plan de contrôle et console, port 9443), puis affiche vos informations de première connexion.
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh | sudo bashOptions de l'installeur
Une nouvelle installation tient dans un seul dossier, /var/toutwaf (bin, conf, data et logs ; changez-le avec --home DIR ou TOUTWAF_HOME), et les outils en ligne de commande sont liés dans /usr/local/bin. Une installation plus ancienne garde ses propres chemins (/etc/toutwaf, /var/lib/toutwaf) et n'est jamais déplacée.
# only let your admin network reach the console (port 9443)
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh | sudo bash -s -- --console-from 203.0.113.0/24
# do not touch the host firewall / choose the installation home
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh | sudo bash -s -- --no-firewall
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh | sudo bash -s -- --home /opt/toutwaf
# name the channel explicitly (the installer of the dev branch already takes the dev channel; no stable version exists yet)
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh | sudo bash -s -- --channel devSurveiller la mémoire avant de mettre du vrai trafic
Aucune mesure de mémoire n'a été faite sur ARM : surveillez-la, gardez peu de sites et des jeux de règles modestes sur une petite carte, et activez le swap avec prudence (jamais un swap lourd sur une carte SD).
systemctl status toutwaf-dp --no-pager
free -hGérer les services
Les deux services démarrent au boot. Utilisez ces commandes pour les démarrer, les arrêter ou les redémarrer.
sudo systemctl enable --now toutwaf-cp toutwaf-dp
sudo systemctl restart toutwaf-cp toutwaf-dp
sudo systemctl stop toutwaf-dp toutwaf-cpVérifier les services
sudo systemctl status toutwaf-cp toutwaf-dp --no-pager
toutwafctl doctor
curl -kI https://127.0.0.1:9443/
curl -s http://127.0.0.1:9101/healthz
sudo journalctl -u toutwaf-dp -u toutwaf-cp -n 50 --no-pagerMettre à jour
Sauvegardez la configuration et les données, puis relancez l'installeur : il conserve vos paramètres et revient en arrière tout seul si la nouvelle version ne devient pas saine. Les chemins affichés sont ceux d'une nouvelle installation (/var/toutwaf) ; une installation plus ancienne garde /etc/toutwaf et /var/lib/toutwaf. Vous pouvez aussi mettre à jour depuis la console, page Mises à jour.
sudo mkdir -p /var/toutwaf.bak
sudo cp -a /var/toutwaf/conf /var/toutwaf/data /var/toutwaf.bak/
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh | sudo bash -s -- --update --yes
curl -s http://127.0.0.1:9101/healthzDésinstaller
Le premier bloc supprime les services, les binaires et les règles de pare-feu ajoutées par ToutWAF, et conserve vos données. Le second supprime aussi la configuration, les données et les journaux.
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh -o install.sh
sudo bash install.sh --uninstallsudo bash install.sh --uninstall --purgeCe qui n'est pas vérifié
Nous préférons le dire clairement.
- La version arm64 n'a été compilée et exécutée que sous émulation (QEMU) : elle n'a été testée sur aucun Raspberry Pi ni autre matériel ARM réel. Ce que dit cette page du matériel réel est un conseil, pas un résultat validé.
- L'installateur n'a pas été exécuté sur arm64 (systemd, pare-feu, unités) ; la version durcie pour arm64 n'a pas été construite.
- Aucune mesure de performance, de mémoire ou de comportement d'une carte SD n'a été faite, et aucune n'est revendiquée : testez votre propre trafic (toutwaf-dp bench) avant de compter dessus.