Panic Guard — Script anti-flood (iptables) avec menu, traces & rollback
Panic Guard — Anti-flood script (iptables) with menu, traces & rollback
Panic Guard est un script Bash conçu pour les situations “serveur en feu” : montée brutale des connexions sur 443, saturation TLS, bots, scrapers ou flood. L’objectif est d’agir vite sans agir à l’aveugle : le script propose un menu interactif, un résumé des actions, un mode DRY-RUN, une mémoire persistante (config), et une fonction Cancel/Rollback pour retirer uniquement les règles ajoutées par le script.
- Observe le port (
443par défaut) viass, calcule les IP “top talkers”. - Prépare une liste de blocage (IP, /24 ou /16) selon tes paramètres.
- Affiche un preview + te demande une confirmation explicite
YES. - Ajoute les règles iptables en tête de chaîne et journalise tout.
- Crée un snapshot de rollback pour pouvoir annuler.
Parce qu’en flood HTTPS, la charge arrive avant l’HTTP (TCP/TLS). Le firewall coupe au plus tôt.
Étape 1 — Installation sur le serveur
Step 1 — Install on the server
/usr/local/sbin/ (ou ton répertoire “toolbox”). Le script conserve sa mémoire dans /var/lib/panic-guard/ et log dans /var/log/panic-guard.log.1) Installer
1) Install
sudo nano /usr/local/sbin/panic_guard.sh
sudo chmod +x /usr/local/sbin/panic_guard.sh2) Dépendances (présentes par défaut)
2) Dependencies (usually present)
# requis
ss
iptables
awk / sed / sort / uniq/usr/local/sbin + droits stricts).Étape 2 — Utilisation (menu interactif)
Step 2 — Usage (interactive menu)
DRYRUN=1. On observe → on preview → on applique.sudo /usr/local/sbin/panic_guard.shFonctions du menu
Menu functions
Show status : affiche le total de connexions sur le port + top IP (volume).
Edit config : saisie guidée (port, seuil, mode ip/24/16, whitelist).
APPLY commence par un preview, puis exige YES.
ROLLBACK retire uniquement ce que Panic Guard a ajouté (snapshot).
Exemples de paramètres recommandés
Recommended parameter examples
MODE=ip + augmente MIN_CONN. Et utilise la whitelist.Étape 3 — Cancel / Rollback (désenclencher proprement)
Step 3 — Cancel / Rollback (clean undo)
Le script écrit une liste de commandes de suppression dans un snapshot (ex: /var/lib/panic-guard/snapshot.rules). En cas de “sur-blocage”, tu reviens au menu et tu lances ROLLBACK.
# via menu : Option "ROLLBACK"
sudo /usr/local/sbin/panic_guard.shSécurité & Bonnes pratiques
Security & best practices
1) Toujours DRY-RUN avant d’appliquer
DRYRUN=1, regarde le preview, vérifie la whitelist, puis bascule DRYRUN=0.2) Whitelist obligatoire (ton IP / VPN / monitoring)
WHITELIST="MON.IP.PUBLIQUE,10.0.0.0/24"3) Persistance au reboot (optionnel)
4) Quand passer à Cloudflare / WAF
À propos
About
Licence
Usage interne IDEO-Lab. Tu peux le packager “toolbox” si tu veux.
Auteur
Développé pour Ideo-Lab — DevOps, DBA, Performance, Cloud Engineering.
Contact : contact@ideo-lab.com
Emplacements (par défaut)
- Config :
/var/lib/panic-guard/config.conf - Snapshot rollback :
/var/lib/panic-guard/snapshot.rules - Logs :
/var/log/panic-guard.log
