Skip to main contentSkip to footer

Blacklist

La ReportedIP Blacklist es una lista de direcciones IP maliciosas gestionada por la comunidad, generada automáticamente a partir de informes de ataques reales y disponible a través de API y GitHub. Úsala para bloquear direcciones IP maliciosas conocidas en tu cortafuegos, servidor web o aplicación; se actualiza a diario sin necesidad de revisión manual.

Cómo se genera la Blacklist

Cada dirección IP de la Blacklist procede de informes de la comunidad que llegan a nuestro motor de reputación. Una dirección IP solo se incluye cuando:

  • Su Confidence Score sea ≥ 75 % (calculada a partir de la frecuencia de los informes, la diversidad de fuentes, la gravedad y la actualidad)
  • Su informe más reciente tenga al menos 48 horas de antigüedad (período de espera para False Positives: las entradas solo se incluyen en la exportación una vez que la puntuación ha tenido tiempo de recalibrarse)
  • No figura en la Whitelist (se excluyen los motores de búsqueda, los proveedores de CDN y las infraestructuras de confianza)

La Blacklist se actualiza automáticamente; no hay revisión editorial manual. Todo el proceso es abierto y transparente. Sin clave, la comprobación de la blacklist DNSBL muestra el estado de cualquier dirección; con clave puedes verificar cualquier entrada a través de GET /reportedip/v2/check?ip=<ip>&verbose=true para ver el desglose exacto de la puntuación.

Repositorio de GitHub

La lista negra completa se publica como un repositorio público de GitHub, al que se envían datos diariamente desde la API en tiempo real. Los datos exportados tienen un retraso de 48 horas (el periodo de espera para False Positives descrito anteriormente). Puedes clonarlo, utilizarlo en procesos de CI/CD o integrarlo en tu infraestructura.

github.com/reportedip/reportedip-blacklist

Estructura del repositorio

text
reportedip-blacklist/
├── blacklist-all.txt       # All IPs, one per line
├── blacklist-all.json      # All IPs with metadata
├── blacklist-all.csv       # All IPs, CSV format
├── metadata.json           # Export metadata (version, counts, timestamps)
├── lists/                  # Thematic sub-lists
│   ├── spam.txt
│   ├── brute-force.txt
│   ├── cms-login.txt
│   ├── web-attacks.txt
│   ├── malware.txt
│   ├── ddos.txt
│   ├── fraud.txt
│   ├── infrastructure.txt
│   └── apt.txt
└── formats/                # Ready-to-include firewall snippets
    ├── nginx-deny.conf
    ├── apache-htaccess.txt
    └── iptables.sh

Formatos de archivo

Formato TXT

Texto sin formato, una dirección IP por línea. Las líneas que comienzan con # son comentarios que contienen metadatos como la fecha de generación y el recuento total.

text
# ReportedIP Blacklist - All IPs
# https://reportedip.com
#
# Copyright (c) 2026 ReportedIP / Patrick Schlesinger
# Licensed under CC BY 4.0 - https://creativecommons.org/licenses/by/4.0/
#
# IMPORTANT: Data is delayed by 48 hours.
# For real-time threat intelligence via API, contact: 1@reportedip.com
#
# Generated: 2026-07-22
# Total IPs: 12847
#
1.2.3.4
5.6.7.8
9.10.11.12

Formato JSON

Un meta bloque (versión de exportación, recuentos, marca de tiempo de generación) seguido de un entries matriz. categories son identificadores numéricos de Threat Categories; consúltalos en el catálogo de Threat Categories o GET /categories.

json
{
  "meta": {
    "version": "2026-07-22",
    "generatedAt": "2026-07-22T00:00:00Z",
    "totalCount": 12847
  },
  "entries": [
    {
      "ip": "1.2.3.4",
      "confidence": 95,
      "categories": [18, 21],
      "source": "dynamic"
    },
    {
      "ip": "5.6.7.8",
      "confidence": 82,
      "categories": [14],
      "source": "dynamic"
    }
  ]
}

Formato CSV

Valores separados por comas con una fila de encabezado. Fácil de importar a hojas de cálculo, bases de datos o herramientas SIEM. categories contiene identificadores numéricos de categoría separados por punto y coma.

csv
ip,confidence,categories,last_reported
1.2.3.4,95,"18;21","2026-07-19 14:22:00"
5.6.7.8,82,"14","2026-07-18 09:15:00"
9.10.11.12,78,"21","2026-07-17 20:45:00"

Integración con el cortafuegos

Utiliza los archivos de Blacklist para bloquear direcciones IP maliciosas a nivel de cortafuegos o de servidor web. A continuación se muestran ejemplos de integración para herramientas habituales.

¿Bloqueo en la capa de red? Los fragmentos de código que se muestran aquí son puntos de partida para una sola máquina. Para la configuración de producción, un conjunto de bloqueos por servicio, sincronización condicional cada hora, intercambio atómico, IPv6 y cortafuegos en el perímetro de la nube, sigue las instrucciones de Bloqueo a nivel de red .

Nginx

Genera una configuración de Blocklist e inclúyela en el bloque de servidor de Nginx:

bash
# Generate Nginx blocklist from TXT file
awk '{print "deny " $1 ";"}' blacklist-all.txt > /etc/nginx/blocklist.conf
nginx
# /etc/nginx/sites-enabled/default
server {
    include /etc/nginx/blocklist.conf;

    # ... rest of your config
}

Apache (.htaccess)

apache
# .htaccess: Block reported IPs
<RequireAll>
    Require all granted
    Require not ip 1.2.3.4
    Require not ip 5.6.7.8
    Require not ip 9.10.11.12
</RequireAll>

iptables (a través de ipset)

Carga la lista en un ipset y compara ese conjunto mediante una única regla. Una regla por cada IP supondría recorrer miles de reglas por cada paquete; la consulta del conjunto se mantiene constante independientemente del tamaño que alcance la lista.

bash
# Create the set and fill it in one pass (IPv4 entries only)
ipset create rip-block hash:ip family inet maxelem 65536 -exist
grep -E '^[0-9]+(\.[0-9]+){3}$' blacklist-all.txt \
  | sed 's|^|add rip-block |' | ipset restore -exist

# One rule blocks the whole set
iptables -I INPUT -m set --match-set rip-block src -j DROP

IPv6 necesita su propio conjunto (family inet6) y su propia ip6tables regla; consulta «Bloqueo a nivel de red» para ver el script completo, que incluye nftables, conjuntos por servicio y la sincronización cada hora.

Acceso a la API

El /blacklist Endpoint proporciona acceso en tiempo real a la Blacklist completa con opciones de filtrado. Se requiere una API Key con la función Threat Feed (nivel Contributor o superior). El Endpoint está sujeto a restricciones de funciones y no cuenta para tu cuota diaria de consultas ni de Reports; consulta los datos con la frecuencia que requiera tu estrategia de almacenamiento en caché. Consulta «Autenticación y Rate Limits» para conocer los niveles y las claves.

Parámetro Tipo Descripción
format cadena Formato de respuesta: json (por defecto), txt, csv
source cadena Fuente de la Blacklist: dynamic (por defecto): la Blacklist gestionada por la comunidad y puntuada automáticamente
confidence entero Minimum Confidence Score (0–100). Default value: 75. Alias: confidenceMinimum. Recomendado para el bloqueo automático: 90
category cadena Uno o más identificadores de Threat Categories, separados por comas (p. ej., 22,18 para SSH más Brute Force genérica). Catálogo completo en la página «Threat Categories» o a través de GET /categories
limit entero Número máximo de direcciones IP que se devolverán. Valor predeterminado: 10 000, mantén el valor predeterminado; los valores más pequeños truncan la lista
curl
curl -H "X-Key: YOUR_API_KEY" \
     "https://reportedip.com/wp-json/reportedip/v2/blacklist?format=txt&confidence=90&limit=50000"

Consulte la API Reference para obtener la documentación completa del Endpoint, el formato de respuesta y los parámetros adicionales.

Blacklists específicas de cada servicio

Combina el category filtro con confidence=90 para crear una lista de bloqueo por cada servicio expuesto. Cada lista solo contiene direcciones IP que se han notificado para el tipo de ataque correspondiente, por lo que puedes aplicarla por puerto: una dirección IP de la lista web nunca bloqueará el acceso a SSH a nadie.

Lista category Valor Categorías incluidas Aplicar a
SSH 22,18 Ataque de Brute Force a SSH, ataque de Brute Force genérico sshd, puerto 22
Correo 11,7,17,18 Email Spam, Phishing, Spoofing, Brute-Force (SMTP-AUTH/IMAP/POP3) Postfix/Exim, Dovecot, puertos 25, 465, 587, 110, 143, 993, 995
Web 21,16,10,19,12,31…58 Web App Attack, SQL Injection, Web Spam, Bad Web Bot, Blog Spam, además del bloque dedicado a WordPress (31–58): Brute Force en Login/XML-RPC/REST, vulnerabilidades en plugins, temas y el núcleo, spam en comentarios y registros, puertas traseras, escaneos. Toda la información en la página «Bloqueo a nivel de red» nginx/Apache, incluido el alojamiento de WordPress, puertos 80, 443
FTP 5,18 FTP Brute-Force, Brute-Force genérica vsftpd/proftpd, puerto 21
Periférico 4,14,20 DDoS Attack, Port Scan, Exploited Host todo el perímetro de la red, todos los puertos
curl
# SSH attackers only, plain text for ipset/nftables
curl -H "X-Key: YOUR_API_KEY" \
     "https://reportedip.com/wp-json/reportedip/v2/blacklist?confidence=90&format=txt&limit=50000&category=22,18"

Devuelve el ETag guardado en If-None-Match; las listas sin cambios responden 304 Not Modified, sin gastar cupo. El ritmo de sondeo y el caso de una etiqueta caducada se tratan en Bloqueo a nivel de red. Los ID de categoría válidos van del 1 al 63: los ID del 31 al 58 forman el bloque de WordPress que incluye la lista web anterior, y los ID del 59 al 63 proceden de honeypots de alta interacción. Catálogo completo: Threat Categories.

Una tarea cron que descarga la lista y recarga el cortafuegos pertenece al resto de la configuración de red: el script de sincronización de Bloqueo a nivel de red descarga de forma condicional, cambia el conjunto de forma atómica, rechaza una descarga truncada y gestiona IPv6, cosas que un simple descargar y reemplazar no hace.

En tiempo real frente a GitHub

Importante: El repositorio de GitHub se actualiza a diario, pero los datos exportados tienen un período de espera de 48 horas para evitar False Positives. Para un bloqueo en tiempo real con los datos más actuales, utiliza la API directamente: refleja los cambios de forma inmediata a medida que llegan nuevos informes, mientras que los archivos de GitHub tienen un retraso de hasta dos días. Los servidores de correo también pueden utilizar la Blacklist como una zona DNSBL / RBL sin necesidad de descargar ningún archivo.
Método Latencia Se requiere autenticación Ideal para
API En tiempo real Sí (API Key) Bloqueo automático, Firewall Rules dinámicas, integración con SIEM
GitHub Hasta 48 horas No Firewall Rules estáticas, pipelines de CI/CD, análisis sin conexión

Última actualización: · Mantenido por el equipo de ReportedIP

Security Focused
Conforme al RGPD
Made in Germany
Volver a la documentación