Calme jusqu'à ce qu'il se passe quelque chose.
Edge Guardian lit vos logs pour faire deux choses : bannir le mauvais trafic — scanners, brute-force, exploits — au pare-feu, et surveiller la santé de chaque site (5xx, latence, trafic), en alertant dès qu'il se dégrade. Un tableau de bord est gratuit. Un seul binaire statique. Une ligne pour l'installer.
Tout serveur public est sous le feu en permanence.
Dès qu'une machine a une IP, les bots la sondent — à la recherche de panneaux d'admin oubliés, de secrets divulgués et de mots de passe SSH faibles. Les outils qui ripostent vous obligent tous à choisir entre trop fastidieux et trop lourd.
fail2ban
Léger et éprouvé — mais ne voit qu'un seul hôte, s'appuie lourdement sur des règles regex et devient pénible dès que vous avez plus d'une machine. Aucun tableau de bord.
CrowdSec
Puissant, avec des listes de blocage communautaires — mais il faut apprendre un agent, une API locale, un bouncer et des collections. Et la jolie console ? C'est la partie payante.
Deux tâches, depuis un seul flux de logs.
Le même flux qui attrape les attaquants vous dit aussi quand un site va mal. Bloquez le mauvais trafic et sachez à l'instant où quelque chose casse — sans second outil, sans base de données, sans agent.
Bloquer le mauvais trafic.
Scanners, brute-force, sondes d'exploit et floods — comparés à une fenêtre glissante et rejetés au niveau du noyau via nftables. Les récidivistes sont punis de plus en plus durement.
- Scanners HTTP, brute-force SSH, signatures d'exploit, mauvais bots, abus de débit, scans de ports & honeypots
- Bannissements nftables à expiration automatique ; punition croissante pour les récidivistes
- Importez les listes FireHOL & Spamhaus ; liste d'autorisation CIDR pour ne jamais vous auto-verrouiller
- Mode dry-run — détecter & alerter sans bloquer, pour lui faire confiance avant de l'armer
Voir quand un site casse.
Le même log d'accès alimente une vue de santé : taux d'erreur, latence et trafic par site. Il alerte quand un site est dégradé ou hors service — et de nouveau quand il se rétablit.
- Taux de 5xx, latence p95 & débit de requêtes par site, sur une page
/sites - Alertes dégradé / hors service / rétabli avec maintien + cooldown — sans spam
- Un tableau de bord intégré gratuit : la ligne Sentinel, le journal des bannissements, le flux en direct
- Répond à « quelque chose ne va pas ? » — jamais « qui regarde quoi » (pas d'analytics)
De quoi faire tourner un vrai serveur.
Chemins de scan
Regex sur les URI des requêtes — les sondes .php/.env/wp-login qu'une stack propre ne sert jamais. Banni dès le premier coup.
Brute‑force
Compte les échecs de connexion depuis auth.log / journald. Durci contre l'injection : un nom d'utilisateur forgé ne peut pas accuser une IP innocente.
Signatures d'attaque
SQLi, traversée de chemin, sondes RCE & Log4Shell dans l'URI. Désactivé par défaut, ancré pour garder les faux positifs proches de zéro.
Bad‑bot UA
Bannit les user-agents de scanners connus — sqlmap, nikto, nuclei, masscan, wpscan — qui n'ont aucune raison honnête de vous appeler.
Abus de débit
Compte chaque requête par IP et bannit un flood type DoS-lite. Seuil élevé et conscient de la liste d'autorisation pour laisser passer les vrais clients.
Scan de ports
Compte les ports de destination distincts par IP via la journalisation nftables. Marteler un port n'est pas un scan ; en balayer plusieurs, oui.
Ports leurres
Touchez un port leurre, vous êtes banni instantanément. Le signal le plus fiable qui soit — aucune raison légitime d'y frapper.
Site healthnew
Taux de 5xx, latence p95 & débit de requêtes par site — sites découverts via nginx -T. Alertes en cas de dégradation / panne / rétablissement, avec une vue /sites.
nftables bansescalating
Rejeté au niveau du noyau via un set à expiration. Les récidivistes sont punis plus durement : un jour, une semaine, un mois, pour toujours.
Listes de blocage publiques
Importez FireHOL & Spamhaus DROP dans un interval set nftables — bloquez les plages malveillantes connues avant qu'elles ne vous atteignent.
Telegram & Email
En temps réel à chaque bannissement et à chaque alerte de santé, sur tous les canaux à la fois. Email via Resend. Pays & ASN quand GeoIP est activé.
GeoIP hors ligne
Pays, région & FAI depuis des fichiers MMDB locaux — fonctionne avec les bases sapics gratuites, sans compte MaxMind.
Allowlist & dry‑run
Liste d'autorisation CIDR pour votre bureau, VPN & supervision. Dry-run pour observer pendant des jours avant de tout activer.
Error lognew
Chaque requête 4xx/5xx au même endroit — hôte, chemin, statut, IP, user-agent et origine GeoIP — filtrable et paginée sur une page /errors.
Auto‑updatenew
Un timer systemd optionnel maintient le binaire à jour depuis les releases GitHub — binaire uniquement, avec un redémarrage sûr. Désactivé par défaut.
Un flux. Deux branches.
Chaque ligne se dédouble : la branche sécurité repère le mauvais trafic et le bannit ; la branche santé compte le statut, la latence et le débit par site et alerte en cas de problème. Ajouter un détecteur, c'est un parseur et un seuil — jamais une réécriture.
Lecture
Logs nginx, sshd & noyau — une seule lecture, distribuée aux deux branches.
Détection
Analyse l'IP source, compare à une fenêtre glissante + seuil.
Allowlist?
Vos CIDR ne sont jamais touchés. La dernière ligne de défense contre l'auto-verrouillage.
Bannir
Ajouté au set nftables avec expiration. Rejeté sur tous les ports, instantanément.
Notifier
Bannissements et alertes de santé — Telegram, email, le flux du tableau de bord & la ligne Sentinel.
Voyez qui vous attaque — et ce qui casse.
Un instrument calme qui reste silencieux jusqu'à ce que ça compte. Quand la ligne Sentinel vire au rouge, ou qu'un site passe en dégradé, ça veut dire quelque chose. Inclus dans le binaire gratuit — pas de Grafana, pas de paywall.
Opérationnel et en veille en une minute.
Démarre en dry-run : il observe sans bloquer jusqu'à ce que vous soyez prêt. Ensuite, changez une ligne.
Une ligne
Détecte votre architecture, installe le binaire + l'unité systemd et initialise nftables.
# Linux, needs nftables + root curl -fsSL https://raw.githubusercontent.com/sondt/edge-guardian/main/install.sh \ | sudo bash
.deb / .rpm
Paquets natifs pour amd64 & arm64. La config est un conffile — préservée lors des mises à jour.
# Debian / Ubuntu sudo apt install ./edge-guardian_0.4.4_linux_amd64.deb # RHEL / Rocky / Fedora sudo dnf install ./edge-guardian_0.4.4_linux_amd64.rpm
Docker
Protège le pare-feu de l'hôte via le namespace réseau de l'hôte.
docker run -d --name edge-guardian \ --network host --cap-add NET_ADMIN \ -v /etc/edge-guardian:/etc/edge-guardian \ ghcr.io/sondt/edge-guardian
Comment il se compare.
| Edge Guardian | fail2ban | CrowdSec | |
|---|---|---|---|
| Single static binary | Yes | — | — |
| One‑line install | Yes | pkg | script + repo |
| Dashboard in the free tier | Yes | — | paid / DIY Grafana |
| HTTP + SSH + port‑scan + honeypot | Yes | via rules | scenarios |
| Exploit + bad‑bot + rate‑abuse | Yes | DIY rules | scenarios |
| Per‑site health monitoring | Yes | — | — |
| nftables‑native enforcement | Yes | backend | bouncer |
| Public blocklist import | Yes | — | community |
| No external service to run | Yes | Yes | local API |
Réponses claires.
Qu'est-ce qu'Edge Guardian ?
Edge Guardian est un gardien de périphérie libre, open source et en un seul binaire pour Linux. À partir d'un seul flux de logs, il fait deux choses : sécurité — détecter scanners, brute-force et exploits, puis bannir les IP sources au pare-feu nftables — et santé en périphérie — surveiller le taux de 5xx, la latence et le débit de requêtes de chaque site, et alerter quand un site est dégradé ou hors service. Il alerte via Telegram ou email et embarque un tableau de bord local intégré.
En quoi Edge Guardian diffère-t-il de fail2ban et CrowdSec ?
fail2ban repose lourdement sur les regex, ne voit qu'un seul hôte et n'a pas de tableau de bord. CrowdSec est puissant mais exige un agent, une API locale, un bouncer et des collections — et son tableau de bord est payant. Edge Guardian est un seul binaire statique avec une installation en une ligne, un tableau de bord inclus gratuitement, et il surveille aussi la santé des sites — pas seulement la sécurité.
Que détecte Edge Guardian ?
Chemins de scanners HTTP, brute-force SSH, signatures d'exploit (SQLi, traversée de chemin, sondes RCE, Log4Shell), mauvais bots par User-Agent (sqlmap, nikto, nuclei, masscan), floods d'abus de débit / DoS-lite, scans de ports (ports de destination distincts par IP) et accès aux ports leurres. Il peut aussi importer des listes de blocage publiques comme FireHOL et Spamhaus.
Surveille-t-il la santé des sites, pas seulement les attaques ?
Oui. Le même log d'accès alimente une branche de santé qui agrège, par site, la répartition des statuts, le taux d'erreurs 5xx, le débit de requêtes et la latence p95, et alerte (avec maintien + cooldown pour éviter le bruit) quand un site est dégradé ou hors service — et de nouveau lorsqu'il se rétablit. Il ne fait délibérément pas d'analytics web : il répond à « quelque chose ne va pas ? », pas à « qui regarde quoi ? ».
Edge Guardian est-il gratuit ?
Oui. Edge Guardian est libre et open source sous licence Apache-2.0 — y compris le tableau de bord et la surveillance de santé.
De quoi Edge Guardian a-t-il besoin pour fonctionner ?
Un serveur Linux avec nftables (Debian 11+, Ubuntu 20.04+, RHEL 9+ ou équivalent) et root ou CAP_NET_ADMIN. Aucune base de données, aucun agent et aucun service externe ne sont requis.
Comment installer Edge Guardian ?
Lancez l'installateur en une ligne (curl -fsSL .../install.sh | sudo bash), installez le paquet .deb ou .rpm, ou lancez l'image Docker. Edge Guardian démarre en mode dry-run : il observe et alerte avant de bloquer.
Drop it on a box.
Forget about scanners.
Gratuit, open source, et conçu pour rester discret jusqu'à ce qu'il se passe vraiment quelque chose.