Skip to main contentSkip to footer

Blacklist

La lista negra de ReportedIP 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

Todas las direcciones IP de la Blacklist proceden 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: 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 del cortafuegos o del servidor web. A continuación se muestran ejemplos de integración con herramientas habituales.

Nginx

Genera una configuración de Blocklist e inclúyela en el bloque de tu servidor 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

bash
# Block all IPs from the blacklist
while read ip; do
    iptables -A INPUT -s "$ip" -j DROP
done < blacklist-all.txt

fail2ban

Crea una «jail» personalizada que bloquee las direcciones IP de la ReportedIP Blacklist:

ini
# /etc/fail2ban/jail.d/reportedip.conf
[reportedip-blacklist]
enabled  = true
banaction = iptables-allports
bantime  = 86400
filter   = reportedip-blacklist
logpath  = /var/log/reportedip-blacklist.log
maxretry = 1

fail2ban también funciona en sentido contrario: una acción predefinida notifica cada bloqueo en tu servidor a la comunidad a través de POST /report. Consulta la guía de integración de fail2ban para conocer la configuración de la acción y la correspondencia entre jaulas y categorías.

Acceso a la API

El /blacklist Endpoint proporciona acceso en tiempo real a la lista negra 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 informes; consúltalo 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 Community Blacklist gestionada por la comunidad y puntuada automáticamente. Los demás valores están reservados para uso interno
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=10000"

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

Blacklists específicas del 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 Web App Attack, SQL Injection, Web Spam, Bad Web Bot, Blog Spam — incluye ataques de Brute Force al inicio de sesión de WordPress, XML-RPC y REST, vulnerabilidades en plugins y el núcleo, spam en comentarios y escaneos, que se registran con estos ID nginx/Apache, incluido el alojamiento de WordPress — puertos 80, 443
FTP 5,18 FTP Brute-Force, Brute-Force genérica vsftpd/proftpd — puerto 21
Periferia 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=10000&category=22,18"

Las listas se regeneran en el servidor cada 15 minutos. Basta con realizar un sondeo cada hora por lista; envía la información almacenada ETag respuesta con If-None-Match y, si las listas no han cambiado, responde con 304 Not Modified. Todos los ID de categoría válidos están en el rango 1–30; consulta el catálogo de Threat Categories.

Script de actualización automática

Configura una tarea cron para descargar automáticamente la Blacklist más reciente y actualizar las Firewall Rules.

Programación de cron

bash
# /etc/cron.d/reportedip-blacklist
0 */6 * * * root /usr/local/bin/update-reportedip-blocklist.sh

Script de actualización

bash
#!/bin/bash
# /usr/local/bin/update-reportedip-blocklist.sh
# Downloads the latest ReportedIP blacklist and updates Nginx blocklist

API_KEY="your-api-key-here"
API_URL="https://reportedip.com/wp-json/reportedip/v2/blacklist"
BLOCKLIST="/etc/nginx/blocklist.conf"
TMPFILE=$(mktemp)

# Download latest blacklist in TXT format
curl -sf -H "X-Key: $API_KEY" \
     "$API_URL?format=txt&confidence=90&limit=10000" \
     -o "$TMPFILE"

if [ $? -eq 0 ] && [ -s "$TMPFILE" ]; then
    # Convert to Nginx deny directives
    grep -v "^#" "$TMPFILE" | grep -v "^$" | \
        awk '{print "deny " $1 ";"}' > "$BLOCKLIST"

    # Reload Nginx
    nginx -t && systemctl reload nginx

    echo "$(date): Blocklist updated with $(wc -l < "$BLOCKLIST") entries"
else
    echo "$(date): Failed to download blacklist" >&2
fi

rm -f "$TMPFILE"

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 RBL Zone 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: · Gestionado por el equipo de reportedIP

Security Focused
GDPR Compliant
Made in Germany
Volver a Docs