FR
EUR
Édition gratuiteGratuit Installer

Installer ToutWAF sur Debian et Ubuntu

Les commandes pour Debian et Ubuntu : préparer le système, lancer l'installateur en une ligne, ouvrir le pare-feu ufw, vérifier les services, mettre à jour et désinstaller.

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

  • Debian 11 et suivants, Ubuntu 20.04 et suivants, en amd64 et arm64. Il faut systemd 239 ou plus et glibc 2.28 ou plus.
  • L'installateur ajoute les prérequis manquants (curl, tar, libcap), crée un utilisateur sans privilège et installe les services systemd durcis toutwaf-dp (ports 80 et 443) et toutwaf-cp (console, port 9443).
  • Si ufw est actif, il ouvre 80 et 443 et le port 9443 de la console (restreignez-le à votre réseau d'administration avec --console-from). Le port 9444 n'est jamais ouvert automatiquement.
  • SELinux n'est pas utilisé par défaut sur Debian et Ubuntu et aucun profil AppArmor n'est fourni : le bac à sable de systemd sert de confinement.

Les commandes, pas à pas

Installer les prérequis (apt)

bash
sudo apt update && sudo apt -y upgrade
sudo apt -y install curl tar ca-certificates ufw

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

Vous préférez lire le script d'abord ?

Téléchargez-le, relisez-le, puis exécutez-le. Recommandé pour les serveurs de production.

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

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

Ouvrir le pare-feu (ufw)

L'installeur ouvre ces ports par défaut quand firewalld ou ufw est actif : 80 et 443, et le port 9443 de la console (limitez-le à votre réseau d'administration avec --console-from). Le port 9444 des agents n'est jamais ouvert au public. Ces commandes ne servent qu'avec --no-firewall, avec un autre pare-feu, ou pour le faire à la main.

ufw
sudo ufw allow 80,443/tcp
sudo ufw allow from 203.0.113.0/24 to any port 9443 proto tcp
sudo ufw --force enable
sudo ufw status

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.

  • « Testé » veut dire que l'installation complète a réussi dans un conteneur avec systemd sur cette version ; elle n'a pas été essayée sur une machine neuve réelle.
  • Aucune version stable n'existe encore : la version publique est la version de développement 0.3.0-dev.

Autres façons d'installer

En savoir plus dans la documentation