Raspberry Pi
ToutWAF on a Raspberry Pi or another 64-bit ARM server: required system, target boards, memory and storage. Experimental: never tried on real ARM hardware.
Welke versie u installeert
De openbare versie is een ontwikkelversie met de naam 0.3.0-dev. De naam blijft gelijk: elke publicatie vervangt de vorige en een build-id onderscheidt twee builds. Er bestaat nog geen stabiele versie: die wordt pas gepubliceerd als elk systeem en elk pakket van begin tot eind is getest. De opdrachten op deze pagina installeren daarom vanuit het kanaal dev. Een ontwikkelversie kan fouten bevatten: probeer haar eerst op een testsite voordat u erop vertrouwt.
At a glance
- A 64-bit system is required: Raspberry Pi OS 64-bit (Bookworm / Debian 12 or newer), Ubuntu 22.04 or 24.04 arm64, Debian 12 or 13 arm64. 32-bit (armv7l, armhf) is not supported and not planned, even on a Pi 4 or 5.
- Target boards: Raspberry Pi 5, 4, 400 and CM4; Pi 3 and CM3 (1 GB: data plane only); Pi Zero 2 W (512 MB: not recommended). Pi 2 v1.1, Zero, Zero W and Pi 1: not supported. Other arm64 servers (Graviton, Ampere) use the same build.
- Memory: the installer warns below 1 GB; for all-in-one (console, data plane and policy database on the same board) plan for 2 GB or more.
- Storage: prefer an SSD or a good USB or NVMe drive to an SD card, which wears out with continuous writes and can be corrupted by a power loss. Choose the location with --home.
The commands, step by step
Check that the system is 64-bit
uname -m must print aarch64 and getconf LONG_BIT must print 64. Otherwise flash a 64-bit image with Raspberry Pi Imager: an in-place conversion is not 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)Check compatibility without installing
The script prints the verdict and the table of supported systems, and changes nothing on the machine.
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh -o install.sh
sudo bash install.sh --check-compatInstalleer met de one-line installer
Het script downloadt de native binaries voor uw architectuur, maakt een eigen gebruiker zonder privileges aan en installeert de geharde systemd-services toutwaf-dp (data plane, poorten 80 en 443) en toutwaf-cp (control plane en console, poort 9443). Daarna toont het uw eerste inloggegevens.
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh | sudo bashOpties van het installatieprogramma
Een nieuwe installatie staat in één map, /var/toutwaf (bin, conf, data en logs; wijzig dit met --home DIR of TOUTWAF_HOME), en de opdrachtregelhulpmiddelen worden gelinkt in /usr/local/bin. Een eerdere installatie houdt haar eigen paden (/etc/toutwaf, /var/lib/toutwaf) en wordt nooit verplaatst.
# 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 devWatch memory before putting real traffic on it
No memory measurement has been made on ARM: watch it, keep the number of sites and the rule sets small on a small board, and enable swap with care (never heavy swap on an SD card).
systemctl status toutwaf-dp --no-pager
free -hBeheer de services
Beide services starten bij het opstarten. Gebruik deze commando's om ze te starten, stoppen of herstarten.
sudo systemctl enable --now toutwaf-cp toutwaf-dp
sudo systemctl restart toutwaf-cp toutwaf-dp
sudo systemctl stop toutwaf-dp toutwaf-cpControleer de 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-pagerUpgraden
Maak een back-up van de configuratie en de data en voer het installatieprogramma opnieuw uit: het behoudt uw instellingen en draait zelf terug als de nieuwe versie niet gezond wordt. De getoonde paden zijn die van een nieuwe installatie (/var/toutwaf); een oudere installatie houdt /etc/toutwaf en /var/lib/toutwaf. U kunt ook bijwerken vanuit de console, op de pagina Updates.
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/healthzVerwijderen
Het eerste blok verwijdert de services, de binaries en de door ToutWAF toegevoegde firewallregels en bewaart uw data. Het tweede wist ook configuratie, data en logs.
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh -o install.sh
sudo bash install.sh --uninstallsudo bash install.sh --uninstall --purgeWhat is not verified
We prefer to say it plainly.
- The arm64 build has been compiled and run only under emulation (QEMU): it has not been tested on any Raspberry Pi or other real ARM hardware. What this page says about real hardware is guidance, not a validated result.
- The installer has not been run on arm64 (systemd, firewall, units); the hardened release build for arm64 has not been built.
- No performance, memory or SD-card measurement has been made, and none is claimed: test your own traffic (toutwaf-dp bench) before relying on it.