feat: bannissement IP via fail2ban depuis le tableau 404 #41

Closed
opened 2026-05-06 10:55:00 +00:00 by Cédric A5L · 2 comments
Owner

Bouton par IP dans le détail 404 pour bannir via fail2ban-client set global-blacklist banip <ip>.
Nécessite une règle sudo NOPASSWD pour un compte des service dédié. Message d'erreur explicite si non configuré.

Bouton par IP dans le détail 404 pour bannir via `fail2ban-client set global-blacklist banip <ip>`. Nécessite une règle sudo NOPASSWD pour un compte des service dédié. Message d'erreur explicite si non configuré.
Author
Owner

Implémentation livrée — commit 0513afd

Le bouton 🔨 est présent dans le détail de chaque IP.
La route /errors/ban exécute :

sudo fail2ban-client set global-blacklist banip <ip>

Configuration requise sur le serveur

Ajouter dans /etc/sudoers.d/static-cdn (via visudo) :

# Remplacer <compte-service> par le compte qui exécute Gunicorn
<compte-service> ALL=(ALL) NOPASSWD: /usr/bin/fail2ban-client set global-blacklist banip *

Actuellement le service tourne sous abonnelc. Si un compte dédié est créé, mettre à jour /etc/systemd/system/static-cdn.service (User=) et le fichier sudoers.

Si le sudo nest pas configuré, le bouton affiche un message derreur explicite sans planter lapp.

## Implémentation livrée — commit `0513afd` Le bouton 🔨 est présent dans le détail de chaque IP. La route `/errors/ban` exécute : ``` sudo fail2ban-client set global-blacklist banip <ip> ``` ### Configuration requise sur le serveur Ajouter dans `/etc/sudoers.d/static-cdn` (via `visudo`) : ``` # Remplacer <compte-service> par le compte qui exécute Gunicorn <compte-service> ALL=(ALL) NOPASSWD: /usr/bin/fail2ban-client set global-blacklist banip * ``` Actuellement le service tourne sous `abonnelc`. Si un compte dédié est créé, mettre à jour `/etc/systemd/system/static-cdn.service` (`User=`) et le fichier sudoers. Si le sudo nest pas configuré, le bouton affiche un message derreur explicite sans planter lapp.
Author
Owner

Erreur rencontrée

sudo: un terminal est requis pour lire le mot de passe
sudo: il est nécessaire de saisir un mot de passe

Cause : la règle NOPASSWD nétait pas configurée sur le serveur.

Résolution appliquée sur le serveur

echo 'abonnelc ALL=(ALL) NOPASSWD: /usr/bin/fail2ban-client set global-blacklist banip *' \
  | sudo tee /etc/sudoers.d/static-cdn-fail2ban
sudo chmod 440 /etc/sudoers.d/static-cdn-fail2ban

Test validé : ban + unban de 1.2.3.4 sans mot de passe. ✓

## Erreur rencontrée ``` sudo: un terminal est requis pour lire le mot de passe sudo: il est nécessaire de saisir un mot de passe ``` Cause : la règle `NOPASSWD` nétait pas configurée sur le serveur. ## Résolution appliquée sur le serveur ```bash echo 'abonnelc ALL=(ALL) NOPASSWD: /usr/bin/fail2ban-client set global-blacklist banip *' \ | sudo tee /etc/sudoers.d/static-cdn-fail2ban sudo chmod 440 /etc/sudoers.d/static-cdn-fail2ban ``` Test validé : ban + unban de `1.2.3.4` sans mot de passe. ✓
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: alpinux.cedrica5l/alpinux-static#41
No description provided.