NL
EUR
Gratis editieGratis Installeren

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.

All ways to install

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.

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)

Check compatibility without installing

The script prints the verdict and the table of supported systems, and changes nothing on the machine.

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

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

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

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

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

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

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

Beheer de services

Beide services starten bij het opstarten. Gebruik deze commando's om ze te starten, stoppen of herstarten.

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

Controleer de 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

Upgraden

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.

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

Verwijderen

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.

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

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

Other ways to install

Learn more in the documentation