=== MH Security ===
Contributors: markhouse
Tags: security, firewall, waf, 2fa, malware scanner, login security, hardening, two-factor
Requires at least: 5.6
Tested up to: 6.5
Requires PHP: 7.4
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Suite de seguridad profesional y completa para WordPress: firewall, protección de acceso, 2FA, escáner de malware, hardening y más.

== Description ==

MH Security es un plugin de seguridad todo-en-uno para WordPress, pensado a nivel profesional y sin dependencias externas.

**Módulos incluidos:**

* **Firewall (WAF)** — Inspecciona cada petición y bloquea inyección SQL, XSS, LFI/RFI/path traversal, user-agents de herramientas de ataque (sqlmap, nikto, wpscan…) y aplica limitación de tasa (rate limiting). Auto-bloqueo temporal de IPs atacantes.
* **Protección de acceso** — Límite de intentos de login con bloqueo por IP, CAPTCHA (matemático, Google reCAPTCHA v2/v3 o hCaptcha), mensajes de error genéricos y URL de acceso personalizada para ocultar wp-login.php.
* **Autenticación en dos pasos (2FA)** — TOTP compatible con Google Authenticator, Authy y Microsoft Authenticator. Códigos de recuperación de un solo uso. 2FA forzable por rol.
* **Protección de archivos (File Guard)** — Sellado criptográfico HMAC-SHA256 de cada archivo con clave secreta privada: detecta cualquier modificación, archivo nuevo o borrado al instante y sin que el atacante pueda falsificar la firma. Verificación programada en tiempo casi-real, cuarentena automática de malware (neutraliza archivos para que no se ejecuten, con restauración), endurecimiento por .htaccess y bloqueo de escritura de wp-config.php.
* **Escáner de malware** — Detección de firmas de malware (eval/base64, web shells, código ofuscado, PHP en /uploads…). Programable y con informe por email.
* **Copias de seguridad** — Backups automáticos de la base de datos (comprimidos, en directorio privado protegido), con retención, descarga y aviso por email.
* **Bloqueo por país (GeoIP)** — Permite o bloquea el acceso por país usando las cabeceras de Cloudflare/CloudFront/mod_geoip.
* **Hardening** — Desactiva XML-RPC, pingbacks y el editor de archivos; oculta la versión de WordPress; bloquea la enumeración de usuarios; restringe la REST API; evita listados de directorios.
* **Cabeceras de seguridad HTTP** — X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy, HSTS y CSP personalizable.
* **Gestión de IPs** — Listas negra y blanca con soporte de rangos CIDR (IPv4 e IPv6) y bloqueos temporales.
* **Registro de actividad (auditoría)** — Logins, cambios de usuarios y roles, plugins/temas, contenido publicado y eventos del firewall, con retención configurable.
* **Notificaciones por email** — Alertas de bloqueos, accesos de administrador, cambios de archivos y eventos críticos.
* **Panel** — Puntuación de seguridad 0-100, estado de módulos, comprobaciones del sistema y widget en el escritorio. Disponible en español e internacionalizable (.pot incluido).

== Installation ==

1. Copia la carpeta `MH Security` en `wp-content/plugins/` (renómbrala a `mh-security` si lo prefieres).
2. Activa el plugin desde **Plugins** en el panel de WordPress.
3. Ve a **MH Security** en el menú lateral y revisa el panel.
4. (Recomendado) Ejecuta un primer escaneo para crear la línea base de integridad.
5. (Recomendado) Configura tu 2FA desde tu perfil de usuario.

== Frequently Asked Questions ==

= ¿Necesita servicios externos? =
No. Todo funciona localmente. La única llamada externa opcional es la generación de la imagen QR para 2FA (también puedes introducir la clave manualmente).

= Activé la URL de acceso personalizada y no encuentro el login =
La URL es `https://tu-sitio.com/tu-slug`. Guárdala bien. Si te bloqueas, desactiva el plugin por FTP (renombra su carpeta) y vuelve a entrar por `wp-login.php`.

= El firewall bloquea a un usuario legítimo =
Añade su IP a la lista blanca en **MH Security → Gestión de IPs**. Los editores/administradores autenticados quedan exentos de la inspección profunda de contenido.

== Changelog ==

= 1.0.0 =
* Versión inicial con firewall, login security, 2FA, escáner, hardening, cabeceras, gestión de IPs, registro de actividad y notificaciones.

== Upgrade Notice ==

= 1.0.0 =
Versión inicial.
