Retour aux mises à jour
New releaseSep 4, 2026

easywall v2.14.0

Interface web pour le pare-feu nftables sous Linux, écrite en Go. La commande apply s'annule automatiquement après 120 secondes, sauf si vous la confirmez — vous ne pouvez pas vous verrouiller hors du système. Installation via Debian et Docker.

Partager

easywall

Votre pare-feu. Vos règles. Aucune surprise.

Tests Build Security Coverage

Latest release Go version GPL-3.0 Discord Support on Ko-fi

Démo en direct · Documentation · Changelog

nftables via une interface web qui ne peut pas vous enfermer dehors : chaque application s'annule d'elle-même à moins que vous ne la confirmiez.

Le tableau de bord easywall : état du pare-feu avec état d'acceptation, modifications en attente et dernière application ; tuiles comptant les ports TCP, les ports UDP, la liste noire, la liste blanche, les règles personnalisées et le transfert de port ; et une liste d'activité récente.

L'idée

Modifier une règle ne change rien. L'appliquer change tout — pendant 120 secondes. Si les nouvelles règles coupent votre connexion, vous ne pouvez pas cliquer sur Confirmer, et ne pas confirmer est ce qui ramène les anciennes règles.

Machine à états : la modification mène à Staged, l'application mène à Live, la confirmation dans la fenêtre mène à Confirmed, et laisser expirer la fenêtre mène à Rolled back, d'où les modifications en attente sont toujours disponibles.

Architecture

Deux processus. Celui exposé au réseau ne détient aucun privilège qui vaille la peine d'être volé.

Le navigateur parle HTTPS à easywall-web, qui s'exécute sans privilèges ; easywall-web parle JSON typé via un socket Unix à easywall-core, qui s'exécute en root et parle netlink à la table nftables inet easywall.

Une réécriture complète de l'easywall original — Python, Flask, iptables via sous-processus — qui a été archivé en 2022 après une CVE. Les deux causes racines ont disparu : les privilèges vivent dans un processus différent, et le chemin d'application construit des structures Go au lieu d'une ligne de commande. Comment ça marche →

Installation

Arbre de décision : simple curiosité mène au mode démo ; Debian ou Ubuntu mène au paquet .deb ; des conteneurs déjà en cours d'exécution mènent à Docker ; sinon, compiler depuis les sources.
# Debian / Ubuntu — amd64 et arm64
ARCH=$(dpkg --print-architecture)
wget https://github.com/jp1337/easywall/releases/latest/download/easywall_$ARCH.deb
sudo dpkg -i easywall_$ARCH.deb && sudo apt-get install -f

# Docker
git clone https://github.com/jp1337/easywall.git && cd easywall && docker compose up -d

# Depuis les sources — Go 1.27+, nftables
git clone https://github.com/jp1337/easywall.git && cd easywall
make build && sudo make install
sudo systemctl enable --now easywall-core easywall-web

Ensuite, ouvrez https://localhost:12227. La première visite configure le compte et met en attente les premières règles.

Ce que vous obtenez

PortsTCP et UDP, simples ou par plage, avec routage anti-force brute SSH par règle
Liste noire et liste blancheIPv4, IPv6 et CIDR, évaluées avant toute règle de port
Modules de protectionDouze, cinq activés par défaut — inondations, scans, bogons, fragments, diffusion/multidiffusion/anycast
Transfert de portRedirections NAT avec sélection du protocole
Règles personnaliséesnftables bruts, vérifiés syntaxiquement avant application
Export / importL'ensemble du jeu de règles au format JSON
Journal d'auditCe qui a changé et quand, un objet JSON par ligne
Coexistence avec DockerPossède table inet easywall, ne touche à rien d'autre
Anglais, Deutsch, FrançaisCommutable dans l'interface, y compris avant la connexion. Une langue peut être partielle : ce qui manque s'affiche en anglais, et l'écart est signalé plutôt que masqué
Clair et sombreSuit le système d'exploitation, avec un basculement manuel ; les deux vérifiés en contraste

Construit avec

Go 1.27, binaire uniquego-chi/chi · html/template
nftables via google/nftablesnetlink direct, pas de sous-processus nft
Argon2idgolang.org/x/crypto, sel de 16 octets par mot de passe
CSRFnet/http.CrossOriginProtection, natif Go 1.25
Système de conceptionDESIGN.md + Tailwind v4 — aucune bibliothèque d'interface tierce
PolicesInter + JetBrains Mono, auto-hébergées, ~145 Ko — fonctionne hors ligne
CIgovulncheck, gosec, CodeQL, -race, et une suite d'intégration contre un vrai noyau

Obtenir de l'aide

Une question, ou quelque chose qui ne se comporte pas comme prévuDiscord
Un bug, ou une fonctionnalité souhaitéeProblèmes GitHub
Une vulnérabilité de sécuritéAvis de sécuritépas sur Discord, et pas un problème public

Contribuer

Configuration, conventions de commit et liste de contrôle de revue : CONTRIBUTING.md. Tout ce qui est visuel passe d'abord par DESIGN.md.

Problèmes de sécurité : pas comme problème public — utilisez GitHub Security Advisories.

Licence

GPL-3.0 — voir LICENSE.

Catégories