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.

multirbl.valli.org
MxToolBox.com
correct.email

Monitoring custom :

Nous allons réaliser un script permettant de détecter si une IP est actuellement blacklisté chez un prestataire donnée (Ex : Spamhausbarracuda, 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/

Michael

Développeur / intégrateur, travaillant en agence web depuis 2005, je viens à présent vous proposer de venir découvrir mes créations personnelles de plugins / themes pour le CMS Wordpress & Prestashop, quelques solutions en mode SAAS & un peu d'actualité web ( / Twitter).

Vous aimerez aussi...