Saltar al contenido principal

Monitor de seguridad

¿Para qué sirve?​

Un sitio publicado en internet recibe intentos de ataque todos los días, aunque nadie lo conozca: hay programas que recorren direcciones al azar probando contraseñas y buscando descuidos. Casi siempre no consiguen nada y nadie se entera de que ocurrió.

Este módulo mira las visitas que llegan y reconoce las que tienen forma de ataque:

  • Fuerza bruta en el acceso: alguien probando contraseñas una tras otra.
  • Escaneo de direcciones: pedidos a rutas que tu sitio no tiene y que sólo buscan las herramientas de ataque (/wp-admin, /phpmyadmin, /.env).
  • Intentos de inyección: fragmentos de código metidos en la dirección para leer tu base de datos o ejecutar algo en el navegador de un visitante.
  • Herramientas de escaneo que se identifican por su nombre.
  • Rarezas en las cuentas del panel: un administrador que aparece de golpe desde otra dirección, o la misma cuenta activa desde dos lugares a la vez.

Cada hallazgo queda registrado con la hora, la dirección de origen y exactamente qué se pidió, y —según cómo lo configures— te llega un aviso y la dirección queda bloqueada.

No reemplaza al hosting

Esto mira lo que llega a tu aplicación. Los ataques que tu servidor corta antes (una petición a un archivo bloqueado, por ejemplo) no aparecen aquí, porque nunca llegaron. Es una capa más, no la única.

¿Cuándo lo necesitas?​

  • Tu sitio está publicado en internet y quieres saber si alguien lo está golpeando.
  • Alguien te reportó accesos raros y necesitas ver qué pasó y desde dónde.
  • Quieres cerrarle la puerta a una dirección concreta sin tocar el servidor.

Si tu instalación es interna y no se alcanza desde internet, este módulo te dirá muy poco: casi todo lo que detecta viene de afuera.

Cómo activarlo​

En el menú lateral: Agregar Sección → Tipo: Plugin → Monitor de seguridad. También puedes recuperarlo desde Configuración → Módulos.

Al agregarlo se crean sus tablas y se siembran las diez reglas de fábrica, ya listas. Hasta que lo agregues, el módulo no hace nada: no vigila, no registra y no consume recursos.

Configuración inicial​

El módulo arranca en modo alerta: registra y avisa, pero no bloquea a nadie. Es a propósito — una regla mal calibrada bloqueando gente el primer día es peor que el problema que resuelve.

La configuración vive en plugins/security-monitor/config.php (cópialo desde config.example.php):

AjustePara qué sirve
modealert registra y avisa; enforce además bloquea cuando una regla lo pide.
allowlist_ipsDirecciones que nunca se inspeccionan. Pon aquí la tuya: es el seguro contra quedarte fuera.
trusted_proxiesSólo si tu sitio está detrás de Cloudflare o de otro intermediario. Ver más abajo.
alerts.min_severityDesde qué gravedad se avisa. Por defecto medium.
alerts.throttle_minutesCada cuánto se repite un aviso de la misma regla y la misma dirección. Un escaneo produce miles de hallazgos; sin esto el aviso sería el ataque.
alerts.notify_adminsQué cuentas reciben el aviso. Vacío significa todos los administradores.
alerts.email_toCorreos de fuera del panel (una casilla de guardia, por ejemplo).
retention_daysCuántos días de historial se conservan. Por defecto 30.
Si tu sitio está detrás de Cloudflare o de un intermediario

Sin configurar trusted_proxies, el módulo verá la dirección del intermediario en vez de la del visitante, y los bloqueos no servirán de nada. Peor: si aceptara esa información de cualquiera, un atacante podría escribir la dirección que quisiera y saltarse el bloqueo. Por eso viene vacío y hay que declarar a mano qué direcciones tienen permiso para decir quién es el visitante real.

Cómo se usa día a día​

La sección tiene cuatro pestañas.

Resumen​

Cuatro cifras de las últimas 24 horas —eventos, gravedad alta, crítica y direcciones bloqueadas— y la lista de las direcciones con más hallazgos, con un botón para bloquear cada una al instante.

Timeline​

Todo lo que pasó, de lo más reciente a lo más viejo, con filtros por dirección, gravedad, regla y fechas. La lista se recorre por páginas: el número al lado del título es el total del filtro, no el de la página que estás viendo.

La lupa de cada fila abre el detalle: qué se pidió exactamente, con qué parámetros, qué navegador dijo ser y si se avisó a alguien. Es lo que necesitas para decidir si fue un ataque o un falso positivo.

IPs bloqueadas​

Quién está bloqueado, desde cuándo, hasta cuándo y por qué. Puedes levantar un bloqueo o poner uno a mano, con duración o permanente.

Reglas​

Las diez reglas, cada una con su explicación. De cada una decides:

  • Vigilar esto: encendido o apagado.
  • Gravedad: cuánto pesa, y por lo tanto si genera aviso.
  • Qué se hace: Registrar (sólo queda anotado), Alertar (además avisa) o Bloquear (además corta el acceso, y sólo si el modo global es enforce).
  • Parámetros: cuántos intentos, en cuánto tiempo, qué patrones.
El orden para llegar a bloquear

Deja el módulo en modo alerta una o dos semanas. Mira el Timeline: si lo que sale son ataques de verdad y no visitas legítimas, recién ahí pon enforce en la configuración y marca Bloquear en las reglas que te convencieron.

Se conecta con​

  • Notificaciones: los avisos llegan a la campana del panel y por correo, y cada persona elige cómo los quiere en Notificaciones → Mis preferencias.
  • Configuración → Correo: el texto del aviso es una plantilla editable, como todos los demás correos del sistema.
  • Roles y Permisos: quién puede abrir la sección se decide ahí, como en cualquier otro módulo.

Preguntas frecuentes​

¿Va a hacer más lento mi sitio? Mientras no agregues la sección, el módulo no se ejecuta en absoluto. Una vez agregado, revisa cada visita contra las reglas y sólo escribe en la base cuando encuentra algo; las imágenes, hojas de estilo y demás archivos ni se miran.

¿Puede dejarme fuera de mi propio panel? En modo alerta, no: no bloquea a nadie. En modo enforce sí podría, y por eso existe allowlist_ips — pon ahí tu dirección antes de cambiar el modo. Si aun así te pasara, el bloqueo se borra desde la base de datos (tabla sec_bans) o volviendo el modo a alert.

Un administrador cambió de red y saltó una alerta. ¿Está mal? No, está bien: la regla avisa, no acusa. Cambiar de casa a la oficina la dispara. Si te molesta, bájale la gravedad o apágala.

¿Bloquea al atacante o a toda la oficina? Bloquea una dirección. Si varias personas comparten la misma conexión, comparten la dirección. Por eso las reglas que bloquean se activan de a una y con calma.

¿Cuánto historial guarda? Treinta días por defecto (retention_days). La limpieza se hace sola cuando alguien abre la sección, como mucho una vez por hora. Los bloqueos no se borran: son decisiones, no registros.

¿Sirve contra un ataque de denegación de servicio? No. Eso se corta antes de llegar a tu aplicación, en el hosting o en un servicio como Cloudflare. Este módulo mira el contenido de las visitas, no su volumen.

¿Qué sigue?​