Cuando un atacante encuentra su servidor, lo primero que hace es buscar puertas abiertas: unas contraseñas en el 22, un intento de RDP en el 3389, un Redis sin contraseña en el 6379, un viejo fallo de SMB en el 445. La mayoría de esos intentos van a puertos que no usa y, como allí no escucha nada, no dejan rastro. El ataque ocurrió; usted no lo vio.
Un sensor honeypot cubre exactamente ese hueco: coloca servicios falsos de aspecto realista en los puertos libres, registra quién intentó qué y lo aporta al grupo compartido de amenazas. Se instala con un comando, no cuesta nada y obtiene dos cosas: ver quién está tanteando su servidor y subir su cuenta al nivel de contribuyente.
Qué hace un sensor y qué no
Hace: en los puertos libres muestra una página de inicio de sesión falsa de Exchange, un panel de FortiGate, un saludo de MySQL o un prompt de Telnet; lee la petición, etiqueta los patrones de explotación conocidos y reporta «esta dirección intentó esto en este puerto».
No hace: guardar ni enviar contraseñas, nombres de usuario o cuerpos de petición. Los señuelos no ejecutan comandos, no escriben archivos y no abren shells: no es un honeypot de «alta interacción» donde el atacante llega a entrar. Un evento es una etiqueta y una marca de tiempo.
Es una decisión deliberada: los honeypots de alta interacción son trabajo de mantenimiento y un riesgo real. Aquí el objetivo no es estudiar al atacante, sino identificar la dirección que escanea.
Instalación en un comando
Necesita un servidor Linux con systemd, Python 3.6 o superior, una IP accesible desde internet y una clave de API gratuita, que puede crear en un minuto en el panel.
El comando instala un servicio systemd reforzado (ipdb-sensor) que escucha en los puertos que su servidor no usa. Si no quiere confiar a ciegas en una tubería —y no debería—, lea el script antes; la suma SHA-256 de lo descargado se verifica durante la instalación:
Las opciones más usadas:
| Opción | Qué hace |
|---|---|
--name web-01 | Nombre del sensor en el panel (por defecto, el del host) |
--profiles @edge,exchange | Qué señuelos se ejecutan |
--ports 23,3389,6379 | Puertos TCP en crudo adicionales |
--ignore 198.51.100.0/24 | Nunca reportar sus direcciones de oficina o monitorización |
--fail2ban | Leer también los bloqueos del registro de fail2ban |
--status / --upgrade / --uninstall | Estado, actualización, desinstalación |
¿Qué trampas abrir?
El sensor trae 64 perfiles de señuelo listos y no hace falta elegirlos uno a uno: los paquetes que empiezan por @ son grupos temáticos.
| Paquete | Contenido | Para quién |
|---|---|---|
@classic | FTP, Telnet, SSH, RDP, MySQL, Redis, MongoDB, VNC… | Por defecto; útil en cualquier servidor |
@recommended | Exchange, FortiGate, GlobalProtect, NetScaler + clásicos | La mezcla más escaneada en la práctica |
@edge | FortiGate, Ivanti, Cisco ASA, F5, SonicWall, pfSense… | Escaneos de equipos de borde y VPN |
@web | WordPress, phpMyAdmin, cPanel, Plesk, Tomcat… | Hosting y servidores web |
@devops | Jenkins, GitLab, Grafana, Docker, Kubernetes, etcd… | CI/CD y herramientas internas |
@mail · @databases · @remote · @iot | Grupos de correo, bases de datos, acceso remoto e IoT | Máquinas con un rol claro |
Elija puertos que no utilice: si el sensor no puede abrir uno, omite ese señuelo en silencio. Para ver qué señuelo ocupa qué puerto, use el generador de la página del honeypot: construye el comando de instalación a partir de su selección.
Con qué permisos corre el servicio
La instalación necesita sudo una vez; el servicio no corre como root, sino como un usuario temporal sin privilegios creado por systemd (DynamicUser) cuya única capacidad es abrir puertos (CAP_NET_BIND_SERVICE). El sistema de archivos es de solo lectura, /tmp es privado, no hay acceso a dispositivos, solo se permiten sockets IPv4/IPv6 y el de notificación de systemd, las llamadas al sistema están filtradas y la memoria se limita a 96 MB. Todo el código es un único archivo Python sin dependencias, corto a propósito para que pueda leerse.
Comprobar que funciona
En el registro verá qué señuelos se abrieron, cuáles se omitieron por puertos ocupados y el primer envío. Los eventos se agrupan y salen una vez por minuto, así que los primeros registros pueden tardar un minuto en aparecer en el panel. Sus sensores, las direcciones vistas y el número de eventos están en Mis sensores.
Si usa un servidor en la nube, revise el grupo de seguridad: si el cortafuegos del proveedor cierra los puertos, ningún escáner llega al sensor y la página se queda vacía. Lo normal es ver eventos en las primeras horas: internet no es un lugar silencioso.
Qué pasa con los datos: la regla de las dos cuentas
Una dirección que vea su sensor no entra directamente en la lista de bloqueo. Para entrar en el grupo de sensores tiene que haber sido vista en los últimos 7 días por sensores de al menos dos cuentas distintas y dos redes distintas. Un sensor no puede añadir a nadie por sí solo: así, un escaneo mal configurado o alguien de mala fe no puede contaminar el grupo.
Lo que entra en el grupo queda disponible para todos en los conjuntos de datos abiertos y a través de la API. El escaneo que absorbe su servidor se convierte en un bloqueo en el cortafuegos de otra persona, y solo por eso la lista vale algo.
La contrapartida: nivel de contribuyente
Una cuenta gratuita puede hacer 1.000 consultas al día y una con el correo verificado, 10.000. Las cuentas verificadas con un sensor activo (o una instalación de Shield o del plugin de WordPress) llegan a 30.000 al día. El nivel se calcula, no se concede: vale mientras el sensor haya reportado en los últimos 7 días y decae por sí solo cuando calla. Sin pagos, sin planes, sin «edición empresarial».
Errores habituales
- Reportar sus propios escáneres. Si su análisis interno de vulnerabilidades toca todos los puertos cada semana, excluya sus rangos con
--ignore. - Elegir el puerto de un servicio real. Si en el 22 hay SSH, el señuelo de SSH no se abre. Muévalo (
ssh:2222) o no incluya ese paquete. - Instalarlo detrás de NAT. En una dirección inalcanzable desde fuera, un honeypot no ve nada; sin redirección de puertos, póngalo en una máquina con IP pública.
- Empezar por la máquina crítica. Aunque es seguro, la mejor costumbre es instalarlo primero en un servidor secundario y leer el registro durante un día.
Actualizar y desinstalar
La desinstalación elimina el servicio, la unidad y el directorio; solo quedan los eventos pasados en su panel. La cuenta no se toca: únicamente el nivel de contribuyente decae tras 7 días.
Preguntas frecuentes
¿Un sensor honeypot pone en riesgo mi servidor?
Los señuelos no ejecutan comandos, no escriben archivos y no abren ninguna shell: leen la petición, devuelven una respuesta realista y etiquetan el evento. El servicio no corre como root, sino como un usuario temporal sin privilegios creado por systemd (DynamicUser); su única capacidad es abrir puertos, su sistema de archivos es de solo lectura y la memoria está limitada a 96 MB. Aun así, una máquina secundaria es mejor primer anfitrión que su servidor de base de datos crítico.
¿Tocará puertos que ya uso?
No. El sensor intenta abrir cada puerto primero; si está ocupado, omite ese señuelo y lo anota en el registro. Si en el 22 corre su SSH real, el señuelo de SSH queda desactivado en silencio: deje el puerto libre o mueva el señuelo a otro (ssh:2222, por ejemplo).
¿Cuánto envía? ¿Me gasta la cuota?
Los eventos se agrupan y se envían una vez por minuto, y no se descuentan de su cuota diaria de consultas: reportar y consultar son contadores distintos. Más bien al contrario: un sensor activo sube su cuenta al nivel de contribuyente.
¿Una dirección que ve un solo sensor entra directamente en la lista?
No. Para entrar en el grupo de sensores, una dirección debe haber sido vista en los últimos 7 días por sensores de al menos dos cuentas y dos redes distintas. Un sensor no puede añadir direcciones por sí solo, de modo que un escáner mal configurado —o alguien de mala fe— no puede contaminar el grupo.
Para proteger su sitio con los mismos datos, vea la instalación de Shield; si usa WordPress, la guía del plugin; y para la puntuación, el artículo sobre reputación.
Comentarios 0
Comparte una pregunta, tu experiencia o una corrección, registrado o de forma anónima.
Aún no hay comentarios. Sé el primero.