Skip to main contentSkip to footer
Noticias sobre seguridad

Protege tu servidor web con una Blacklist de IP en tiempo real

Updated Patrick Schlesinger
Infographic: one ReportedIP blacklist split into five service-specific firewall block lists for SSH, mail, web, FTP and edge, with 10,000 listed IPs, 58 threat categories and a 15-minute refresh cycle

The ReportedIP Community Blacklist contains approximately 10 000 IP addresses with an abuse confidence level exceeding 90 %, and it is updated on the server side every 15 minutes (as of July 21, 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 Blacklist.

Por qué es mejor tener una lista de bloqueados por cada servicio que una lista gigante

Cada informe de la red ReportedIP incluye identificadores de Threat Categories: son 58 en total, desde «SSH Brute-Force» (22) hasta un bloque dedicado a WordPress (31-58) que abarca ataques de fuerza bruta contra el Login y XML-RPC, vulnerabilidades en plugins, spam en los comentarios y escaneos en busca de puertas traseras. El category parámetro de GET /blacklist acepta una lista de esos identificadores separados por comas, de modo que cada servicio expuesto recibe exactamente los atacantes que lo tienen como objetivo.

ListaCategoríasAplicado aTamaño (21 de julio de 2026)
SSH22,18Puerto 225.141 direcciones IP
Correo11, 7, 17, 18Puertos 25, 465, 587, 110, 143, 993, 9952.784 direcciones IP
Web21,16,10,19,12 + Bloque de WP 31–58Puertos 80 y 4433.666 direcciones IP
FTP5,18Puerto 212.580 direcciones IP
Borde4, 14, 20Todos los puertos5.920 direcciones IP

Los conjuntos con ámbito de puerto minimizan el coste 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 Reports válidos de dos o más informantes independientes, los Reports antiguos caducan 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.com/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 cada lista: el Endpoint devuelve un ETag, y al reenviarlo como If-None-Match respuesta a las listas que no han cambiado con 304 Not Modified, por lo que las consultas repetidas no suponen prácticamente ningún coste. Las consultas a la Blacklist no cuentan para ninguna cuota diaria; los parámetros y los formatos de respuesta se encuentran en la API Reference. Los operadores de correo que prefieran las consultas DNS a la sincronización de listas pueden consultar los mismos datos como si se tratara de una zona RBL privada.

Notificar los ataques con fail2ban

El bloqueo es la mitad del proceso. Una pequeña acción de fail2ban envía cada bloqueo de tu servidor a POST /report con la Threat Category correspondiente a cada «jail»: las exclusiones de sshd se envían como Threat Category 22, las de Postfix como Threat Category 11 y las de nginx como Threat Category 21. Los informes solo consumen tu cuota diaria de informes, nunca la cuota de comprobaciones, y cada informe afina las listas exactas que obtendrás en 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 Free tier

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Rellena este campo
Rellena este campo
Por favor, introduce una dirección de correo electrónico válida.
Tienes que aprobar los términos para continuar