Blacklist
La ReportedIP Blacklist est une liste communautaire d'adresses IP malveillantes, générée automatiquement à partir de rapports d'attaques réels et accessible via une API et GitHub. Utilisez-la pour bloquer les adresses IP malveillantes connues dans votre pare-feu, votre serveur web ou votre application — elle est mise à jour quotidiennement sans intervention manuelle.
Comment la Blacklist est-elle générée ?
Chaque adresse IP figurant sur la Blacklist provient de signalements de la communauté qui ont été traités par notre moteur de réputation. Une adresse IP n’est incluse que lorsque :
- Son Confidence Score est ≥ 75 % (calculé à partir de la fréquence des signalements, de la diversité des sources, de la gravité et de la récence)
- Son signalement le plus récent date d’au moins 48 heures (délai de sécurité contre les False Positives — les entrées ne sont exportées qu’une fois que le score a eu le temps de se recalibrer)
- Elle ne figure pas sur la Whitelist (moteurs de recherche, fournisseurs de CDN, infrastructures connues pour être fiables sont exclus)
La Blacklist est actualisée automatiquement — il n’y a pas de vérification éditoriale manuelle. L’ensemble du processus
est ouvert et transparent : vous pouvez vérifier n’importe quelle entrée via
GET /reportedip/v2/check?ip=<ip>&verbose=true
pour consulter la répartition exacte du score.
Dépôt GitHub
La Blacklist complète est publiée sous la forme d’un dépôt GitHub public, mis à jour quotidiennement à partir des données de l’API en temps réel. Les données exportées elles-mêmes sont décalées de 48 heures (le délai de refroidissement des False Positives décrit ci-dessus). Vous pouvez le cloner, l’utiliser dans des pipelines CI/CD ou l’intégrer à votre infrastructure.
github.com/reportedip/ReportedIP Blacklist
Structure du dépôt
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
Formats de fichiers
Format TXT
Texte brut, une adresse IP par ligne. Les lignes commençant par # sont des commentaires
contenant des métadonnées telles que l'heure de génération et le nombre total d'entrées.
# 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
Format JSON
Un meta bloc (version d'exportation, nombres, horodatage de génération) suivi d'un
entries tableau. categories sont des identifiants numériques de catégories de menaces — les faire correspondre
au catalogue des catégories de menaces
ou GET /categories.
{
"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"
}
]
}
Format CSV
Valeurs séparées par des virgules avec une ligne d’en-tête. Facile à importer dans des tableurs, des bases de données ou des outils SIEM.
categories contient des identifiants de catégorie numériques séparés par des points-virgules.
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"
Intégration au pare-feu
Utilisez les fichiers de Blacklist pour bloquer les adresses IP malveillantes au niveau du pare-feu ou du serveur web. Vous trouverez ci-dessous des exemples d’intégration pour des outils courants.
Nginx
Générez une configuration de Blocklist et intégrez-la dans votre bloc de serveur Nginx :
# Generate Nginx blocklist from TXT file
awk '{print "deny " $1 ";"}' blacklist-all.txt > /etc/nginx/blocklist.conf
# /etc/nginx/sites-enabled/default
server {
include /etc/nginx/blocklist.conf;
# ... rest of your config
}
Apache (.htaccess)
# .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
# Block all IPs from the blacklist
while read ip; do
iptables -A INPUT -s "$ip" -j DROP
done < blacklist-all.txt
fail2ban
Créez une « jail » personnalisée qui bloque les adresses IP figurant sur la ReportedIP Blacklist :
# /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 fonctionne également dans l'autre sens : une action prédéfinie signale chaque blocage effectué sur votre serveur
à la communauté via POST /report. Consultez le
guide d'intégration de fail2ban pour la
configuration de l'action et le mappage entre les jails et les catégories.
Accès à l’API
Le /blacklist
Endpoint offre un accès en temps réel à la liste noire complète avec
des options de filtrage. Une API Key avec la fonctionnalité « Threat Feed » (niveau Contributor et supérieur) est requise.
Le point de terminaison est soumis à des restrictions de fonctionnalités et n’
est pas
pris en compte dans votre quota quotidien de vérifications ou de
rapports — interrogez-le aussi souvent que votre stratégie de mise en cache l’exige. Consultez la section
« Authentification et Rate Limits »
pour connaître les niveaux d’abonnement et les clés.
| Paramètre | Type | Description |
|---|---|---|
format |
chaîne de caractères | Format de réponse : json (par défaut), txt, csv |
source |
chaîne | Source de la Blacklist : dynamic (par défaut) — la Community Blacklist gérée par la communauté et notée automatiquement. Les autres valeurs sont réservées à un usage interne |
confidence |
entier | Confidence Score minimum (0–100). Valeur par défaut : 75. Alias : confidenceMinimum. Recommandé pour le blocage automatique : 90 |
category |
chaîne | Un ou plusieurs identifiants de Threat Categories, séparés par des virgules (par ex. 22,18 pour SSH et une attaque par Brute Force générique). Catalogue complet sur la page Threat Categories ou via GET /categories |
limit |
entier | Nombre maximal d’adresses IP à renvoyer. Valeur par défaut : 10 000 — conservez la valeur par défaut ; des valeurs inférieures tronqueront la liste |
curl -H "X-Key: YOUR_API_KEY" \
"https://reportedip.com/wp-json/reportedip/v2/blacklist?format=txt&confidence=90&limit=10000"
Consultez l'API Reference pour obtenir la documentation complète sur les Endpoints, le format de réponse et les paramètres supplémentaires.
Blacklists spécifiques au service
Combinez le category filtre avec confidence=90 pour créer une liste de blocage par
service exposé. Chaque liste ne contient que les adresses IP signalées pour le type d’attaque correspondant ; vous
pouvez donc l’appliquer au niveau d’un port : une adresse IP figurant sur la liste Web n’empêchera jamais quiconque d’accéder à SSH.
| Liste | category Valeur |
Catégories incluses | Appliquer à |
|---|---|---|---|
| SSH | 22,18 |
Attaque de Brute-Force SSH, attaque de Brute-Force générique | sshd — port 22 |
| Courrier | 11,7,17,18 |
Email Spam, Phishing, Spoofing, Brute-Force (SMTP-AUTH/IMAP/POP3) | Postfix/Exim, Dovecot — ports 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 — couvre les attaques par Brute Force sur la connexion WordPress/XML-RPC/REST, les exploits des plugins et du cœur du système, le spam dans les commentaires et les analyses, qui sont signalés sous ces identifiants | nginx/Apache, y compris l'hébergement WordPress — ports 80, 443 |
| FTP | 5,18 |
FTP Brute-Force, Brute-Force générique | vsftpd/proftpd — port 21 |
| Périphérie | 4,14,20 |
DDoS Attack, Port Scan, Exploited Host | ensemble de la périphérie du réseau, tous les ports |
# 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"
Les listes sont régénérées côté serveur toutes les 15 minutes. Une interrogation toutes les heures par liste suffit ; renvoyez les
données ETag en les renvoyant If-None-Match et, pour les listes inchangées, répondez par
304 Not Modified. Tous les identifiants de catégorie valides se situent dans la plage 1–30 — voir le
catalogue des Threat Categories.
Script de mise à jour automatique
Configurez une tâche cron pour télécharger automatiquement la dernière Blacklist et mettre à jour vos Firewall Rules.
Planification cron
# /etc/cron.d/reportedip-blacklist
0 */6 * * * root /usr/local/bin/update-reportedip-blocklist.sh
Script de mise à jour
#!/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"
Temps réel vs GitHub
| Méthode | Latence | Authentification requise | Idéal pour |
|---|---|---|---|
| API | En temps réel | Oui (API Key) | Blocage automatisé, Firewall Rules dynamiques, intégration SIEM |
| GitHub | Jusqu'à 48 heures | Non | Static Firewall Rules, CI/CD pipelines, offline analysis |
Dernière mise à jour : · Géré par l'équipe ReportedIP