Protege tu servidor web con una lista negra de IP en tiempo real
La lista negra ReportedIP contiene aproximadamente 10 000 direcciones IP con un nivel de confianza de abuso superior al 90 %, y se actualiza del lado del servidor cada 15 minutos (a fecha de 21 de julio de 2026). Un único parámetro de consulta convierte esa lista única en cinco listas de bloqueo de cortafuegos específicas para cada puerto: SSH, correo, web, FTP y perímetro de red.
La guía completa con los scripts de cron e ipset se encuentra en la documentación de la lista negra.
Por qué es mejor tener una lista de bloqueados por cada servicio que una sola lista enorme
Cada informe de la ReportedIP incluye identificadores de categorías de amenazas: son 58 en total, desde «SSH Brute-Force» (22) hasta un bloque dedicado a WordPress (31-58) que abarca ataques de fuerza bruta en el inicio de sesión y en XML-RPC, vulnerabilidades en plugins, spam en los comentarios y escaneos en busca de puertas traseras. El category parámetro activado GET /blacklist admite una lista de esos ID separados por comas, de modo que cada servicio expuesto reciba exactamente los atacantes que lo tienen como objetivo.
| Lista | Categorías | Aplicado a | Tamaño (21 de julio de 2026) |
|---|---|---|---|
| SSH | 22,18 | Puerto 22 | 5.141 direcciones IP |
| Correo | 11,7,17,18 | Puertos 25, 465, 587, 110, 143, 993, 995 | 2.784 direcciones IP |
| Web | 21,16,10,19,12 + Bloque de WP 31–58 | Puertos 80 y 443 | 3.666 direcciones IP |
| FTP | 5,18 | Puerto 21 | 2.580 direcciones IP |
| Borde | 4,14,20 | Todos los puertos | 5.920 direcciones IP |
Los conjuntos con ámbito de puerto minimizan el impacto de los errores: una dirección IP incluida en la lista web nunca puede impedir que un administrador acceda a SSH. Las listas se mantienen limpias porque una puntuación superior a 90 requiere al menos 10 informes válidos de dos o más informantes independientes; los informes antiguos se eliminan progresivamente con una vida media de 30 días; y los rastreadores conocidos se excluyen del lado del servidor antes de que se genere la lista.
Cómo obtener una lista y bloquearla en cinco minutos
Una solicitud GET autenticada por cada lista de servicios, en texto sin formato, una dirección IP por línea:
curl -H "X-Key: YOUR_API_KEY"
"https://reportedip.de/wp-json/reportedip/v2/blacklist?confidence=90&format=txt&limit=10000&category=22,18"
| while read ip; do ipset add rip-ssh "$ip" -exist; done
iptables -I INPUT -p tcp --dport 22 -m set --match-set rip-ssh src -j DROP
Basta con una tarea cron cada hora por lista: el punto final devuelve un ETag, y reenviarlo como If-None-Match devuelve listas sin cambios con 304 Not Modified, por lo que repetir las consultas no cuesta prácticamente nada. Las consultas a la lista negra no se contabilizan en ninguna cuota diaria; los parámetros y los formatos de respuesta se encuentran en el Referencia de la API. Los operadores de correo que prefieran las consultas DNS a la sincronización de listas pueden consultar los mismos datos que un zona RBL privada.
Notificar los ataques con fail2ban
El bloqueo es la mitad del bucle. Un pequeño fail2ban action publica cada expulsión de tu servidor en POST /report con la categoría de amenaza correspondiente a cada servidor: las prohibiciones de sshd se clasifican en la categoría 22, las de Postfix en la categoría 11 y las de nginx en la categoría 21. Los informes solo consumen tu cuota diaria de informes, nunca la cuota de comprobaciones, y cada informe refina las listas exactas que obtienes durante la siguiente hora.
La configuración de acciones predefinida y la tabla de correspondencias entre «jail» y categorías se encuentran en la guía de integración de fail2ban.
Empieza con el plan gratuito
- Crea una cuenta gratuita: el acceso a la lista negra está disponible a partir del nivel «Contributor», sin necesidad de tarjeta de crédito.
- Documentación de Blacklist: listas de servicios, formatos y script de actualización automática
- Integración con fail2ban: comunica tus bloqueos a la comunidad