Un relais de courrier anti-spam

J’ai en production des passerelles anti-spam basées sur Mandriva Linux, qui servent juste de 1er filtre frontal, avant d’attaquer l’anti-virus puis le vrai serveur de mail, et je suis plutôt content du résultat.

La méthode du greylisting mise en oeuvre par postgrey s’avère très efficace pour réduire les envois de spam depuis les PC zombies.

Ci après quelques instruction utiles si vous voulez vous y mettre:

Filtrage à réaliser:

  1. Greylisting
  2. Anti relayage
  3. Expéditeur raisonnablement possible
  4. Destinataires connus et valides
  5. Filtres d’entêtes
  6. Anti-spam

Dans tous les cas, même si cela peut paraître contraignant, le nombre de messages indésirables est devenu tellement effrayant qu’il faut bien y passer.

Il y a bien entendu les solution qui demandent aux expéditeurs de confirmer qu’ils ont bien envoyés un mail, mais c’est tout de même très contraignant pour l’expéditeur. Pire encore, il arrive souvent que le message automatique demandant à l’expéditeur de confirmer son envoi soit lui même considéré comme du spam et poubellisé… et le message original n’arrive jamais. C’est un faux positif dramatique.

Je préfère filtrer avec postfix, postgrey et spamassassin. Ci après quelques infos, qui ne doivent pas vous empêcher de lire la doc !

1. Postgrey

Les vrais serveurs de courrier sont dotés de mécanismes de ré-émission en cas d’échec temporaire, mais les pc infectés ou les zombies ne le sont pas.
postgrey enregistre les adresses d’expéditeurs et de destinataires, et la 1ère fois qu’un expéditeur écrit à un destinataire, le message est refusé temporairement. C’est transparent un expéditeur réel, son serveur se charge de ré-essayer, et le nombre de spam bloqués de cette manière est significatif.

la config est dans /etc/rc.d/init.d/postgrey

# changer la config d’origine comme suit :
OPTIONS= »–inet=10023 -d –greylist-text ‘Please try again in %s sec.’ –delay=120″

Quelques infos sont disponibles un peut partout.

2. Anti relayage

Bien entendu, il ne faut pas être soi même un relay à pouriel, il ne faut accepter les mels que pour son propre domaine.
Dans /etc/postfix/main.cf

$mydomains = ‘MONDOMAINE.ORG’

3. Domaine expéditeur existants

dans /etc/postfix/main.cf smtpd_sender_restrictions = reject_unknown_sender_domain et postfix fait une requete DNS pour vérifier que le domaine de l’expéditeur existe. Là aussi, cela permet d’exclure du bruit inutile avec des adresses générées aléatoirement.

4. Destinataires autorisés.

Il faut n’accepter que les destinataires valides. Sinon, un spammer écrit à une adresse aléatoire de votre domaine avec comme expéditeur pauvre.victime@ailleur.net : si votre frontal l’accepte, votre serveur devra envoyer un message d’erreur à pauvre.victime@ailleur.net, avec les plus souvent le message contenu dans le rapport d’erreur, si bien que c’est le message d’erreur qui contient le spam, et votre serveur qui le relaye.

Donc: il faut maintenir une liste des destinataire autorisés. Pénible mais très utile.

Autre avantage: la diminution du trafic. Je connais un gestionnaire qui ne font pas ce filtrage, et dont le serveur est très occupé (et le lien SDSL surchargé) rien qu’a envoyer des messages d’erreur pour des adresses générées aléatoirement, et je trouve ça déplorable.

Donc, a chaque création d’adresse, j’ajoute une ligne dans /etc/postfix/relay_recipients sous la forme destinaire@mondomaine.ext x

5. Filtre d’entêtes

Je ne sais pas si c’est une bonne idée, mais les filtres d’entête me permettent d’exclure des professionnels de l’emailling qui ne respectent pas le choix de désabonnement des usagés. C’est extrême, mais ils sont eux-même extrêmes. Je garde donc quelques spam, parfois je tente de me désabonner, et si j’en reçoit encore plus, j’obtient plus d’infos (serveur, marqueur dans les entêtes, adresse de retour), et je peut fermer le robinet… Parfois le numéro de la campagne de pub change, mais rien que la mention campagnid ou campagn_id est révélatrice🙂

Donc dans /etc/postfix/main.cf : header_checks = regexp:/etc/postfix/header_checks

Dans /etc/postfix/header_checks j’ajoute des règles au fur et à mesure que je détecte un furieux de la campagne de pub sauvage.

Quelques exemples :

/@directcible\.com>$/ DISCARD
/@investimail\.fr>$/ DISCARD
/@edt02\.net>$/ DISCARD
/^From:(.*)@auxbonscoins\.info$/ DISCARD

Et ainsi de suite pour adlead netnoe voiture-ete et compagnie.

6. Anti Spam

Après tout cela, un coup de spamassassin avec les réglages par défaut. Attention a avoir bien réglé la langue, cela permet de se passer du spam en coréen ou en chinois.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment cette page :