Presentación del plugin SafeIPLogin
🛡️ ¿Qué es?
SafeIPLogin es un plugin para FacturaScripts que añade una capa de control antes del inicio de sesión: comprueba desde dónde se conecta quien intenta entrar y, si no está autorizado, ni siquiera se llega a validar el usuario y la contraseña.
La autorización se define mediante dos listas blancas independientes: una de direcciones IP y otra de países. Además, el plugin permite revisar y levantar los bloqueos que el propio FacturaScripts aplica tras varios intentos fallidos de acceso.
📦 Ejemplo de uso
Una asesoría tiene FacturaScripts publicado en internet para que su personal trabaje desde casa. Sus empleados se conectan con fibra doméstica y con datos móviles, de modo que su IP cambia constantemente y mantener una lista de IPs fijas es inviable.
La configuración sería:
- Añadir España a la lista de países. El plugin descarga los rangos de IP asignados al país y permite entrar desde cualquiera de ellos.
- Añadir la IP fija de la oficina a la lista de IPs, como excepción permanente.
- Añadir la IP de la VPN corporativa para el socio que pasa temporadas en Portugal.
A partir de ese momento, cualquier intento de acceso desde fuera de esos orígenes se rechaza sin llegar a comprobar la contraseña, lo que deja fuera de golpe a la práctica totalidad de los ataques automatizados de fuerza bruta, que provienen de redes de todo el mundo.
✨ Características principales
- White List de IPs: direcciones individuales, rangos e intervalos en notación CIDR.
- White List de Países: autorización por país de origen de la IP, pensada para usuarios con IP dinámica.
- Descarga e importación automática de los rangos de IP de cada país.
- Actualización mensual de los rangos mediante tarea programada.
- Soporte completo de IPv4 e IPv6 en ambas listas.
- Detección del país mediante la cabecera CF-IPCountry cuando la instalación está detrás de Cloudflare.
- Tratamiento específico de las IPs de red local, para no bloquear instalaciones alojadas en la propia oficina.
- Gestión de los bloqueos activos por intentos fallidos, con desbloqueo manual de IPs y usuarios.
- Posibilidad de desactivar temporalmente cualquier entrada sin borrarla.
🔀 Las dos listas
🌐 1. White List de IPs
Autoriza direcciones concretas: una IP individual (88.24.115.92), un rango (192.168.1.10-192.168.1.50) o una subred (192.168.1.0/24, 2a02:9000::/20).
- Ideal para IPs fijas: oficinas, servidores, VPN corporativas.
- Control muy preciso, incluso dentro de la propia red local.
- Requiere mantenimiento si las IPs cambian.
🗺️ 2. White List de Países
Autoriza todas las IPs asignadas a un país. Al añadirlo, el plugin descarga sus rangos y los guarda en la base de datos.
- Resuelve el problema de las IPs dinámicas de los operadores.
- No necesita mantenimiento manual: los rangos se refrescan solos cada mes.
- Menos preciso: autoriza a todo un país, no a equipos concretos.
Las dos listas son independientes y basta con cumplir una de ellas para acceder. Si ambas están vacías, el plugin no restringe nada.
🗝️ Conceptos clave
- White List — Lista de orígenes autorizados. Lo que no está en ella, no entra
- IP Permitida — Entrada de la lista de IPs: dirección, rango o subred
- País Permitido — Entrada de la lista de países, con sus rangos de IP importados
- Rango de IP — Bloque de direcciones consecutivas asignado a un país
- IP privada — Dirección de red local (
192.168.x.x,10.x.x.x,127.0.0.1, …), que no pertenece a ningún país - Bloqueo activo — IP o usuario bloqueado automáticamente tras varios intentos fallidos de login
⚙️ Requisitos
- FacturaScripts 2026 o superior
- PHP 8.1 o superior
- Salida a internet desde el servidor, solo si se va a usar la lista de países (para descargar los rangos)
🧭 Acceso al plugin
El plugin no añade entradas nuevas al menú: amplía la pantalla de usuarios con tres pestañas, en Administrador → Usuarios:
- IPs Permitidas — listado y gestión de la White List de IPs
- Países Permitidos — listado y gestión de la White List de Países
- Bloqueos Activos — IPs y usuarios bloqueados por intentos fallidos
📊 Flujo de validación
Intento de login
│
▼
Detectar la IP real del cliente
│
▼
¿Hay alguna lista configurada? ─────── no ──► Acceso permitido
│ sí
▼
¿Es una IP de red local? ───── sí ──► Solo se comprueba la lista de IPs
│ no
▼
¿Está en la White List de IPs? ─────── sí ──► Acceso permitido
│ no
▼
¿Pertenece a un país autorizado? ───── sí ──► Acceso permitido
│ no
▼
Acceso bloqueado
Solo si el origen resulta autorizado se continúa con la validación normal de usuario y contraseña.
⚠️ Antes de empezar
Riesgo de perder el acceso Una configuración incorrecta puede dejarte fuera de tu propio ERP. Añade siempre primero tu IP, o un rango que la cubra, y comprueba que puedes entrar antes de restringir más.
Si trabajas en local o el ERP está instalado en la red de la oficina, ten en cuenta que activar un país no basta: revisa el apartado de accesos desde la red local en Control de Acceso por IP.