¿Buscas una visión general? Visita la página principal del plugin para conocer las funciones, los precios y los pasos de instalación. Esta página es la referencia técnica.
Plugin de WordPress — ReportedIP (Edición completa)
ReportedIP es un plugin de seguridad para WordPress impulsado por la comunidad. Convierte cada sitio protegido en un sensor: cuando un sitio sufre un ataque, la red aprende y todos los demás sitios pueden rechazar al atacante antes de que se reciba la primera solicitud. Información sobre amenazas en tiempo real, trece sensores de ataque, autenticación de dos factores (2FA) con cuatro métodos y escalado progresivo de bloqueos. Código abierto, publicado bajo la licencia GPLv2+ en GitHub.
vX.Y.Z.
Instalación
Descargar el complemento
Consigue lo último reportedip-hive.zip del Página de lanzamientos de GitHub, o descárgalo desde tu Panel de control.
Instalar y activar
Ve a «Plugins» → «Añadir nuevo» → «Subir plugin » en el panel de administración de WordPress, selecciona el archivo ZIP, haz clic en «Instalar ahora» y, a continuación, en «Activar».
Ejecuta el asistente de configuración
Tras la activación, se inicia automáticamente el asistente de configuración de ocho pasos. Este te guiará a través del modo de funcionamiento, la clave API, los umbrales de ataques de fuerza bruta, la lista de usuarios con 2FA, las reglas de retención, el slug de ocultación de inicio de sesión y el pie de página automático opcional.
Mantente al día
El verificador de actualizaciones integrado (Plugin Update Checker v5.6+) consulta GitHub Releases cada 12 horas. Las nuevas versiones aparecen en WordPress Complementos Se instalará como cualquier otra actualización de complemento, sin necesidad de reinstalarlo manualmente. Formato de etiqueta fijada: vX.Y.Z.
Asistente de configuración (9 pasos)
El asistente se ejecuta la primera vez que se activa y se puede volver a iniciar en cualquier momento desde la configuración del complemento. Cada paso se guarda al instante, por lo que puedes detenerlo y reanudarlo.
| Paso | Qué configura |
|---|---|
| 1. Bienvenidos | Introducción, enlace a la documentación e importación opcional con un solo clic de un archivo JSON de configuración ya exportado. |
| 2. Conectar | Modo de funcionamiento (Local Shield / Community Network), clave API con validación en tiempo real a través de reportedip.de. |
| 3. Protección | Inicio de sesión / spam en comentarios / XMLRPC / escaneo de errores 404 / umbrales y intervalos de tiempo para ráfagas REST, opción de «solo informe», estrategia de duración del bloqueo (duración fija frente a escalonamiento progresivo). |
| 4. Autenticación de dos factores | Activar o desactivar cada uno de los cuatro métodos (TOTP, correo electrónico, SMS, WebAuthn), aplicar roles, días de gracia y la caducidad de los dispositivos de confianza. |
| 5. Privacidad | Conservación de datos, anonimización automática, nivel de registro, activación/desactivación del registro detallado. |
| 6. Notificaciones | Destinatarios (separados por comas, validados mediante is_email()), nombre del remitente / dirección de correo electrónico del remitente para el correo transaccional, sincronización opcional de la lista de contactos con la cuenta reportedip.de. |
| 7. Iniciar sesión | Ocultar el slug de la URL de inicio de sesión (3-50 caracteres; se rechazan los slugs incluidos en la lista negra), modo de respuesta para la antigua /wp-login.php (página bloqueada o error 404). |
| 8. Promover | Banner opcional en el pie de página, variante (insignia / escudo / banner / estadística) y alineación. |
| 9. Listo | Resumen de finalización, enlace al panel de control. |
Modos de funcionamiento
Dos modos: cambia entre ellos en cualquier momento sin perder los datos locales.
| Característica | Escudo local | Red comunitaria |
|---|---|---|
| Los trece sensores de ataque | Sí | Sí |
| Autenticación de dos factores con 4 métodos + dispositivos de confianza + códigos de recuperación | Sí | Sí |
| Escalada progresiva de bloques | Sí | Sí |
| Ocultar la URL de inicio de sesión | Sí | Sí |
| Consultas de reputación de IP en la base de datos Hive | No | Sí (a través de la API) |
| Informes de ataques anonimizados que se envían a la comunidad | No | Sí (automático) |
| Se requiere una clave API | No | Sí (hay un plan gratuito disponible) |
| Los datos salen de tu servidor | Nunca | Solo la IP del atacante + categoría de amenaza + marca de tiempo |
Qué incluye cada nivel
El complemento Hive funciona plenamente en el plan gratuito: protección local, los trece sensores y los cuatro métodos de autenticación de dos factores. Los planes de pago incluyen infraestructura de entrega gestionada (correo electrónico y SMS) y mayores cuotas de la red comunitaria. Consulta la página de precios para ver la comparación completa y realizar la actualización.
| Gratis | Colaborador | Profesional | Business | Empresa | |
|---|---|---|---|---|---|
| Precio al mes (IVA incluido) | 0 € | 0 € | 14,90 € | 39,00 € | Desde 663 € |
| Precio anual (≈ 17 % de descuento) | 0 € | 0 € | 149 € | 389 € | Personalizado |
| Plazo mínimo | — | — | Mensual | Mensual | 12 meses |
| Comprobaciones de la API al día | 1,000 | 5,000 | 25,000 | 100,000 | Ilimitado |
| Detección y notificación de rutas de señuelo (archivo .htaccess gestionado automáticamente, a partir de la versión 2.0.11) | Sí | Sí | Sí | Sí | Sí |
| Modo de refuerzo contra ataques coordinados (desde la versión 2.0.8) | — | — | Sí | Sí | Sí |
| Informes al día | 50 | 200 | 1,000 | 5,000 | Ilimitado |
| Lista de amenazas de la comunidad (lista negra diaria) | — | Sí | Sí | Sí | Sí |
| Dominios por licencia | 1 | 1 | 3 | 15 | Ilimitado |
| Correos electrónicos de 2FA al mes (SMTP gestionado) | — | — | 500 | 2,500 | Ilimitado (uso razonable) |
| SMS de autenticación de dos factores al mes (servicio de retransmisión gestionado a nivel mundial) | — | — | 25 | 75 | Personalizado |
| SMS bundles de prepago SMS bundles 50 / 200 / 500 SMS a 14,90 / 49,90 / 99,90 €, IVA incluido) | — | — | Sí | Sí | Sí |
| mail bundles prepagados mail bundles 1 000 / 5 000 / 25 000 correos a 4,90 / 14,90 / 49,90 €, IVA incluido) | — | — | Sí | Sí | Sí |
| Plantillas de correo personalizadas con la marca | — | — | — | Sí | Sí |
| Informes y análisis sobre el uso de la autenticación de dos factores | — | — | Sí | Sí | Sí |
| Políticas de autenticación de dos factores configurables según el rol de usuario | — | — | Sí | Sí | Sí |
| Limitar los horarios de inicio de sesión de los usuarios (por rol / por usuario) | — | — | — | Sí | Sí |
| Operaciones masivas y análisis | — | — | Sí | Sí | Sí |
| Panel de control multisitio en reportedip.de | — | — | Sí | Sí | Sí |
| Marca blanca (asistente de configuración, páginas de autenticación de dos factores, plantillas de correo electrónico) | — | — | — | Sí | Sí |
| WooCommerce Frontend-2FA (reto temático en la tienda) | — | — | Sí | Sí | Sí |
| Integración completa con WooCommerce (plantillas de marca blanca, auditoría de suscripciones y membresías) | — | — | — | Sí | Sí |
| Scripts completos de WP-CLI | — | — | — | Sí | Sí |
| Herramienta de exportación de datos del RGPD | — | — | — | Sí | Sí |
| Informe semanal de seguridad (PDF por correo electrónico) | — | — | Sí (semanal) | Sí (opcional, todos los días) | Sí |
| Copia de seguridad en la nube de la configuración de Hive | — | — | 30 d | 90 d | 1 año |
| Conservación de registros | 30 d | 30 d | 90 d | 1 año | Configurable |
| Soporte técnico de SLA | Comunidad | Comunidad | Correo electrónico en 48 horas | Prioridad 12 h | Teléfono 4 h |
| AVV / DPA personalizados | — | — | — | — | Sí |
Business de varias licencias. Todas Business indicadas anteriormente corresponden a una sola licencia. Al finalizar la compra, puede adquirir Business , 5, 10 o 20 licencias (o modificarlo más tarde en el Portal de clientes de Stripe), y el número de comprobaciones/informes diarios, el límite mensual de correos electrónicos/SMS de 2FA y el número de dominios se adaptarán al número de licencias que adquiera; por ejemplo, 5 licencias = 75 dominios y 500 000 comprobaciones al día. Se aplica automáticamente un descuento por volumen a partir de x2. La versión PRO sigue siendo de una sola licencia; las cifras de la versión Enterprise son ilimitadas (uso razonable) y nunca se multiplican.
Pedido de consumo de lotes (PRO y Business): primero se consume la asignación mensual incluida (25 SMS / 500 correos electrónicos en PRO, 75 / 2500 en Business) y, a continuación, el saldo del paquete de prepago. Una vez agotados ambos, la API devuelve un código HTTP 429 y Hive recurre a la conexión local wp_mail() para el correo electrónico (o SMS con límite máximo) — los demás métodos de autenticación de dos factores siguen funcionando. Los créditos del paquete nunca caducan. Stripe utiliza tax_behavior = inclusive En el caso de los paquetes con precio bruto (conformes a la PAngV), Stripe Tax gestiona automáticamente la inversión del sujeto pasivo y el OSS.
- 2.0.7 — Reestructuración del presupuesto de la API interna. El limitador de velocidad interno por hora se ha dividido ahora en tres grupos independientes (consultas de reputación, envíos de informes y sincronización de metadatos/cuotas); así, una avalancha de bots en un grupo ya no puede bloquear los demás. Los límites por grupo se ajustan automáticamente según el nivel de actividad (cuanto más se agote la cuota diaria, mayor será el margen para picos de tráfico). El sistema heredado «Número máximo de llamadas a la API por hora» establecer los valores predeterminados en
0= automático / vinculado al nivel; los administradores deben mantener eso en0viene con valores predeterminados razonables de serie; la cuota diaria sigue siendo el límite visible. - 2.0.8 — Fortalecimiento contra ataques coordinados (PRO+). Cuando la red detecta que hay ≥ 3 direcciones IP que generan ≥ 20 intentos fallidos de inicio de sesión por minuto, Hive endurece los umbrales durante 60 minutos: fuerza bruta 5 / 15 min → 2 / 5 min, bloqueo por reputación 75 % → 60 %. Activación en tiempo real a través de
wp_login_failed(60 s de retardo de rebote), cron-sweep como medida de seguridad. WP-CLI:wp reportedip hardening status|activate|deactivate. - 2.0.9 — Bloqueo de ataques de ruta señuelo (Gratis). Sensor de ruta de cebo en cada nivel: una sola solicitud contra
.env.backup,wp-config.old.php,db-dump-master.sql.php,admin-shell-console.phpetc. se registra y se reenvía a la cola de la comunidad. No hay archivos señuelo físicos en el disco. Amplía la lista de señuelos mediante un filtroreportedip_hive_decoy_paths. (Comportamiento del bloque mejorado en la versión 2.0.11 — véase más abajo.) - 2.0.10 — Corrección de un error en la ruta del señuelo. Ahora el sensor responde
report_only_mode(registra el evento sin enviar el 403 ni salir) y coincide con los nombres de los señuelos ocultos tras los prefijos de los subdirectorios (/site-a/.env.backup) en instalaciones de Multisite en subdirectorios mediante un recurso de reserva basado en el nombre base.
.htaccess. El sensor ya no detecta la ruta del bloque de IP local: una sola visita a la ruta trampa sigue devolviendo un error 403 y genera un informe de la comunidad de gravedad alta, pero la IP de origen es no bloqueado durante 24 horas a nivel local. Esto evita que los plugins de copia de seguridad legítimos (un caso aislado wp-config.old.php), pruebas de administración o rastreadores obsoletos que impidan que un sitio web reciba su propio tráfico. Apache .htaccess ahora se gestiona automáticamente mediante un bloque marcador (# BEGIN ReportedIP Hive Decoy / # END ReportedIP Hive Decoy) situado arriba # BEGIN WordPress — esa es la única ubicación en la que un archivo señuelo real en el disco (.env.backup (dejada por el compositor, etc.) se redirige de forma fiable a través de WordPress en lugar de ser servida directamente por Apache. El autor utiliza WP-Core insert_with_markers(), se cura a sí mismo una vez por hora en admin_init, y expone Autogestionado / Solo lectura estado en el cuadro «Configuración». Los fragmentos de configuración del servidor en «Configuración» ahora se reescriben como /index.php (Apache: RewriteRule ^ /index.php [L,QSA]; nginx: rewrite ^ /index.php last;) — nunca [F,L] o return 403, lo que evitaría por completo el uso de PHP y desactivaría tanto el registro local como el informe de la comunidad. La migración a la versión 7 elimina los datos obsoletos decoy_pathblock:* filas en wp_reportedip_hive_blocked a partir de la versión 2.0.9 / 2.0.10 y elimina la ya obsoleta reportedip_hive_decoy_block_hours opción.
Defensa de 5 capas
Hive aplica sus comprobaciones de forma secuencial: cada capa puede interrumpir la solicitud antes de que llegue a la siguiente. Conectado a init con prioridad 1, para que los demás complementos no se ejecuten en el caso de una IP bloqueada.
- Lista blanca: las direcciones IP y los rangos CIDR de confianza siempre tienen acceso permitido (tu oficina, servicios de monitorización, etc.).
- Lista de bloqueados local — Direcciones IP que has bloqueado manualmente o que han superado los límites locales. Almacenadas en
wp_reportedip_hive_blocked. - Contadores de intentos: los contadores de inicio de sesión, comentarios, XMLRPC, ráfagas REST y escaneos 404 activan un bloqueo automático una vez que se alcanza el umbral.
- Reputación de la comunidad: en el modo «Red de la comunidad», las direcciones IP con un nivel de confianza igual o superior al umbral se bloquean en el perímetro.
- Requisito de autenticación de dos factores: las cuentas protegidas deben completar un segundo factor para iniciar sesión.
Los trece sensores de ataque
Cada sensor se puede activar o desactivar y ajustar de forma independiente en Ajustes → Protección.
| Sensor | Qué ve | Umbral predeterminado |
|---|---|---|
| Inicio de sesión por fuerza bruta | Intentos fallidos de inicio de sesión por IP a través de wp_login_failed. | 5 en 15 minutos |
| Comentarios spam | Comentarios por IP a través de comment_post. | 5 en 60 minutos |
| Uso indebido de XMLRPC | Llamadas XMLRPC por IP a través de xmlrpc_call. | 10 en 60 minutos |
| Avalancha de solicitudes a la API REST | Solicitudes REST anónimas por IP. Los puntos finales del banner de cookies se omiten de forma predeterminada (real-cookie-banner, complianz, borlabs-cookie, cookie-law-info). | 240 en 5 minutos |
| 404 / detector de escaneo | Altos índices de errores 404 y activación instantánea en rutas de honeypot (.env, .git/config, wp-config.php.bak, …). | 12 en 2 minutos |
| Detección y notificación de rutas engañosas | Rutas de cebo (.env.backup, wp-config.old.php, db-dump-master.sql.php, admin-shell-console.php, …). Una sola solicitud devuelve un error 403 y pone en cola un alto-informe de la comunidad sobre la gravedad — pero ¿ no provocaría un bloqueo de IP local de 24 horas, por lo que un complemento de respaldo que escriba wp-config.old.php ni un administrador que pruebe la URL de cebo puede bloquear el acceso al sitio desde su propio tráfico. Apache .htaccess se gestiona automáticamente (bloque de marcadores # BEGIN ReportedIP Hive Decoy situado encima # BEGIN WordPress a través de insert_with_markers()) de modo que los archivos de cebo reales del disco se redirigen a través de WordPress en lugar de ser servidos directamente por Apache. Los administradores de Nginx solo tienen que copiar y pegar rewrite ^ /index.php last; fragmento en «Configuración». Filtro reportedip_hive_decoy_paths amplía la lista de cebos. | 1 visita = 403 + denuncia de la comunidad |
| Enumeración de usuarios | Bloques ?author=N, /wp-json/wp/v2/users, búsquedas de usuarios en oEmbed; unifica las respuestas de error por usuario no válido y por contraseña incorrecta. | Siempre activo (cuando está habilitado) |
| Monitor de contraseñas de aplicaciones | Aceleradores application_password_failed_authentication; evita que se eluda la autenticación de dos factores (2FA) mediante la autenticación básica. | 5 en 15 minutos |
| Anomalía Geo / ASN | Compara el país y el ASN en el momento del inicio de sesión correcto con un historial móvil de 90 días; opcionalmente, revoca los tokens de dispositivos de confianza en caso de anomalía. | Se requiere haber iniciado sesión al menos una vez |
| Seguridad de la contraseña | Aplica requisitos de longitud mínima y combinación de tipos de caracteres en los roles obligatorios; comprobación opcional «Have-I-Been-Pwned» de k-anónimos (solo prefijo SHA-1). | 8 personajes + clases |
| Ocultar la URL de inicio de sesión | URL personalizada (por defecto wp-login.php); la URL original devuelve una página de error o un código 404. | Título: 3-50 caracteres |
| Bloquear la escalada | Escalón progresivo: los reincidentes pagan más en cada ciclo. | 5 m → 15 m → 30 m → 24 h → 48 h → 7 d |
| Inicio de sesión en WooCommerce | Los errores en los formularios de registro de WooCommerce se contabilizan en el contador de ataques de fuerza bruta. | Heredan el límite de fuerza bruta |
Escalada progresiva por bloques
Los reincidentes pagan más. La escala predeterminada es: 5 min → 15 min → 30 min → 24 h → 48 h → 7 d. Tras 30 días sin incidentes, el contador se reinicia en el nivel 1. Los visitantes legítimos que activan el filtro por primera vez (CGNAT, errores de los administradores, salida de redes móviles) se recuperan en cuestión de minutos; los atacantes persistentes llegan al nivel de 7 días.
La escalera, la ventana de reinicio y el interruptor principal se encuentran en Ajustes → Bloqueo → Bloqueo progresivo. El paso «Protección» del asistente muestra el controlador principal, de modo que las instalaciones nuevas ya tienen en cuenta la escalada de privilegios desde el primer guardado. La corrección block_duration La configuración sigue siendo válida aunque la escala esté desactivada. La granularidad inferior a una hora la proporciona ReportedIP_Hive_Database::block_ip_for_minutes().
Autenticación de dos factores (2FA)
Se admiten cuatro métodos, que se pueden combinar por usuario. Los códigos de recuperación se generan durante la primera configuración. Las claves se cifran en reposo (utilizando libsodium, con OpenSSL como alternativa).
- TOTP — RFC 6238 (6 dígitos, ventana de 30 segundos). Compatible con Google Authenticator, Authy, 1Password, Bitwarden, …
- Correo electrónico: código de un solo uso (OTP) de seis dígitos a través del proveedor de correo configurado; con límite de frecuencia (3 códigos cada 15 minutos, 5 intentos de verificación por código y un tiempo de espera de 60 segundos antes de volver a enviarlo).
- SMS: código de un solo uso (OTP) de seis dígitos a través del servicio de reenvío reportedIP gestionado reportedIP (plan Professional y superiores; véase más abajo). El número de teléfono se cifra cuando está inactivo.
- WebAuthn: claves de acceso, llaves de seguridad (YubiKey), autenticadores de plataforma (Touch ID, Face ID, Windows Hello). Analizador CBOR propio, sin dependencias externas.
- Dispositivos de confianza — Tokens de «recordar este dispositivo» opcionales con caducidad configurable (por defecto, 30 días). Almacenados en
wp_reportedip_hive_trusted_devicescomo hash SHA-256. - Códigos de recuperación — 10 de un solo uso
xxxx-xxxxcódigos; aviso de «low-code» cuando quedan ≤ 3.
Protección contra ataques de fuerza bruta en la autenticación de dos factores
La escala de verificación de la autenticación de dos factores es 3 → 30 s, 5 → 5 min, 10 → 30 min, 15 → 1 h. Cuando el contador llega al último peldaño, el IP pasa a la posición central auto_block_ip() ruta (evento 2fa_brute_force) que activa la escalada progresiva y la notificación en modo «Comunidad», al igual que cualquier otro sensor.
REST de autenticación de dos factores sin interfaz
Para las integraciones de aplicaciones, el complemento ofrece tres rutas bajo el espacio de nombres reportedip-hive/v1:
POST /2fa/challenge— nombre de usuario + contraseña → token de autenticación + métodos habilitados (20 solicitudes / 5 minutos por IP).POST /2fa/verify— token + método + código → establece la cookie de autenticación (30 solicitudes / 5 minutos por IP).GET /2fa/methods— Analiza los métodos activos del usuario actual.
Inicio de sesión en la interfaz de usuario de WooCommerce
La autenticación de dos factores (2FA) de Hive se integra en el tema activo de tu tienda: los clientes que inician sesión a través de [woocommerce_my_account], el proceso de pago clásico o los bloques «Carrito» y «Pago» de WooCommerce completan su segundo paso en una página con tema. El estado del carrito y del proceso de pago se mantiene tras la redirección de ida y vuelta, y la cookie de dispositivo de confianza se comparte con el flujo de inicio de sesión de WordPress.
- Ruta de configuración — 2FA → Inicio de sesión en la interfaz de usuario de WooCommerce.
- Slugs configurables — nombre del desafío (por defecto
reportedip-hive-2fa) y el slug de configuración (por defectoreportedip-hive-2fa-setup); tanto las reglas editables como las de comprobación de conflictos y las de reescritura se actualizan automáticamente cuando se modifican. - Rebaja de nivel: desactivación parcial en los planes «Free» y «Contributor»; se conservan la configuración, las opciones de slug y el estado de incorporación; no se pierden datos al volver a subir de nivel.
- Detección de conflictos: Hive muestra un aviso de administración cuando Solid Security, el plugin WP Two-Factor o Wordfence 2FA controlan el formulario de inicio de sesión, y desactiva la solicitud de verificación en la interfaz pública para evitar que se muestren dos avisos.
- Disponibilidad del plan — Plan Professional y superiores. Los sensores gratuitos de errores de inicio de sesión de WooCommerce (
woocommerce_login_failed,woocommerce_checkout_login_form_failed_login) siguen estando presentes en todos los planes y siguen alimentando el contador de fuerza bruta.
Entrega de correo y SMS
La capa de correo funciona a través de un contrato de proveedor conectable (ReportedIP_Hive_Mailer). El proveedor predeterminado es WordPress wp_mail(); los integradores pueden sustituir el propio sin modificar el resto del complemento. La autenticación de dos factores por SMS es una función profesional que se ofrece exclusivamente a través del servidor de retransmisión gestionado reportedip.de; no se requiere una cuenta de SMS propia ni un contrato con un operador. Se configura automáticamente con un plan de pago; actívela en Ajustes → Autenticación de dos factores → SMS.
Descripción general de la configuración
Todas las opciones se encuentran en ReportedIP → Configuración. Estos son los valores predeterminados más importantes:
| Configuración | Por defecto | Descripción |
|---|---|---|
operation_mode | Escudo local | Red local o red comunitaria. |
block_threshold | 75 % | Puntuación mínima de confianza para bloquear una dirección IP (modo Comunidad). |
login_threshold / _timeframe | 5 / 15 min | Número de intentos fallidos de inicio de sesión por IP antes del bloqueo automático. |
comment_spam_threshold / _timeframe | 5 / 60 min | Número de comentarios por IP antes del bloqueo automático. |
scan_404_threshold / _timeframe | 12 / 2 min | Errores 404 por IP antes del bloqueo del escáner. |
xmlrpc_threshold / _timeframe | 10 / 60 min | Solicitudes XMLRPC por IP antes del bloqueo automático. |
rest_burst_threshold / _timeframe | 240 / 5 min | Solicitudes REST anónimas por IP. Se han eludido las rutas del banner de consentimiento. |
block_duration_hours | 24 h | Bloque de longitud fija (se utiliza cuando la escalera está apagada). |
block_escalation_enabled + block_ladder_minutes | En — 5, 15, 30, 1440, 2880, 10080 | Escalera progresiva (minutos por nivel). |
report_mode | Activo | active (bloque) o report_only (registro sin bloqueo). |
data_retention_days | 30 días | ¿Durante cuánto tiempo se conservan los registros de seguridad antes de su eliminación automática? |
auto_anonymize_days | 7 días | Anonimizar la dirección IP y el agente de usuario en las entradas del registro con más de N días de antigüedad. |
cache_duration / negative_cache_duration | 24 h / 2 h | Tiempo de vida (TTL) de la caché ETag para consultas de reputación positiva o negativa. |
max_api_calls_per_hour | 100 | Límite flexible para distribuir el uso de la API a lo largo del día. |
2fa_enforce_roles | (vacío) | Roles separados por comas con autenticación de dos factores obligatoria. |
2fa_grace_days | 7 | Unos días antes de que la medida impida el acceso a los usuarios no registrados. |
2fa_trusted_device_days | 30 | Caducidad del token de dispositivo de confianza. |
hide_login_enabled / _slug / _response_mode | Desactivado — — block_page | Slug personalizado de wp-login; la URL antigua muestra una página de bloqueo o un error 404. |
Tablas de la base de datos
Creado al activarse, con prefijo wp_reportedip_hive_. Versión 3 del esquema, con migración idempotente en cada actualización del complemento.
logs— Incidentes de seguridad, detalles en formato JSON, nivel de gravedad, indicador de notificación.whitelist— direcciones IP y rangos CIDR de confianza; la fecha de caducidad es opcional.blocked— bloqueos activos (manuales / automáticos / por reputación), conblocked_until.attempts— Contadores por IP por tipo de intento, con marcas de tiempo de la primera y la última vez.api_queue— Informes pendientes y fallidos en la API de la comunidad; lógica de reintento.stats— datos acumulados diarios para los gráficos del panel de control (tendencias de 7 y 30 días).trusted_devices— Tokens de dispositivos de autenticación de dos factores (hash SHA-256), dirección IP y nombre del dispositivo, fecha de caducidad.
Códigos cortos de la interfaz y pie de página automático
Inserta una pequeña insignia con el texto «protegido por Hive» en cualquier lugar del sitio web. Todos los códigos cortos muestran un único <rip-hive-banner> componente web y extrae datos en tiempo real de una caché temporal de 6 horas (sin llamadas a la API por cada visita a la página).
[reportedip_badge]— insignia pequeña (predeterminada) proteger (tono).[reportedip_stat]— una sola estadística (por defecto confianza (tono).[reportedip_banner]— banner ancho (predeterminado) comunidad (tono).[reportedip_shield]— icono de escudo (predeterminado) colaborador (tono).
Características comunes: stat (p. ej., attacks_30d, reports_total), tone (protect / trust / community / contributor), color, background, label, intro. El pie de página automático del asistente utiliza el mismo componente, pero con una variante y una alineación configurables.
Referencia de WP-CLI
Las herramientas de autenticación de dos factores (2FA) son totalmente programables. Disponibles en wp reportedip 2fa …:
wp reportedip 2fa status [--user=<id>]
wp reportedip 2fa enable <user_id> --method=<totp|email|sms|webauthn> [--secret=<base32>]
wp reportedip 2fa disable <user_id> [--method=<m>]
wp reportedip 2fa reset <user_id>
wp reportedip 2fa enforce --role=<role> [--remove]
wp reportedip 2fa audit [--user=<id>] [--since=<date>]
wp reportedip 2fa cleanup
Compatibilidad con el complemento de caché
Desde la versión 1.5.2, la respuesta de página bloqueada define DONOTCACHEPAGE, DONOTCACHEDB y DONOTCACHEOBJECT (compatible con WP Rocket, W3 Total Cache, WP Super Cache y LiteSpeed Cache) y emite explícitamente Cache-Control: no-store, no-cache, must-revalidate, max-age=0, Pragma: no-cache además del núcleo de WordPress nocache_headers() configurado. Un único atacante bloqueado ya no puede contaminar la caché de páginas con un error 403 que, de otro modo, recibirían los visitantes legítimos hasta que caduque la caché.
Filtros y ganchos de acción
apply_filters('reportedip_hive_external_url', $url, $context)— Sustituye cualquiera de las URL externas (política de privacidad, registro, preguntas frecuentes, etc.).apply_filters('reportedip_hive_rest_bypass_routes', $routes)— Ampliar la lista de prefijos de rutas REST que eluden el controlador de tráfico (integraciones de banners de cookies).apply_filters('reportedip_hive_scan_paths', $paths)— Ampliar la lista de rutas de honeypot para el detector de escaneo.do_action('reportedip_hive_ip_blocked', $ip, $reason)— se activa cuando se bloquea una dirección IP.do_action('reportedip_hive_report_queued', $ip, $category)— Se activa cuando se pone en cola un informe para la API.
Preguntas frecuentes
Las preguntas que nos hacen con más frecuencia. Cada respuesta incluye un enlace a la sección correspondiente más arriba, cuando procede.
General
¿Qué es Hive y qué relación tiene con ReportedIP?
ReportedIP es el plugin de WordPress que se instala en tu sitio web. ReportedIP (reportedip.de) es el servicio central que recopila información sobre amenazas. Hive puede funcionar de forma totalmente independiente (Local Shield) o comunicarse con el servicio (Community Network); ambos son modos de primera clase.
¿Necesito una cuenta para usar el complemento?
No — Local Shield funciona sin necesidad de una cuenta ni de una clave API. Solo necesitas una ReportedIP gratuita ReportedIP si quieres activar Community Network, que realiza consultas de reputación en la base de datos de hive y comparte informes de ataques anonimizados.
¿Cuánto cuesta?
El complemento en sí es gratuito bajo la licencia GPLv2+. Local Shield nunca requiere un plan de pago. Community Network incluye un nivel gratuito; los niveles superiores aumentan los límites diarios de comprobaciones y informes. Consulta el panel de control para ver los límites actuales.
¿Está disponible el plugin en WordPress.org?
Hay dos ediciones. Luz de colmena se publica en WordPress.org con el slug reportedip-hive — Protección contra ataques de fuerza bruta en el inicio de sesión, además de una búsqueda opcional en la comunidad; sin autenticación de dos factores (2FA) ni ventas adicionales. El Edición completa Los productos que se indican en esta página se envían a través de Novedades de GitHub con actualizaciones con un solo clic gestionadas por el verificador de actualizaciones de plugins integrado. El motivo de que haya dos ediciones es que las directrices de wp.org prohíben las ventas adicionales, los servidores gestionados de pago y los sistemas de niveles multisitio, todas ellas características en las que se basa la Edición Completa. Consulte la Documentación de Hive Light para el plugin distribuido por wp.org. Importante: No instales ambos complementos en el mismo sitio web, ya que comparten el mismo dominio de texto y el mismo prefijo de clase.
¿Dónde está el código fuente? ¿Puedo revisarlo?
Sí, el código fuente completo se encuentra en github.reportedip. Las incidencias, las solicitudes de incorporación de cambios, el registro de cambios y las ejecuciones de CI son públicas.
Instalación y configuración
¿Cómo se instala el complemento?
Descargar reportedip-hive.zip del última versión de GitHub, y luego en WordPress: Complementos → Añadir nuevo → Subir complemento, selecciona el código postal, Instalar ahora, Activar. El asistente de configuración de 8 pasos se inicia automáticamente.
Me salté el asistente de configuración, ¿cómo puedo volver a ejecutarlo?
Configuración → ReportedIP → en la parte superior de la página hay un enlace que dice «Volver a ejecutar el asistente de configuración». El asistente no es destructivo: muestra los valores actuales como valores predeterminados, por lo que puedes seguir los pasos y modificar solo lo que necesites.
¿Cómo puedo cambiar entre «Local Shield» y «Community Network»?
Ajustes → Conexión → Modo de funcionamiento. No se pierden datos al cambiar de modo. Para cambiar a «Red comunitaria» se necesita una clave API válida.
¿Puedo importar la configuración de otro sitio web?
Sí — Ajustes → Importar/Exportar. El archivo de exportación está en formato JSON y tiene un límite de 512 KB para la carga. Por motivos de seguridad, no se incluyen las claves API ni los códigos secretos de la autenticación de dos factores; todo lo demás (umbrales, escalas, lista blanca, slug de ocultación de inicio de sesión) es transferible.
¿Cómo funcionan las actualizaciones?
Plugin Update Checker v5.6+ consulta las publicaciones de GitHub cada 12 horas. Las nuevas versiones aparecen en Complementos como cualquier otra actualización: instalación con un solo clic. El formato de las etiquetas debe ser vX.Y.Z; el flujo de trabajo de release.yml comprueba el encabezado, la constante y la etiqueta «stable» del archivo README.
Modos y sensores
¿Qué es exactamente lo que se comparte con la comunidad cuando estoy en modo «Red comunitaria»?
Tres datos por ataque: la IP del atacante, la categoría de la amenaza (por ejemplo, fuerza bruta, spam en comentarios, XML-RPC, escáner) y una marca de tiempo. Además, la clave API de tu sitio web para que el informe se pueda atribuir a quien lo envía. Nada más: ni nombres de usuario, ni contraseñas, ni contenido de los comentarios, ni datos de los usuarios finales, ni URL de sitios web en la carga útil.
¿Cuáles son los trece sensores? ¿Puedo desactivar alguno de ellos por separado?
Consulta «Los trece sensores de ataque» más arriba para ver la lista completa y los valores predeterminados. Sí, cada sensor cuenta con un interruptor principal y controles de umbral y intervalo de tiempo en Ajustes → Protección. También puedes desactivar un sensor completo sin desactivar el resto.
¿Qué es el «modo solo informe»?
El complemento registra todo, pero no bloquea nada. Resulta útil cuando ajustas los umbrales en un sitio web con mucho tráfico y quieres ver qué se habría bloqueado antes de activar la función. Ajustes → Protección → Modo solo de informe.
¿Cómo funciona la escalada progresiva de bloques?
Escalera predeterminada: 5 min → 15 min → 30 min → 24 h → 48 h → 7 días. Cada bloque de repetición dentro de la ventana de reinicio (por defecto, 30 días) avanza un paso. Pasados los 30 días, la dirección IP limpia vuelve a empezar por el paso 1. Los casos de CGNAT y los errores de los administradores se resuelven en cuestión de minutos; los ataques persistentes pueden llegar a durar hasta 7 días. Se puede activar o desactivar; si no se especifica, se utiliza el valor fijo. block_duration cuando está apagado.
¿En qué consiste la función «ocultar la URL de inicio de sesión»?
Sustituye a /wp-login.php con un slug personalizado (de 3 a 50 caracteres; se rechazan los slugs incluidos en la lista negra). La URL antigua devuelve una página de bloqueo de Hive o un error 404 estándar, según prefieras. Los flujos REST, AJAX, WP-CLI y de restablecimiento de contraseña se omiten automáticamente para que sigan funcionando. Reduce drásticamente la superficie de ataque frente a los ataques de fuerza bruta automatizados.
Cuando la opción «Ocultar inicio de sesión» está activada, al pulsar repetidamente directamente sobre el antiguo /wp-login.php procedentes de una misma dirección IP se consideran un escaneo y se bloquean según la escala de escalado estándar. Una sola visita accidental no supone ningún riesgo; solo un patrón repetido activa el bloqueo. Ajusta el umbral o desactiva el bloqueo en Configuración → Ocultar inicio de sesión.
Autenticación de dos factores
¿Qué métodos de autenticación de dos factores admite Hive?
Cuatro: TOTP (RFC 6238 — Google Authenticator, Authy, 1Password, Bitwarden, …), OTP por correo electrónico, OTP por SMS (a través del relé gestionado, plan Professional), WebAuthn (claves de acceso, YubiKey, Touch ID, Face ID, Windows Hello). Además de códigos de recuperación de un solo uso y tokens de dispositivos de confianza.
¿Puedo aplicar la autenticación de dos factores solo a algunos usuarios?
Sí: selecciona los roles en Configuración → 2FA → Roles obligatorios. Los usuarios sujetos a esta obligación encontrarán un asistente de configuración de 5 pasos al iniciar sesión por primera vez, con un periodo de gracia configurable (por defecto, 7 días) antes de que se active el bloqueo.
He perdido mi teléfono o mi aplicación de autenticación, ¿cómo puedo volver a acceder?
Utiliza uno de los diez códigos de recuperación que guardaste durante la configuración de la autenticación de dos factores. Si también los has perdido, un administrador puede restablecer la autenticación de dos factores para cualquier usuario en Usuarios → Autenticación de dos factores. Como último recurso: wp reportedip 2fa reset <user_id> a través de WP-CLI / SSH.
¿Durante cuánto tiempo se mantiene la condición de «dispositivo de confianza»?
Configurable; por defecto, 30 días. El token es un hash SHA-256 almacenado en wp_reportedip_hive_trusted_devices junto con la dirección IP y el nombre del dispositivo. El sensor de anomalías geográficas puede revocar automáticamente los tokens de dispositivos de confianza en caso de cambio de país o de ASN.
¿Funciona WebAuthn en todos los navegadores?
Las versiones modernas de Chrome, Edge, Safari y Firefox en macOS, Windows, iOS y Android: sí. WebAuthn requiere HTTPS (o localhost (para desarrolladores). Los navegadores más antiguos o con configuraciones de seguridad reforzadas que no admiten WebAuthn recurren automáticamente a TOTP, correo electrónico o SMS.
¿Puedo integrar la autenticación de dos factores (2FA) en una aplicación sin interfaz gráfica o móvil?
Sí, el espacio de nombres REST reportedip-hive/v1 revela POST /2fa/challenge, POST /2fa/verify y GET /2fa/methods. Límite por IP (20 / 30 / ilimitado por cada intervalo de 5 minutos).
Rendimiento y compatibilidad
¿Es compatible Hive con WP Rocket, W3 Total Cache, WP Super Cache y LiteSpeed?
Sí, desde la versión 1.5.2, la respuesta de página bloqueada establece DONOTCACHEPAGE, DONOTCACHEDB y DONOTCACHEOBJECT además de explícito Cache-Control: no-store, no-cache, must-revalidate, max-age=0, Pragma: no-cache y el núcleo de WordPress nocache_headers() establecido. Un atacante bloqueado ya no puede contaminar la caché de páginas.
¿Funciona con Cloudflare?
Sí. El complemento lee CF-Connecting-IP primero, y luego recurre a X-Forwarded-For y REMOTE_ADDR. Añade a la lista blanca las direcciones IP de monitorización de tu origen si utilizas Cloudflare como proxy para una página de estado.
¿Qué hay de que el editor de bloques de WordPress (Gutenberg) realice más de 50 llamadas REST?
Desde la versión 1.2.2, los usuarios que han iniciado sesión se saltan el monitor global de ráfagas REST; solo se contabilizan las ráfagas anónimas. La coincidencia de ruta del escáner sigue siendo válida (por lo que Gutenberg no puede sondear accidentalmente .env). Asegúrate de que tienes instalada la versión 1.2.2 o una posterior.
¿Cómo puedo mantener bajo el uso de la API?
Por defecto, la caché de ETag conserva las consultas positivas durante 24 horas y las negativas durante 2 horas. Aumenta ambos valores si tu sitio web tiene poco tráfico. El panel de control muestra el límite de cuota en tiempo real y la cola, para que puedas ver si estás llegando al límite. Los informes por lotes generados por cron (cada 15 minutos) agrupan los eventos individuales.
¿Hive ralentizará mi sitio web?
La comprobación por bloques es una consulta indexada única en wp_reportedip_hive_blocked a petición, enganchado en init Prioridad 1. La lista blanca se almacena en caché en memoria para cada solicitud. Las consultas de reputación son asíncronas: primero se genera la página pública, y el informe se pone en cola y se envía en la siguiente ejecución de la tarea programada.
Privacidad y el RGPD
¿Cumple el plugin con el RGPD?
Sí: Local Shield nunca envía datos a ningún sitio; Community Network solo envía los tres campos mencionados anteriormente; los user-agents se recortan a 50 caracteres, y las direcciones IP pueden anonimizarse automáticamente tras un número de días configurable. El desglose completo del tratamiento de datos se encuentra en nuestra política de privacidad.
¿Tengo que mencionar a Hive en mi propia política de privacidad?
Sí, si utilizas el modo «Community Network»: debes informar del uso de Hive y de la transmisión de la IP del atacante, su categoría y la marca de tiempo a reportedip.de. Si solo utilizas «Local Shield», no se produce ninguna transmisión, pero sigues procesando las IP por motivos de seguridad (art. 6, apartado 1, letra f) del RGPD), lo cual merece una mención en tu política de privacidad.
¿Qué pasa con mis datos si desinstalo la aplicación?
La desinstalación elimina todo wp_reportedip_hive_* tablas y elimina todo reportedip_hive_* opciones. Los informes que ya se encuentran en la base de datos de la comunidad se mantienen; no se pueden vincular de forma específica a tu sitio web (solo el hash de la clave API los vincula).
Personalización y ampliación
Los visitantes del banner de cookies / punto final de consentimiento son bloqueados: ¿cómo puedo ampliar la lista de excepciones?
Desde la versión 1.5.0, los cuatro espacios de nombres comunes (real-cookie-banner, complianz, borlabs-cookie, cookie-law-info) se omiten de forma predeterminada. Para una pila personalizada, aplica el filtro:
add_filter('reportedip_hive_rest_bypass_routes', function ($routes) {
$routes[] = '/my-consent-plugin/v1';
return $routes;
});
¿Cómo puedo añadir mis propias rutas de honeypot al detector de análisis?
Gancho reportedip_hive_scan_paths:
add_filter('reportedip_hive_scan_paths', function ($paths) {
$paths[] = '/.aws/credentials';
return $paths;
});
¿Puedo crear mi propio proveedor de correo electrónico?
Sí — implementar interface-mail-provider.php para el correo y registrarlo a través del filtro de correo (reportedip_hive_mail_provider). Los SMS, por el contrario, se envían exclusivamente a través del servidor de retransmisión gestionado reportedip.de (plan Professional y superiores); no hay que configurar ningún proveedor de SMS autohospedado.
¿De dónde proceden los datos de los códigos cortos del front-end?
Una caché temporal de 6 horas. Claves: attacks_30d, attacks_total, blocked_active, whitelist_active, logins_30d, spam_30d, api_reports_30d, reports_total. Los códigos cortos nunca realizan llamadas a la API por cada visita a la página.
Cuotas, planes y cuenta
¿Qué funciones tiene cada puesto?
Consulta la documentación sobre autenticación para ver la tabla completa. En resumen: gratuita (1 000 comprobaciones / 50 informes al día), colaborador (5 000 / 200), profesional (25 000 / 1 000), business 100 000 / 5 000), corporativa (ilimitada), honeypot (ilimitada).
El panel de control muestra un retraso en la cola, ¿qué debo hacer?
Ve a Ajustes → Cola de API. El botón «Reintentar» (corrección 1.2.4) ahora realmente realiza la llamada a la API, en lugar de limitarse a restablecer el estado. Si los reintentos fallan debido a un límite de cuota, aumenta la duración de la caché o cambia a un plan superior.
¿Puedo ejecutar Hive en una instalación multisitio o en red?
Sí. Cada subsitio tiene su propia configuración y su propio wp_*_reportedip_hive_* tablas. El modelo de clave API se aplica por defecto a cada subsitio, lo que permite distinguir a los autores de los informes.
Solución de problemas
El complemento no bloquea ninguna dirección IP
Comprueba si el «Modo solo de informe» está activado: registra las amenazas sin bloquearlas. Comprueba también que el umbral de bloqueo no esté fijado en un valor demasiado alto (por defecto, 75 %) y que el «Bloqueo automático» esté activado (la estrategia de duración se desactiva cuando el bloqueo automático está desactivado).
Errores de conexión a la API en el modo Red comunitaria
Asegúrate de que tu servidor pueda realizar solicitudes HTTPS salientes a reportedip.de. Algunos servidores bloquean las conexiones salientes de forma predeterminada. Comprueba la clave API en el Panel de control.
Se bloquea a los visitantes que ignoran el aviso sobre cookies
Desde la versión 1.5.0, los cuatro espacios de nombres de Consent (real-cookie-banner, complianz, borlabs-cookie, cookie-law-info) se omiten de forma predeterminada. Si tu pila utiliza un espacio de nombres diferente, amplía la lista de omisiones mediante el reportedip_hive_rest_bypass_routes filtro.
Se bloquea a los usuarios legítimos
Añade sus direcciones IP o rangos CIDR a la lista blanca local. Las direcciones IP incluidas en la lista blanca nunca se bloquean, independientemente de su reputación.
Alto uso de la API / agotamiento de las comprobaciones
Las respuestas se almacenan en caché localmente (con ETag) durante 24 horas de forma predeterminada. Si sigues quedándote sin comprobaciones, aumenta cache_duration o cambia a un plan superior. Controla la cola y el límite de Panel de control.
Bloqueado por la autenticación de dos factores
Utiliza uno de los códigos de recuperación guardados durante la configuración de la autenticación de dos factores. Si los has perdido, un administrador puede restablecer la autenticación de dos factores para cualquier usuario en Usuarios → Autenticación de dos factores. Como último recurso: wp reportedip 2fa reset <user_id>.
El editor de bloques (Gutenberg) sigue sufriendo ralentizaciones
El editor de bloques realiza más de 50 llamadas REST en pocos segundos. A partir de la versión 1.2.2, los usuarios que han iniciado sesión no se ven afectados por el controlador global de picos de tráfico REST; solo se contabilizan los picos de tráfico de los usuarios anónimos. Asegúrate de que utilizas la versión 1.2.2 o una posterior.
RGPD y privacidad
El complemento se ha diseñado teniendo en cuenta la privacidad y cumple plenamente con el RGPD.
- Modo «Local Shield»: No se envían datos fuera de tu servidor. Toda la detección y el bloqueo se realizan de forma local.
- Modo de red comunitaria: solo se comparten la IP del atacante, la categoría de la amenaza y la marca de tiempo. No se comparten nombres de usuario, contraseñas, contenido de comentarios ni datos de los usuarios finales.
- Los agentes de usuario se acortan a 50 caracteres antes de almacenarse.
- Limpieza automática: los registros de seguridad se eliminan tras el periodo de conservación configurado (por defecto, 30 días). La anonimización automática se activa antes (por defecto, 7 días).
- Cifrado en reposo: los claves TOTP, las credenciales WebAuthn y los números de teléfono para SMS se cifran con libsodium (con OpenSSL como alternativa).
- Sin seguimiento: sin cookies, sin píxeles de seguimiento, sin telemetría.
- Código abierto: El código fuente completo está publicado en GitHub; cada línea es verificable.
Aspectos destacados del registro de cambios
- 2.0.x — Activación multisitio en toda la red (
Network: true), gestión de niveles por blog, banners de actualización de nivel, monitores reforzados de contraseñas de aplicaciones y anomalías geográficas; la autenticación de dos factores (2FA) en la interfaz de usuario de WooCommerce está disponible a partir de la versión PRO+. - 1.5.2 — Compatibilidad del complemento de caché en la página 403; la limitación de la autenticación de dos factores (2FA) pasa a ser un bloqueo por escalada real;
initprioridad 1. - 1.5.1 — Claridad de la pestaña «Bloqueo» (Solo informes > Bloqueo automático > Estrategia de duración); los editores de longitud fija y escalonados se intercambian en línea.
- 1.5.0 — Escalada progresiva de bloqueos (escalera de 5 m → 7 días); omisión predeterminada de los puntos finales de los banners de cookies; flexibilización de los valores predeterminados para los errores 404 y el spam en los comentarios.
- 1.2.4 — El botón «Reintentar» de la cola de la API ahora ejecuta realmente la llamada a la API.
- 1.2.0 — Siete nuevos sensores: monitor de contraseñas de aplicaciones, monitor de ráfagas REST, bloqueo de enumeración de usuarios, detector de errores 404/escaneos, anomalías geográficas, solidez de contraseñas y ocultación de la URL de inicio de sesión.
- 1.1.0 — Sistema central de envío de correos con plantilla de marca.
- 1.0.0 — Versión pública inicial: bloqueo de direcciones IP, autenticación de dos factores con cuatro métodos, asistente de configuración, tablas de listas.
Historial completo: CHANGELOG.md en GitHub.