Funciones

Qué hace WardPane 2.0

WardPane 2.0 aloja sitios estáticos, PHP y Node.js con certificados automáticos y compatibilidad con Cloudflare. La protección y el control de tráfico funcionan por sitio dentro del servidor web. En la mayoría de los ocho paneles de la página de comparación, estas funciones dependen de ModSecurity o de un complemento de pago.

Para principiantes y para administradores con experiencia

Los principiantes tienen un solo comando para instalar, certificados que se emiten solos, sitios aislados y ajustes explicados con palabras sencillas. Los administradores con experiencia tienen todas las opciones, una terminal en el navegador, PM2 por propietario, .htaccess, reglas por sitio en un orden conocido, la API de Cloudflare, exportación e importación, sumas de verificación de las versiones y el código fuente.

Hosting

Los sitios siguen una estructura al estilo de ISPmanager, pertenecen a un usuario Linux y los sirve el propio WardPane en los puertos 80 y 443.

Sitios y alias
Un sitio es un dominio más hasta 99 alias (un certificado de Let's Encrypt admite como máximo 100 nombres). Un alias sirve el sitio principal o, si tiene carpeta propia, esa carpeta. Los sitios pueden tener un nombre visible.
Estructura por propietario
Los archivos están en /var/www/<owner>/data/www/<domain>, con los registros y archivos temporales al lado. El propietario por defecto es www-root, un usuario Linux que crea WardPane. Los sitios de la 1.x conservan sus carpetas anteriores.
Tres manejadores
Sin manejador (hosting estático), PHP o Node.js, elegido por sitio y modificable en cualquier momento. Los ajustes de los otros manejadores se conservan, así que al volver se restauran.
Archivos estáticos
Modo SPA (las rutas desconocidas van a index.html), su propio 404.html, ETag fuertes con descargas reanudables, redirección de HTTP a HTTPS y enlaces simbólicos que nunca pueden salir de la carpeta del sitio.
Entornos de ejecución
El panel lista las versiones de PHP instaladas en el servidor y las versiones mayores de Node.js que admite: 20, 22, 24 y 26, con la 24 por defecto (la 20 llegó al fin de su vida útil en abril de 2026). Las compilaciones de Node.js vienen de nodejs.org y se verifican con las sumas SHA256 publicadas.
Un menú en cada sitio
Cada fila de la tabla de sitios tiene un menú con todas las acciones de ese sitio, y un interruptor apaga el sitio y lo vuelve a encender sin borrar nada.
Shell en el navegador
Una terminal dentro del panel: una shell de root en una sesión de root, o la shell del propietario del sitio en la carpeta del sitio. pm2 list y pm2 restart funcionan ahí para los sitios Node.js.
Exportación e importación
Cada sitio con todos sus ajustes, más la lista de bloqueo global, va a un solo archivo JSON. La importación fusiona o reemplaza, revisa primero el archivo completo y nunca toca los archivos de /var/www.
La tabla de sitios con manejadores, vigencia de certificados y protección activa

PHP y Node.js

Cada sitio dinámico se ejecuta con su propio usuario Linux dentro de un sandbox de systemd. Un sitio roto o comprometido no puede leer a sus vecinos.

Un pool php-fpm por sitio
Sin pool compartido, sin opcache ni sesiones compartidas. El código es de solo lectura para PHP; solo puede escribir en tmp/, logs/, data/ y las carpetas que usted indique, y PHP nunca se ejecuta desde esas carpetas.
Un sandbox estricto para PHP
Todo el sistema de archivos es de solo lectura y noexec salvo el propio php-fpm, open_basedir está configurado, exec, system, shell_exec, proc_open, popen y putenv están desactivados, y las llamadas al sistema se filtran.
.htaccess sin Apache
Reglas de reescritura, redirecciones, reglas de acceso, Basic auth, cabeceras y caché de sitios reales funcionan tal cual: WordPress, Laravel y las redirecciones habituales a HTTPS y www. Las líneas que no puede aplicar se muestran, nunca se adivinan.
Node.js con PM2
Elija una versión mayor de Node.js, un script de npm o un archivo de entrada, variables de entorno y límites. Un daemon PM2 por propietario ejecuta las aplicaciones, así que pm2 funciona desde la shell del propietario.
El proxy delante de la aplicación
Los archivos de public/ se sirven directamente si lo desea; el resto va a la aplicación con la IP real del visitante en X-Forwarded-For y X-Real-IP. Los WebSocket pasan tras las mismas comprobaciones de protección.
Reinicio, npm install y registros
La pestaña Manejador tiene botones para reiniciar y para npm install (npm ci cuando hay lockfile), los registros de salida, errores e instalación, y los scripts de package.json para elegir.
La pestaña Manejador de un sitio: versión de Node.js, script de inicio, variables de entorno y límites

Certificados y Cloudflare

Los certificados se emiten y renuevan sin pasos manuales, también para sitios detrás de Cloudflare.

Let's Encrypt, totalmente automático
Un certificado por sitio con todos sus alias, renovado cuando le queda un tercio de su vigencia. Los nombres cuyo DNS no apunta al servidor se omiten y se añaden cuando lo hace, y el panel muestra el motivo.
IPv6 también comprobado
Let's Encrypt prueba IPv6 primero, así que cada registro AAAA debe apuntar al servidor. WardPane los comprueba antes de pedir un certificado.
Un certificado para la IP
La IP del servidor recibe un certificado de corta duración, renovado cada pocos días. El panel en https://<ip>:1500 se abre sin advertencias.
Límites de frecuencia de Let's Encrypt
El panel no pide certificados duplicados, informa a la vez de todos los nombres fallidos de un pedido, espera más tras cada fallo y reemplaza una cuenta ACME desactivada.
Un token de Cloudflare con un clic
El botón Crear token de Cloudflare abre Cloudflare con los permisos correctos ya rellenados. Pegue el token de vuelta y el panel podrá comprobar y corregir las zonas de sus sitios.

Protección

Cada sitio tiene sus propias comprobaciones, y se ejecutan dentro del servidor web antes de que PHP o Node.js vean la solicitud. Una dirección se bloquea solo por un ataque claro.

Reglas geo: grupos de países, excepciones y la lista de países resultante
Ajustes de Bot Fight: categorías de bots, rastreadores verificados por IP, listas públicas de IP, detección de sondeos, cargas maliciosas y escaneos
Límite de solicitudes y bloqueos
Cada dirección puede enviar 150 solicitudes en 10 segundos por defecto. Por encima del límite recibe un 404 y un bloqueo durante los minutos que usted fije. Los visitantes IPv6 se cuentan y bloquean por su /64, así que cambiar de dirección no ayuda. Cada sitio tiene una lista de permitidos.
Bot Fight
Bloquea rastreadores de IA, rastreadores SEO, escáneres de vulnerabilidades, scripts y navegadores headless, user agents vacíos y su propia lista. Los buscadores y las vistas previas de enlaces, solo si usted lo decide. Los servicios de monitorización y los lectores RSS no se tocan.
Sondeos y cargas maliciosas
Las solicitudes a /.env, /.git, /wp-login.php y nombres parecidos que no existen en el sitio bloquean la dirección. Las cargas claras de inyección SQL, XSS, path traversal y Log4Shell en la URL provocan un bloqueo; las ambiguas solo rechazan esa solicitud.
Detección de escaneos
Muchos fallos seguidos (25 en 60 segundos por defecto) parecen gobuster o ffuf y bloquean la dirección. Una imagen que falta cuenta como una décima de fallo, así que una página antigua con imágenes rotas no es un escaneo.
Rastreadores verificados
Google, Bing, DuckDuckGo, Apple, OpenAI, Anthropic, Perplexity y Ahrefs publican sus rangos de IP. WardPane los descarga a diario y bloquea a quien diga ser uno de ellos desde otra dirección. También puede bloquear estos rastreadores por IP aunque se oculten tras un user agent de navegador.
Listas públicas de IP
Spamhaus DROP, FireHOL level 1 y blocklist.de, actualizadas a diario, aplicadas por sitio con un interruptor.
Geo con grupos
Permita o deniegue países uno a uno o por grupos: antigua URSS, CEI, UEE, UE, EEE, Schengen, OTAN, G7, G20, OCDE, BRICS, OCS, ASEAN, Liga Árabe, Mercosur, continentes y más. Añada excepciones y vea la lista final de países.
Redes de hosting y números AS
Bloquee solicitudes desde AWS, Azure, Google Cloud, Hetzner, OVH, DigitalOcean, Vultr y otras nubes, de donde viene la mayor parte de la automatización, o desde cualquier AS number que indique.
Filtro por idioma
Permita o deniegue según el idioma del navegador, con un interruptor aparte para las solicitudes que no envían ningún idioma. Una señal adicional útil junto al país, por ejemplo detrás de una VPN.
Dispositivos
Deje entrar solo Windows, macOS, Linux, Android, iOS u otros, como filtro para navegadores normales.
Solo con enlace
Parámetros de URL obligatorios: el sitio se abre solo para quienes llegaron con su enlace, por ejemplo ?ref=metaads desde un anuncio. Una cookie firmada y, opcionalmente, la IP del visitante los mantienen dentro. Las rutas de webhooks y de avisos de pago siguen abiertas.
Contraseña
Inicio de sesión HTTP Basic para borradores y copias de prueba de un sitio. Las contraseñas se guardan como hashes scrypt y se comprueban fuera del hilo principal, después de todos los demás filtros.
Protección contra hotlinking
Otros sitios no pueden incrustar sus imágenes y archivos. Elija las extensiones, los sitios permitidos (admite comodines) y qué hacer con las solicitudes sin Referer.
Cabeceras de seguridad
X-Frame-Options, Referrer-Policy, HSTS con includeSubDomains y preload, Content-Security-Policy y Permissions-Policy por sitio.
Honeypot
Una ruta que robots.txt prohíbe. Una persona nunca la abre, así que quien la solicita queda bloqueado al instante.
Páginas de bloqueo propias
Su propia página y código de estado (404, 403 o 200) para bloqueos por dispositivo, bots, geo y acceso solo con enlace, servida con no-store.
Lista de bloqueo global
Direcciones y redes bloqueadas en todos los sitios, guardadas en disco y conservadas tras los reinicios. Se aplica incluso donde un sitio tiene la protección desactivada.

Control de tráfico

Decida quién llega a cada sitio, en qué orden se aplican las reglas y qué ve un visitante bloqueado.

El orden de las comprobaciones en cada solicitud

  1. Cloudflare: IP real del visitante, solo a través de Cloudflare
  2. Lista de bloqueo global, luego la lista de permitidos del sitio
  3. Límite de solicitudes y bloqueos activos
  4. Bot Fight: user agents, rastreadores verificados, listas de IP, sondeos, cargas maliciosas, escaneos, honeypot
  5. Geo: países y grupos, redes de hosting, números AS, idioma del navegador
  6. Dispositivos
  7. Cabeceras de seguridad y protección contra hotlinking
  8. Solo con enlace
  9. Contraseña
  10. Reglas de .htaccess y luego el manejador: archivos, PHP o Node.js
IP real con conocimiento de Cloudflare
La dirección del visitante se toma de CF-Connecting-IP solo cuando la conexión viene realmente de Cloudflare. La lista de redes se actualiza a diario desde cloudflare.com.
Solo a través de Cloudflare
Las solicitudes directas a la IP del servidor reciben un 404, así que nadie puede saltarse la CDN ni sus reglas.
Cuando el interruptor está desactivado
Un sitio detrás de Cloudflare que no está marcado como tal nunca bloquea direcciones de Cloudflare y recibe un límite diez veces mayor por cada servidor de Cloudflare. El registro sugiere la solución.
Cloudflare Workers
Las solicitudes de un Worker se cuentan por su zona con límites y bloqueos normales; el Worker de su propia zona se trata como Cloudflare.
Códigos de la página de bloqueo
Use 404 para que parezca una dirección vacía, 403 para indicar que la solicitud se rechaza o 200 con su propia página. Los clientes limitados o bloqueados siempre reciben un 404 simple.
Respuestas seguras para la caché
Las respuestas que dependen del paso con enlace reciben Cache-Control: private y Vary: Cookie, así que una CDN nunca se las entrega a alguien sin el enlace.

Seguridad del panel

El panel se ejecuta como el usuario sin privilegios wardpane, y su página de inicio de sesión tiene sus propios límites contra ataques de fuerza bruta.

Inicio de sesión como root
De forma opcional, inicie sesión como root con la contraseña root del servidor. La comprueba unix_chkpwd a través de un pequeño ayudante root en un socket que solo el panel puede abrir. Desactivado por defecto.
Límites contra fuerza bruta
5 fallos bloquean una dirección (en IPv6, su /64) durante 15 minutos, y 50 fallos bloquean su /48. Una oleada de fallos desde muchas direcciones cierra el inicio de sesión a direcciones desconocidas durante 5 minutos. Las direcciones que iniciaron sesión en los últimos 30 días siguen funcionando.
Lista de IP permitidas
Con PANEL_ALLOW_IPS configurado, el panel no responde en absoluto a otras direcciones. Rechaza una lista que dejaría fuera la dirección que usted está usando.
Aislamiento del ayudante root
El panel escribe el estado deseado; un ayudante root iniciado por systemd vuelve a comprobar cada valor antes de crear usuarios, carpetas y unidades.
PHP y Node.js aislados
Usuarios Linux por sitio, sistema de solo lectura, /tmp privado, sin nuevos privilegios, límites de memoria y CPU y, opcionalmente, sin conexiones salientes.
Sumas de verificación de las versiones
Cada archivo se publica con su suma de verificación SHA-256 y contiene el código fuente completo. El instalador lo descarga por HTTPS y comprueba el SHA-256 antes de ejecutar nada.
Actualizaciones reversibles
Cada actualización hace una copia de seguridad con un script de restauración, comprueba que la nueva versión arranca y, si no, vuelve atrás por sí sola.
Recuperación del acceso
Si se queda sin acceso, un comando en el servidor restablece el inicio de sesión del panel y la lista de IP permitidas, y levanta los bloqueos de inicio de sesión.
La sección Seguridad: lista de bloqueo global, listas de IP de rastreadores con fechas de actualización, búsqueda de IP

Lo que viene

Estas funciones están previstas para las versiones posteriores a la 2.0 y no están en la 2.0.

Ver la hoja de ruta completa
  1. 2.1Bases de datos y el archivo de configuración del sitioMySQL y MariaDB: bases de datos, usuarios y privilegios · Un archivo de configuración por sitio con sintaxis tipo nginx, sincronizado con los formularios · gzip y brotli, registros de acceso con rotación, bloques location
  2. 2.2UsuariosInicio de sesión con la contraseña del sistema · Usuarios que solo ven sus propios sitios · Permisos definidos por root, e iniciar sesión como un usuario para ayudarle
  3. 2.3Para principiantesUn asistente de configuración en el primer inicio de sesión · Modos simple y experto · Preajustes de protección con un clic · Comprobaciones con botón Corregir y un panel de inicio más completo
  4. 2.4Certificados y DNSUna sección de certificados SSL · Su propio servidor DNS y servidores de nombres · Sincronización de DNS con Cloudflare · Inicio de sesión con Cloudflare
  5. 2.5CorreoDominios de correo, buzones y alias · Postfix, Dovecot, Rspamd y DKIM · Correo web Roundcube

Pruébelo en un servidor de sobra

La instalación tarda unos minutos en un Ubuntu 24.04 limpio.