FR
EUR
Édition gratuiteGratuit Installer

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.

Toutes les façons d'installer

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.

bash
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.

bash
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh -o install.sh
sudo bash install.sh --check-compat

Installer 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.

bash
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh | sudo bash

Options 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.

options
# 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 dev

Surveiller 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).

bash
systemctl status toutwaf-dp --no-pager
free -h

Gérer les services

Les deux services démarrent au boot. Utilisez ces commandes pour les démarrer, les arrêter ou les redémarrer.

systemd
sudo systemctl enable --now toutwaf-cp toutwaf-dp
sudo systemctl restart toutwaf-cp toutwaf-dp
sudo systemctl stop toutwaf-dp toutwaf-cp

Vérifier les services

bash
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-pager

Mettre à 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.

bash
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/healthz

Dé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.

bash
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh -o install.sh
sudo bash install.sh --uninstall
purge
sudo bash install.sh --uninstall --purge

Ce 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.

Autres façons d'installer

En savoir plus dans la documentation