Utiliser un BLCheck
Lorsqu’on envoie des emails, il arrive parfois qu’on soit « blacklisté » par des solutions comme Spamhaus, Barracuda, etc … Mais comment savoir de façon automatisé qu’on est « blacklisté » (sans souscrire à un service online).
Monitoring SAAS :
Il suffit d’aller sur l’une des solutions ci-dessous (la configuration est relativement rapide). Vous allez ainsi pouvoir visualiser si votre nom de domaine est blacklisté par x ou y solution.
Monitoring custom :
Nous allons réaliser un script permettant de détecter si une IP est actuellement blacklisté chez un prestataire donnée (Ex : Spamhaus, barracuda, CBL, …). Ajoutez l’exécution de votre script dans un cron pour recevoir tous les jours (ou toutes les heures) l’état de votre/vos IP(s).
Comment faire concrètement ?
1er Etape :
Récupérer le script sur GitHub.
https://github.com/eewee/blcheck
2ème Etape :
Changer la valeur de emailTo et emailFrom.
3ème Etape :
Configurer un cron pour exécuter l’url du script en ajoutant en query string ip=votre_adresse_ip_a_tester.
4ème Etape :
Terminé. Vous allez recevoir l’email rapport selon la fréquence choisit.
$ip = $_GET['ip'];
if (!filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)) {
echo 'error ip not valid';
return false;
}
Ci-dessus :
On récupère l’ip passée en « query string ».
On check qu’il s’agisse d’une IPV4 (sinon on s’arrête ici).
// EMAIL
$emailTo = "contact@tld.com";
$emailFrom = "contact@tld.com";
$emailSubject = "[Blacklist] detection (".$ip.")";
Ci-dessus :
Vous devez indiquer l’adresse email de réception (=emailTo) et d’émission (emailFrom), qui seront utilisées lors de l’envoi du rapport.
// LIST RBL (Realtime Blackhole List)
$rbls = [
'b.barracudacentral.org',
'cbl.abuseat.org',
'http.dnsbl.sorbs.net',
'misc.dnsbl.sorbs.net',
'socks.dnsbl.sorbs.net',
'web.dnsbl.sorbs.net',
'dnsbl-1.uceprotect.net',
'dnsbl-3.uceprotect.net',
'sbl.spamhaus.org',
'zen.spamhaus.org',
'psbl.surriel.com',
'dnsbl.njabl.org',
'rbl.spamlab.com',
'noptr.spamrats.com',
'cbl.anti-spam.org.cn',
'dnsbl.inps.de',
'httpbl.abuse.ch',
'korea.services.net',
'virus.rbl.jp',
'wormrbl.imp.ch',
'rbl.suresupport.com',
'ips.backscatterer.org',
'opm.tornevall.org',
'multi.surbl.org',
'tor.dan.me.uk',
'relays.mail-abuse.org',
'rbl-plus.mail-abuse.org',
'access.redhawk.org',
'rbl.interserver.net',
'bogons.cymru.com',
'bl.spamcop.net',
'dnsbl.sorbs.net',
'dul.dnsbl.sorbs.net',
'smtp.dnsbl.sorbs.net',
'spam.dnsbl.sorbs.net',
'zombie.dnsbl.sorbs.net',
'dnsbl-2.uceprotect.net',
'pbl.spamhaus.org',
'xbl.spamhaus.org',
'bl.spamcannibal.org',
'ubl.unsubscore.com',
'combined.njabl.org',
'dyna.spamrats.com',
'spam.spamrats.com',
'cdl.anti-spam.org.cn',
'drone.abuse.ch',
'dul.ru',
'short.rbl.jp',
'spamrbl.imp.ch',
'virbl.bit.nl',
'dsn.rfc-ignorant.org',
'dsn.rfc-ignorant.org',
'netblock.pedantic.org',
'ix.dnsbl.manitu.net',
'rbl.efnetrbl.org',
'blackholes.mail-abuse.org',
'dnsbl.dronebl.org',
'db.wpbl.info',
'query.senderbase.org',
'bl.emailbasura.org',
'combined.rbl.msrbl.net',
'multi.uribl.com',
'black.uribl.com',
'cblless.anti-spam.org.cn',
'cblplus.anti-spam.org.cn',
'blackholes.five-ten-sg.com',
'sorbs.dnsbl.net.au',
'rmst.dnsbl.net.au',
'dnsbl.kempt.net',
'blacklist.woody.ch',
'rot.blackhole.cantv.net',
'virus.rbl.msrbl.net',
'phishing.rbl.msrbl.net',
'images.rbl.msrbl.net',
'spam.rbl.msrbl.net',
'spamlist.or.kr',
'dnsbl.abuse.ch',
'bl.deadbeef.com',
'ricn.dnsbl.net.au',
'forbidden.icm.edu.pl',
'probes.dnsbl.net.au',
'ubl.lashback.com',
'ksi.dnsbl.net.au',
'uribl.swinog.ch',
'bsb.spamlookup.net',
'dob.sibl.support-intelligence.net',
'url.rbl.jp',
'dyndns.rbl.jp',
'omrs.dnsbl.net.au',
'osrs.dnsbl.net.au',
'orvedb.aupads.org',
'relays.nether.net',
'relays.bl.gweep.ca',
'relays.bl.kundenserver.de',
'dialups.mail-abuse.org',
'rdts.dnsbl.net.au',
'duinv.aupads.org',
'dynablock.sorbs.net',
'residential.block.transip.nl',
'dynip.rothen.com',
'dul.blackhole.cantv.net',
'mail.people.it',
'blacklist.sci.kun.nl',
'all.spamblock.unit.liu.se',
'spamguard.leadmon.net',
'csi.cloudmark.com',
'bl.suomispam.net',
];
Ci-dessus :
Il s’agit de la liste des solutions qui sera utilisée pour tester votre IP.
$rev = join('.', array_reverse(explode('.', trim($ip))));
$i = 1;
$rbl_count = count($rbls);
$listed_rbls = [];
foreach ($rbls as $rbl)
{
printf('Checking %s, %d of %d... ', $rbl, $i, $rbl_count);
$lookup = sprintf('%s.%s', $rev, $rbl);
$listed = gethostbyname($lookup) !== $lookup;
printf('[%s]%s', $listed ? 'LISTED' : 'OK', PHP_EOL);
echo "<br>";
if ( $listed )
{
$listed_rbls[] = $rbl;
}
$i++;
}
echo "<hr>";
printf('%s listed on %d of %d known blacklists%s', $ip, count($listed_rbls), $rbl_count, PHP_EOL);
echo "<hr>";
if ( !empty($listed_rbls) )
{
printf('%s <b>listed on %s%s</b>', $ip, join(', ', $listed_rbls), PHP_EOL);
echo "<hr>";
$emailContent = "
ip : ".$ip."
liste sur : ".join(', ', $listed_rbls);
if (mail($emailTo, $emailSubject, $emailContent, 'from:'.$emailFrom)) {
echo 'Avertissement';
} else {
echo 'Erreur shoot email';
}
}
Ci-dessus :
On vérifie chaque solution pour savoir si l’IP est blacklistée.
On format comme il faut les données.
On expédie l’email de rapport.
Source :
GitHub > https://github.com/eewee/blcheck
Article > https://www.eewee.fr/etre-blackliste-cest-quoi/