SysFailure

Imprimer

Policy Daemon

.

Contrôle de la validité des bannières HELO/EHLO

Policy Daemon permet de réaliser plusieurs types de tests que la bannière HELO transmise par un serveur de messagerie :

  • contrôle d'une bannière changeante pour un même serveur (Helo Randomization Prevention)
  • contrôle d'usurpation apparente de l'identité de votre serveur (Blacklist Helo)

La phase HELO est la première d'une transaction SMTP. Les deux serveurs en communication se présentent l'un à l'autre :

S: 220 www.exemple.com ESMTP Postfix
C: HELO mon-domaine.com
S: 250 Hello mon-domaine.com

Helo Randomization Prevention

La première fonctionnalité (Helo Randomization Prevention, ou HRP) permet de détecter et de bloquer les serveurs qui se présentent sous des identités différentes.

Un serveur de messagerie est rarement schizophrène, et se présente donc toujours sous la même identité. Il peut arriver qu'il change d'identité suite à une modification du DNS, une réorganisation du réseau de l'émetteur ou d'autres événements de ce genre, mais ce sont des situations rares. Il se peut aussi que l'émetteur dispose de plusieurs serveurs d'émission de messages qui tous vont se présenter sous le même nom. Dans ce cas, vous aurez plusieurs adresses IP différentes associées au même nom, mais chaque serveur (identifié par son adresse IP) n'utilisera qu'un seul nom.

Par contre, les spammeurs peuvent utiliser les mêmes machines (mêmes adresses IP) en leur donnant des noms plus ou moins aléatoires. HRP détectera ce type de situation, et les bloquera rapidement.

  • HELO_CHECK : active (1) ou désactive (0) la fonctionnalité HRP
  • HELO_MAX_COUNT (10 par défaut) : nombre maximal d'identités différentes (chaînes HELO différentes) tolérées pour une même adresse IP. Au-delà de cette valeur, le système émetteur sera bloqué.
  • HELO_BLACKLIST_AUTO_EXPIRE (14d par défaut) : durée de blocage d'une adresse IP ayant présenté plus de HELO_MAX_COUNT identités différentes. Cette durée est comptée à partir de la dernière tentative d'envoi d'un message par le système concerné. Si cette durée vaut 0, l'information n'expire jamais.
  • HELO_AUTO_EXPIRE (7d par défaut) : délai au-delà duquel une adresse IP sera retirée de la table de vérification. Comme pour le paramètre précédent, ce délai est décompté à partir du dernier message reçu depuis cette adresse. Si ce paramètre vaut 0, le délai est infini.

Nous vous conseillons, du moins dans un premier temps, de laisser le paramètre HELO_MAX_COUNT à sa valeur par défaut (10), même si celle-ci paraît élevée. Elle ne doit en aucun cas être inférieure au nombre d'identités différentes qu'un serveur légitime avec lequel vous communiquez peut utiliser. Après quelques temps d'utilisation, vous pourrez déterminer la valeur la plus appropriée pour vous.

Helo Blacklist

Cette fonctionnalité de liste noire permet de bloquer immédiatement les systèmes se présentant sous l'identité de vos propres serveurs. Si votre serveur se nomme par exemple emetteur.mon-domaine.tld, aucun autre MX ne doit se connecter à votre serveur en se présentant sous l'identité emetteur.mon-domaine.tld. Pour être plus précis, tout système se connectant à votre serveur de messagerie en se présentant comme votre serveur de messagerie est très certainement un émetteur de spam ou un système piraté.

  • BLACKLIST_HELO : active (1) ou désactive (0, par défaut) la liste noire d'identités
  • BLACKLIST_HELO_AUTO_EXPIRE : durée de blocage d'un système s'étant présenté sous l'une des identités interdites. Si ce paramètre vaut 0, le blocage est définitif.

La liste noire d'identités doit être définie à l'aide de la table blacklist_helo. Chaque élément de cette table ne contient qu'un seul champ (_helo), indiquant une identité proscrite (en cela qu'il s'agit de l'identité de votre propre serveur). Il est nécessaire de remplir cette table avec les informations appropriées, par exemple :

INSERT INTO blacklist_helo (_helo) VALUES ('192.168.1.25');
INSERT INTO blacklist_helo (_helo) VALUES ('[192.168.1.25]');
INSERT INTO blacklist_helo (_helo) VALUES ('localhost.machine.com');
INSERT INTO blacklist_helo (_helo) VALUES ('localhost');

Avec ce qui précède, tout serveur se présentant, durant la phase HELO, comme 192.168.1.25, [192.168.1.25], localhost.machine.com ou localhost sera automatiquement bloqué.