Seguridad del nodo
La seguridad es la primera prioridad del diseño, por encima de la velocidad y la comodidad. Esta guía resume, para el operador, qué aísla el panel, cómo se operan sus defensas y qué no hace. Es un resumen de decisiones de diseño, no una certificación.
Aislamiento entre clientes
| Capa | Mecanismo |
|---|---|
| Identidad | Un usuario UNIX por cuenta de cliente. Todos los sitios de un cliente comparten ese usuario. |
| Código web | Cada cliente corre su propio PHP-FPM, bajo su usuario y con su propio opcache. open_basedir confina PHP a los directorios del cliente y disable_functions bloquea la ejecución de procesos y escapes similares. |
| Recursos | Cada cliente tiene su propio slice de systemd con límites de CPU, memoria, procesos e IO tomados de su plan. Requiere una licencia. |
| Sistema de archivos | /home puede atravesarse pero no listarse, de modo que un cliente no puede enumerar a otros. Las cuotas de disco las aplica el kernel. Toda operación de archivos que hace el panel en nombre de un cliente queda confinada a su home. |
| Procesos | /proc se monta de modo que un cliente no vea procesos ajenos. Cada cliente tiene un /tmp privado. |
| Consola y cron | Las sesiones de consola y las tareas programadas corren en una jaula de namespaces: sistema de sólo lectura, únicamente el home del cliente y sin vista de otros clientes. Si la jaula no puede armarse, el comando no se ejecuta. El reenvío de puertos y los túneles SSH están deshabilitados para clientes. |
| Bases de datos | Los nombres llevan el prefijo del cliente; los usuarios sólo tienen privilegios sobre sus propias bases y no pueden delegarlos. |
| Correo | Un usuario autenticado sólo puede enviar con su propia dirección; DKIM firma únicamente para el dominio del remitente del sobre; el envío está limitado por hora y por cliente. |
| DNS y certificados | No se puede crear una zona, un sitio o un dominio de correo dentro del árbol de dominios de otro cliente, y los nombres del propio nodo están reservados. |
Firewall
El panel administra nftables desde Seguridad → Firewall, Permitidos y Bloqueados. Cada campo explica qué hace y a quién afecta.
- Puertos: el instalador siembra los puertos de los servicios que instaló. Pueden agregarse o cerrarse otros por protocolo y rango.
- Puertos piso: SSH y los dos puertos del panel permanecen siempre abiertos y no pueden cerrarse desde el panel, de modo que el panel no puede dejar afuera al operador.
- Permitidos: direcciones que eluden los bloqueos. Conviene cargar la propia dirección antes de endurecer cualquier regla.
- Bloqueados: bloqueos temporales o permanentes. Los temporales vencen en el kernel, sin un demonio que los levante.
- Importar CSF: lee un
csf.confy sus listas para no perder el ajuste acumulado. - Los ingresos fallidos repetidos al panel desde una dirección se bloquean en el firewall.
Si es posible, conviene restringir el puerto de administración (2087) a las direcciones propias del operador y conservar los códigos de recuperación fuera de línea.
WAF
ModSecurity con el conjunto de reglas base de OWASP, con exclusiones de reglas por sitio (Sitios web → WAF). Su configuración es una función paga (véase Licencia y planes); apagarlo nunca se bloquea.
Suspender y desactivar
| Ingresa al panel | Servicios (sitios, correo, bases, FTP, cron, contenedores, consola) | Uso típico | |
|---|---|---|---|
| Suspendido | Sí | Detenidos | Falta de pago: el cliente puede entrar a ver el motivo |
| Desactivado | No | Detenidos | Baja o corte total de acceso |
Ambos estados son reversibles y no borran nada: los datos, los backups y las bases permanecen. Establecen un estado, por lo que repetir la acción es seguro. Suspender también cierra las sesiones de consola ya abiertas. Darse de baja definitivamente es otra operación, y esa sí elimina datos. Ambas acciones están en Cuentas; la suspensión puede aplicarse además a varias cuentas a la vez, y cada una se autoriza por separado.
Endurecimiento del panel
- No existe un «ejecutar comando» genérico. La API corre sin privilegios y nunca ejecuta nada; un agente aparte expone una lista cerrada de operaciones, valida cada argumento y vuelve a comprobar la propiedad por su cuenta.
- La API no escucha en un puerto TCP. El acceso remoto pasa por el puerto de administración con un token.
- Dos interfaces en dos puertos, y cada una rechaza el rol de la otra.
- Segundo factor obligatorio para administradores y revendedores.
- Protección de ingreso: los intentos fallidos se frenan con esperas crecientes por cuenta (nunca un bloqueo duro que un atacante pueda usar para dejar afuera al titular) y se bloquean por dirección de origen en el firewall.
- Secretos: las contraseñas del panel se guardan con Argon2id; no se usa MD5. Lo que debe poder revertirse (claves de certificados, tokens, credenciales de backup) se cifra con una clave maestra guardada fuera de la base de datos.
- Software firmado: las actualizaciones y los módulos de servicio están firmados con Ed25519.
- Auditoría: cada acción queda registrada, incluidas las de los administradores, y puede enviarse a un destino externo por TLS verificado.
Lo que el panel no promete
- Los sitios de un mismo cliente no están aislados entre sí: comparten un usuario UNIX. El aislamiento es entre clientes.
- Es hosting compartido: los clientes comparten un kernel. Una vulnerabilidad del kernel excede lo que el panel puede contener; conviene mantener los nodos actualizados y prever ventanas de reinicio.
- Los límites de recursos son una función paga. Sin licencia no se aplican y la carga de un cliente puede enlentecer a otros.
- SELinux está deshabilitado en los nodos de hosting. El aislamiento descrito no depende de él, pero tampoco se dispone de esa capa adicional.
- Una cuenta con consola implica más confianza que una de sólo SFTP. Conviene habilitarla únicamente a quienes la necesitan.
- El escáner de malware detecta y reporta; no elimina archivos ni reemplaza la actualización de las aplicaciones.
- La reputación del correo es compartida: los límites por cliente reducen el riesgo, pero una IP nueva requiere un período de calentamiento.
- Es un producto joven. Se recomienda tratar los primeros meses como cualquier software de infraestructura nuevo: despliegue escalonado, backups propios y un plan de regreso.