You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Panel detection: auto-detecta Plesk, cPanel, DirectAdmin, aaPanel, ISPConfig
y emite warn + telemetría con nota de coexistencia específica por panel.
fail2ban logtarget check: fatal si está en SYSTEMD-JOURNAL o SYSLOG
(el agente lee archivo, no journal). Antes el agente arrancaba OK pero zero
reports forever — fallo silencioso devastador.
SELinux auto-configure: si Enforcing → semanage fcontext var_log_t + restorecon + setsebool daemons_use_tty. Skip con --skip-selinux.
/etc/os-release PRETTY_NAME: ahora aparece en banner + telemetría
install-event (antes solo uname -s -r genérico). El panel del cliente
muestra "Ubuntu 24.04 LTS" en vez de "Linux 6.8.0".
fail2ban version min check: warn no-fatal si <0.10.
--dry-run: ejecuta TODAS las checks sin modificar nada. Ideal para
auditoría pre-compra en compliance.
Health check E2E post-install: verifica systemctl active + log producido
POST /heartbeat responde 200. Detecta install OK pero servicio roto.
Verificación SHA-256 del tarball: descarga sidecar abuse-shield-agent-X.Y.Z.tar.gz.sha256, valida con sha256sum -c. Fatal
si mismatch; no bloqueante si el sidecar no existe.
--tarball=PATH: usa tarball local (airgapped / hospitales / banca).
--auto-update: instala systemd timer semanal (Sun 03:00 ± 2h) que
checkea GitHub /releases/latest y se auto-reinstala con --reinstall.
Soporte SUSE / openSUSE (zypper) además de apt/dnf/yum/apk.
--reinstall: descarga + ejecuta uninstall.sh, luego reinstala. One-shot
upgrade desde el campo.
Added — installer (extra)
Auto-detección LXC con systemd-detect-virt + fallback /proc/1/cgroup.
Si LXC sin privilegios: comenta ProtectSystem / ProtectHome / PrivateTmp / ReadWritePaths del systemd unit (mount namespacing requiere CAP_SYS_ADMIN
que no hay en LXC unprivileged → exit code 226/NAMESPACE). Sin esto el
agente NUNCA arrancaba en containers LXC.
Fixed — agent (críticos)
Reader cold-boot OOM: _load_offset() ahora arranca en EOF del log si
no hay state file previo (cold boot en host nuevo). En hosts con /var/log/fail2ban.log >100MB acumulados, el peak RSS pasaba de ~900MB →
OOM kill del agente. Con tail-mode el peak es ~50MB en estado estable.
_stop attribute collision: heartbeat.py, puller.py y main.py
sobreescribían self._stop = threading.Event(), ocultando el método _stop() heredado de threading.Thread. Eso rompía .join() con TypeError: 'Event' object is not callable en shutdown. Renombrado a self._stop_event en los 3 archivos.