Que faire si mon serveur est utilisé comme relais de Spams ?

Détails des articles
Lien: https://support.icewarp.fr/index.php?_m=knowledgebase&_a=viewarticle&kbarticleid=320
Code d'identification de l'article: 320
Créé le: 31 Oct 2011 11:05 AM

Réponse IceWarp toutes versions -

La découverte d'un couple Nom d'utilisateur - mot de passe par un pirate conduit à l'utilisation de votre serveur comme relais ce qui a pour conséquence de charger fortement le serveur et de le faire mettre en liste noire par les serveurs distants.

Détection du compte à l'origine du problème
1. Une attaque de ce genre peut être identifiée dans le journal SMTP par recherche d'une authentification utilisant toujours le même login et d'un nom d'expéditeur douteux et répétitif.

Exemple d'une attaque de ce genre :
"178.122.118.159 [0B44] 06:51:31 Connected
178.122.118.159 [0B44] 06:51:31 >>> 220-mail.serveur.fr ESMTP IceWarp 10.4.5; Mon, 15 Jul 2013 06:51:31 +0200
178.122.118.159 [0B44] 06:51:32 <<< EHLO orange.fr
178.122.118.159 [0B44] 06:51:32 >>> 250-mail.serveur.fr Hello orange.fr [178.122.118.159], pleased to meet you.
178.122.118.159 [0B44] 06:51:32 <<< AUTH LOGIN
178.122.118.159 [0B44] 06:51:32 >>> 334 VXNlcm5hbWU6
178.122.118.159 [0B44] 06:51:32 <<< aW5mb0Bkb21haW5lLmNvbQ==
178.122.118.159 [0B44] 06:51:32 >>> 334 UGFzc3dvcmQ6
178.122.118.159 [0B44] 06:51:33 <<< ZG9tYWluZTIwMTI=
178.122.118.159 [0B44] 06:51:33 >>> 235 2.0.0 Authentication successful
178.122.118.159 [0B44] 06:51:33 <<< MAIL FROM: <willm.b@orange.fr>
178.122.118.159 [0B44] 06:51:33 >>> 250 2.1.0 <willm.b@orange.fr>... Sender ok
178.122.118.159 [0B44] 06:51:33 <<< RCPT TO: <bmyerd@yahoo.com>
178.122.118.159 [0B44] 06:51:33 >>> 250 2.1.5 <bmyerd@yahoo.com>... Recipient ok; will forward
178.122.118.159 [0B44] 06:51:33 <<< RCPT TO: <arlett33@yahoo.com>
178.122.118.159 [0B44] 06:51:33 >>> 250 2.1.5 <arlett33@yahoo.com>... Recipient ok; will forward
..."


Ce type de connexion présente des anomalies que l'on peut identifier :
Les logins et les mots de passe dans le journal sont codés en Base 64. Pour les décoder :
https://www.base64decode.org/
Dans l'exemple, le compte est aW5mb0Bkb21haW5lLmNvbQ== qui se décode en info@domaine.com

2. Afficher les statistiques en mode 'Liste' (État -> Statistiques comptes -> Liste) et trier la liste sur la colonne '# envoyés extérieur". Le compte avec un nombre anormalement élevé dans cette colonne est le compte qui est suspect.

3. Quand un spammeur réussit à utiliser le serveur pour un envoi massif de spams, généralement, un certain pourcentage de ces mails ne partent pas tout de suite. Ils sont dans le répertoire .../mail/_outgoing et ses sous-répertoires.
En examinant au hasard les fichiers '.tmp' dans .../mail/_outgoing, on peut trouver le compte utilisé: la ligne commençant par 'original sender' en haut de ces fichiers .tmp

Une fois le problème découvert
Il faut :
- Arrêter le module SMTP
- Changer le mot de passe du compte fautif
- Renommer le répertoire _outgoing (voir la note de bas de la page pour trouver ce répertoire et récupérer les bons messages) pour arrêter les envois en cours. Cette opération est en général nécessaire car ce répertoire peut contenir des milliers de spams en cours d'émission (en particulier, le sous répertoire 'retry').
- Redémarrer le module SMTP
- Il faut ensuite renforcer la sécurité générale de votre serveur suivant les recommandations ci-dessous.
- Vérifier si l'IP du serveur IceWarp a été blacklistée à cause de cet envoi de spams. Utiliser un site comme MxToolBox (http://www.mxtoolbox.com). Si nécessaire, contacter les administrateurs des différents sites trouvés pour faire enlever l'IP de leur liste.

Pour améliorer la sécurité du serveur
Vérifiez que votre serveur n'est pas en relais ouvert
Pour cela, aller sur la console d'administration dans Fichier -> Console API, mettre le filtre "relay" et vérifier que la variable mail.security.relay.relaymode est bien à 1.

Il faut activer la stratégie des mots de passe (Gestion -> Stratégies -> onglet Stratégie des mots de passe) en exigeant un mot de passe différent du nom, une longueur minimale et un certain nombre de caractères numériques et alpha-numériques.
Ensuite, pour vérifier la conformité des mots de passe existants par rapport à la nouvelle stratégie, vous pouvez exécuter la commande suivante (dans une fenêtre invite de commande exécutée en mode administrateur et sous le répertoire principal d'IceWarp):
       tool check account "*@*" passpolicy
qui vous donnera une liste des comptes non-conformes.

Pour encore renforcer la sécurité, il est aussi conseillé :
- Dans Mail -> Sécurité -> onglet Général : décocher 'POP avant SMTP' et cocher 'Rejeter émetteur non autorisé dans domaine local'
Ceci impose que tout émetteur de message envoie une authentification SMTP (il faut éventuellement vérifier la configuration des clients de messagerie)
- Dans Mail -> Sécurité -> onglet Avancé : cocher 'Ne relayer que si le domaine de l'expéditeur est local'

- Vérifier que les paramètres de DNSBL et de la prévention des intrusions sont suffisamment contraignants (Mail -> Sécurité).

- Positionner l'option Action de Comptes inconnus à 'Rejeter les mails' (onglet Options du domaine)

- Il est conseillé de limiter le nombre d'envoi par jour et par compte en allant dans l'onglet Limites du compte et en donnant une valeur différente de zéro à 'Nombre maximum d'envoi par jour'. Pour plus de détails, vous pouvez consulter la FAQ "limiter le nombre de messages envoyés".

Les réglages de l'anti spam sont-ils suffisamment efficaces ?

Vous pouvez consulter la FAQ "Sécurité des comptes et des mots de passe"

D'une façon générale, un certain nombre d'informations sur la sécurité sont données dans le document Guide de Sécurité.
et la vidéo
https://support.icewarp.fr/index.php?_m=downloads&_a=viewdownload&downloaditemid=6&nav=0

Note sur les répertoires mail et leur nettoyage
_outgoing est un sous-répertoire du dossier principal mail (défini dans Système -> Stockage -> onglet Dossiers -> champ Mail)
Le répertoire 'retry' est un sous-répertoire de _outgoing.
En cas d'attaque pirate, ces répertoires peuvent contenir des milliers de spams qui ne peuvent être envoyés à cause d'une adresse erronée par exemple. Il est alors conseillé de renommer '_outgoing' pour que le système n'essaye plus d'envoyer ces messages. Un nouveau répertoire '_outgoing' sera automatiquement créé au prochain besoin.

Le répertoire renommé peut aussi contenir des bons messages qu'il faut traiter, il faut donc les détecter puis les réinjecter dans le système de la façon suivante :
Il faut repérer les fichiers envoyés par le spammeur et noter leur taille. Tous les fichiers avec cette taille sont probablement des spams. Les autres fichiers sont probablement des bons mails. Les ouvrir en cas de doute.

- Copier les 'bons' fichiers dans le nouveau répertoire '_outgoing'
- Après la copie, dans le répertoire '_outgoing', si nécessaire, modifier l'extension du fichier pour qu'elle soit impérativement '.tmp'
- En moins de quelques minutes, le message sera distribué.

Procédure automatique pour retraiter les messages sortants
Il existe une procédure de remise automatique dans le répertoire _outgoing, elle est téléchargeable ici
Pour l'utiliser, il faut impérativement que vous ayez trié les emails à renvoyer et que vous les ayez placé dans le répertoire appelé "FolderMails" dans la procédure
Les fichiers des messages peuvent avoir la terminaison tm$ ou tout autre

Les variables à modifier sont listées dans les premières lignes de la procédure :
FolderMails = "C:\IWdata\mail\provisoire\" rem dossier à créer des fichiers à traiter
FolderTmp = "C:\IWdata\mail\provisoire\tmp" rem dossier à créer des fichiers en cours de traitement
FolderTarget = "C:\IWdata\mail\_outgoing\priority_2\" rem dossier des messages en cours d'émission
FromEmptyField = "From: admin@domaine.com" rem adresse du from si celui-ci n'est pas renseigné


Nettoyage de _incoming.bak
Si à cause d'une saturation, vous avez été obligé de renommer le dossier _incoming en incoming.bak, vous pouvez traiter les emails qu'il contient
Dans _incoming, il faut deux fichiers par email : .tmp (.tm$) et un .dat avec le même nom.
Sans l'un ou l'autre, le mail ne pourra pas être traité.

Si le dossier contient des .dat seuls. Le mail lui-même (.tmp) n'y étant pas, il n'y a pas d'action à faire.
Si le dossier contient des .tmp sans le .dat correspondant. Ces fichiers ne peuvent pas être traités (ils l'étaient fort probablement déjà traités)
Actions à faire :
- Trier le contenu de ce dossier par nom pour que le couple .tmp/.dat se trouve ensemble quand il existe
- Supprimer tous les .dat seuls
- Supprimer tous les .tmp seuls
- Pour les couples restants, les copier vers _incoming
- Attendre quelques minutes, les mails seront traités
- Supprimer _incoming.bak


Modifié en novembre 2019