Filtre HELO/EHLO

Détails des articles
Lien: https://support.icewarp.fr/index.php?_m=knowledgebase&_a=viewarticle&kbarticleid=424
Code d'identification de l'article: 424
Créé le: 29 Jul 2020 10:56 AM

Réponse
IceWarp v11, v12 –

Lors d'une connexion SMTP, le serveur distant s'identifie par un EHLO (extended Helo) ou un HELO :
127.0.0.1       [3788] 09:58:10 Connected, local IP=127.0.0.1:25
127.0.0.1       [3788] 09:58:10 >>> 220 iwdemo.fr ESMTP IceWarp Deep Castle 1; Mon, 27 Jul 2020 09:58:10 +0200
127.0.0.1       [3788] 09:58:11 <<< EHLO iwdemo.fr [127.0.0.1]
127.0.0.1       [3788] 09:58:11 >>> 250-iwdemo.fr Hello iwdemo.fr [127.0.0.1] [127.0.0.1], pleased to meet you.
127.0.0.1       [3788] 09:58:11 <<< STARTTLS

Ici, l'identification est "iwdemo.fr [127.0.0.1]"

Certaines attaques SMTP utilisent un identifiant de serveur caractéristique. Il est dans ce cas possible de bloquer ces attaques.
Il existe un filtre qui est accessible par la console d'administration dans Email -> Sécurité -> onglet Avancé -> "Utiliser le filtre HELO/EHLO"
Il est conseillé de rendre le HELO/EHLO obligatoire (option précédente).
Si la condition de blocage est obtenue, le message est bloqué après réception de l'adresse du destinataire (qui peut être mise en contournement) :

127.0.0.1       [3788] 09:58:11 <<< RCPT TO:<josephine@iwdemo.fr>
127.0.0.1       [3788] 09:58:11 >>> 550 5.7.1 <jean@iwdemo.fr> Access to <josephine@iwdemo.fr> not allowed by rule HELO/EHLO

Le filtre est sous forme d'un fichier accessible par le bouton "Modifier le fichier..." un petit mode d'emploi est donné dans la fenêtre qui s'ouvre :

This file specifies the hostnames used in the HELO/EHLO command during the SMTP session that should be rejected or allowed. You should specify the whole area to be accepted or rejected by a single line containing 1 or 0. That means that all following entries are meant to be rejected (0) or accepted (1). Each line contains a hostname or hostname mask.
Formal Syntax:
filteritems    =    *(filteritem CRLF)   
filteritem    =    (defaultitem / itemstring)   
defaultitem    =    ("0" / "1")   
itemstring    =    (hostname / hostnamemask)   

Example:
1
mail.icewarp.com
mail.yahoo.com
0
*spamsite.com
mail.spammer.com
This causes that any message with "HELO mail.icewarp.com" or "HELO mail.yahoo.com" command at the beginning of SMTP session will be accepted automatically. On the other hand SMTP session with "HELO mail.spammer.com" will be rejected.

Le fonctionnement est le suivant :
La valeur du HELO ou du EHLO est comparée à chaque élément de la liste parcourue de haut en bas
A la première coïncidence, l'action correspondante est exécutée (le message est accepté si la liste est précédée d'un 1 ou refusé si la liste est précédée d'un 0) et le traitement est terminé
Si aucune coïncidence n'est trouvée, le EHLO est accepté.

Certains spammeurs se contentent de mettre l'adresse IP entre crochet, on peut donc utiliser cette configuration :
1
[192.168.*
[10.*
[172.*
[IPv6*
0
user
ylmf-pc
[*

Ceci bloque user, ylmf-pc et tout ce qui commence par un [, sauf les adresses locales et IPv6 (à adapter en fonction des attaques et de la configuration du réseau).

Il est possible d'utiliser plusieurs listes d'autorisés et d'interdits :
1
[127.0.0.1]
[192.168.*
[10.*
[172.*
[IPv6*
alarmes
0
[*
1
*.*
0
*

Dans ce cas, en plus des conditions précédentes, les Ehlo ne comprenant pas de . sont refusés sauf alarmes.
Attention il peut y a voir beaucoup de sites qui donnent un EHLO sans point. Il faut vérifier les journaux pour avoir la liste de ces exceptions.



Modifié le 11/08/2020