fix(erreurs): cache multi-worker + sudo service account pour fail2ban
- Invalidation du cache 404 basée sur mtime de ignored_ips.json (tous les workers gunicorn voient la mise à jour) - Chemins complets /usr/bin/sudo et /usr/bin/fail2ban-client pour éviter les erreurs PATH dans systemd - Version 1.5.1 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
a94bf12e4d
commit
7b9024ab05
3 changed files with 13 additions and 3 deletions
|
|
@ -1,5 +1,14 @@
|
|||
# Changelog — Alpinux Static
|
||||
|
||||
## [1.5.1] — 2026-05-06
|
||||
|
||||
### Corrigé
|
||||
- Ignorer une IP : le cache 404 n'était pas invalidé dans tous les workers gunicorn — basculé sur une invalidation par `mtime` de `ignored_ips.json`
|
||||
- Bannir une IP : chemins binaires complets (`/usr/bin/sudo`, `/usr/bin/fail2ban-client`) pour éviter les problèmes de `PATH` dans le contexte du service systemd
|
||||
- Règle sudoers corrigée pour l'utilisateur `static-cdn` (compte de service) au lieu de `abonnelc`
|
||||
|
||||
---
|
||||
|
||||
## [1.5.0] — 2026-05-06
|
||||
|
||||
### Ajouté
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
1.5.0
|
||||
1.5.1
|
||||
|
|
|
|||
|
|
@ -514,7 +514,8 @@ def _log_files_404(days: int = 7) -> list:
|
|||
def _parse_404s(days: int = 7) -> dict:
|
||||
global _404_CACHE, _404_CACHE_TS
|
||||
now = time.time()
|
||||
if now - _404_CACHE_TS < _404_CACHE_TTL and _404_CACHE:
|
||||
ign_mtime = _IGNORED_IPS_FILE.stat().st_mtime if _IGNORED_IPS_FILE.exists() else 0
|
||||
if now - _404_CACHE_TS < _404_CACHE_TTL and _404_CACHE and ign_mtime <= _404_CACHE_TS:
|
||||
return _404_CACHE
|
||||
|
||||
ignored = _load_ignored_ips()
|
||||
|
|
@ -895,7 +896,7 @@ def errors_ban():
|
|||
return jsonify({"error": "IP invalide"}), 400
|
||||
try:
|
||||
r = subprocess.run(
|
||||
["sudo", "fail2ban-client", "set", jail, "banip", ip],
|
||||
["/usr/bin/sudo", "/usr/bin/fail2ban-client", "set", jail, "banip", ip],
|
||||
capture_output=True, text=True, timeout=10
|
||||
)
|
||||
if r.returncode == 0:
|
||||
|
|
|
|||
Loading…
Reference in a new issue