
Interfaccia web per il firewall nftables su Linux, scritta in Go. L'applicazione si annulla da sola dopo 120 secondi a meno che non la confermi: non puoi rimanere bloccato fuori. Installazione Debian e Docker.
Il tuo firewall. Le tue regole. Nessuna sorpresa.
Demo live · Documentazione · Changelog
nftables attraverso un'interfaccia web che non può chiuderti fuori: ogni applicazione si annulla da sola a meno che tu non la confermi.
Modificare una regola non cambia nulla. Applicarla cambia tutto — per 120 secondi. Se le nuove regole interrompono la tua connessione non puoi fare clic su Conferma, e non confermare è ciò che ripristina le vecchie regole.
Due processi. Quello esposto alla rete non detiene alcun privilegio che valga la pena rubare.
Una riscrittura completa dell'originale easywall — Python, Flask, iptables via
subprocess — che è stato archiviato nel 2022 dopo una CVE. Entrambe le cause profonde sono state eliminate:
i privilegi risiedono in un processo diverso, e il percorso di applicazione costruisce struct Go
invece di una riga di comando. Come funziona →
# Debian / Ubuntu — amd64 and 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
# From source — 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
Poi apri https://localhost:12227. La prima visita
configura l'account e prepara le prime regole.
| Porte | TCP e UDP, singole o intervalli, con instradamento brute-force SSH per regola |
| Blocklist e allowlist | IPv4, IPv6 e CIDR, valutate prima di qualsiasi regola di porta |
| Moduli di protezione | Dodici, cinque attivi per impostazione predefinita — flood, scansioni, bogon, frammenti, broadcast/multicast/anycast |
| Port forwarding | Reindirizzamenti NAT con selezione del protocollo |
| Regole personalizzate | nftables grezzo, con controllo di sintassi prima dell'applicazione |
| Esportazione / importazione | L'intero set di regole in JSON |
| Registro di controllo | Cosa è cambiato e quando, un oggetto JSON per riga |
| Coesistenza con Docker | Possiede table inet easywall, non tocca nient'altro |
| Inglese, Deutsch, Français | Selezionabile nell'interfaccia, anche prima dell'accesso. Una lingua può essere parziale: ciò che manca viene mostrato in inglese, e la lacuna viene segnalata invece che nascosta |
| Chiaro e scuro | Segue il sistema operativo, con un interruttore manuale; entrambi verificati per il contrasto |
| Go 1.27, binario singolo | go-chi/chi · html/template |
nftables via google/nftables | netlink diretto, nessun subprocess nft |
| Argon2id | golang.org/x/crypto, salt di 16 byte per password |
| CSRF | net/http.CrossOriginProtection, nativo di Go 1.25 |
| Design system | DESIGN.md + Tailwind v4 — nessuna libreria UI di terze parti |
| Font | Inter + JetBrains Mono, self-hosted, ~145 KB — funziona in ambienti air-gapped |
| CI | govulncheck, gosec, CodeQL, -race, e una suite di integrazione su un kernel reale |