serveur_hebergement:serveur_mail:partie_5_lutter_contre_le_spam

Ceci est une ancienne révision du document !


Partie 5 : lutter contre le spam

Le spam est la plaie des e-mails. Si vous ne faites rien pour lutter contre, vous allez crouler sous les spams. Heureusement, il y a plusieurs moyens de lutter contre le spam.

Plusieurs logiciels vont nous aider dans cette tâche :

  • Postgrey : à chaque e-mail reçu, Postgrey va vérifier la combinaison adresse IP de l'envoyeur, adresse e-mail de l'envoyeur et adresse e-mail du destinataire. Si cette combinaison n'a jamais été vu, il va rejeter l'e-mail. Les serveur e-mail légitimes vont renvoyer l'e-mail alors que la plupart des serveurs envoyant du spam ne renvoi rien en cas de rejet
  • SpamAssassin : filtre les e-mails et détecte les spams à l'aide de règles
  • ClamAV : un antivirus
  • Amavis : fait le lien entre SpamAssassin, ClamAV et Postfix

Lancez la commande pour installer ces logiciels et leurs dépendances :

sudo aptitude install amavisd-new arj bzip2 cabextract cpio rpm2cpio file gzip lhasa nomarch pax rar unrar p7zip-full unzip zip lrzip lzip liblz4-tool lzop unrar-free clamav clamav-daemon spamassassin libnet-dns-perl libmail-spf-perl pyzor razor postgrey

Passons à la configuration.

Ouvrez le fichier 15-content_filter_mode avec la commande :

sudo nano /etc/amavis/conf.d/15-content_filter_mode

Décommentez les lignes suivantes pour activer la recherche de virus :

#@bypass_virus_checks_maps = (
#   \%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re);

Redémarrez Amavis :

sudo systemctl restart amavis

Il va falloir indiquer à Postfix qu'il doit transférer les e-mails à Amavis et ensuite les récupérer après analyse.

Ouvrez le fichier main.cf :

sudo nano /etc/postfix/main.cf

Ajoutez la ligne suivante pour indiquer à Postfix qu'il doit transmettre chaque mail à Amavis, qui écoute sur le port 10024 :

content_filter = smtp-amavis:[127.0.0.1]:10024

Ouvrez le fichier master.cf :

sudo nano /etc/postfix/master.cf

Ajoutez les lignes suivantes :

#Connexion de Postfix à Amavis
smtp-amavis   unix   -   -   n   -   2   smtp
    -o syslog_name=postfix/amavis
    -o smtp_data_done_timeout=1200
    -o smtp_send_xforward_command=yes
    -o disable_dns_lookups=yes
    -o max_use=20
    -o smtp_tls_security_level=none

Explication des lignes :

  • syslog_name=postfix/amavis → Change le nom du processus dans les logs et le remplace par postfix/amavis
  • smtp_data_done_timeout=1200 → Temps limite pour recevoir une réponse du serveur
  • smtp_send_xforward_command=yes → Transfére le nom, l'adresse, le protocole et le nom HELO du client original au filtre, qui apparaissent également dans les logs au lieu de 127.0.0.1…
  • disable_dns_lookups=yes → Désactive la recherche de DNS pour se connecter à Amavis
  • max_use=20 → Nombre maximum de requête
  • smtp_tls_security_level=none → Désactive TLS pour se connecter à Amavis

Ajoutez également les lignes suivantes pour pouvoir récupérer les e-mails analysés par Amavis : #Ajout d'un processus Postfix pour recevoir les e-mails analysés par Amavis 10025 inet n - n - - smtpd

  1. o syslog_name=postfix/10025
  2. o content_filter=
  3. o mynetworks_style=host
  4. o mynetworks=127.0.0.0/8
  5. o local_recipient_maps=
  6. o relay_recipient_maps=
  7. o strict_rfc821_envelopes=yes
  8. o smtp_tls_security_level=none
  9. o smtpd_tls_security_level=none
  10. o smtpd_restriction_classes=
  11. o smtpd_delay_reject=no
  12. o smtpd_client_restrictions=permit_mynetworks,reject
  13. o smtpd_helo_restrictions=
  14. o smtpd_sender_restrictions=
  15. o smtpd_recipient_restrictions=permit_mynetworks,reject
  16. o smtpd_end_of_data_restrictions=
  17. o smtpd_error_sleep_time=0
  18. o smtpd_soft_error_limit=1001
  19. o smtpd_hard_error_limit=1000
  20. o smtpd_client_connection_count_limit=0
  21. o smtpd_client_connection_rate_limit=0
  22. o receive_override_options=no_header_body_checks,no_unknown_recipient_checks,no_address_mappings

Ouvrez le fichier 15-content_filter_mode :

sudo nano /etc/amavis/conf.d/15-content_filter_mode

Décommentez les lignes suivantes pour activer la recherche de virus :

#@bypass_virus_checks_maps = (
#   \%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re);

Amavis va avoir besoin d'accéder au fichier /var/run/clamav/clamd.ctl pour communiquer avec ClamAV. On va donc ajouter l'utilisateur clamav au groupe amavis :

sudo adduser clamav amavis

Par défaut, Amavis écoute sur le port 10024 à la fois pour les e-mails entrant et sortant. Il est conseillé d'avoir un port pour les e-mails entrant et un autre pour les sortant.

Ouvrez le fichier 50-user :

sudo nano /etc/amavis/conf.d/50-user

Ajoutez la ligne suivante entre use “strict;” et “1;” pour ajouter un processus écoutant sur le port 10026 :

# Ajouter un processus sur le port 10026
$inet_socket_port = [10024,10026];

Ajoutez ensuite la ligne suivante pour appliquer la règle “ORIGINATING” à ce processus :

# Appliquer la règle ORIGINATING au processus écoutant sur le port 10026
$interface_policy{'10026'} = 'ORIGINATING';

Enfin, ajoutez les lignes suivantes pour définir la règle “ORIGINATING” :

# Configuration de la règle ORIGINATING
$policy_bank{'ORIGINATING'} = {  # e-mails provenant apparemment d'un utilisateur enregistré ou local
  originating => 1,  # on déclare que cet e-mail provient de notre client smtp
  allow_disclaimers => 1,  # on active l'insertion d'un avertissement si pris en charge

  # on notifie l'administrateur de l'apparition d'un malware dont la provenance est interne
  virus_admin_maps => ["virusalert\@$mydomain"],
  spam_admin_maps  => ["virusalert\@$mydomain"],
  warnbadhsender   => 1,

  # on force la conversion MTA sur 7-bit 
  smtpd_discard_ehlo_keywords => ['8BITMIME'],
  bypass_banned_checks_maps => [1],  # permet d'envoyer n'importe quel type ou nom de fichier
  terminate_dsn_on_notify_success => 0,  # on conserve l'option NOTIFY=SUCCESS activée
};

Ouvrez le fichier master.cf de Postfix :

sudo nano /etc/postfix/master.cf

Afin que les e-mails provenant d'utilisateurs enregistrés soient transférés au processus Amavis sur le port 10026, après “smtps inet n - y - - smtpd”, ajoutez à la fin la ligne suivante :

-o content_filter=smtp-amavis:[127.0.0.1]:10026

Ouvrez le fichier 15-content_filter_mode :

sudo nano /etc/amavis/conf.d/15-content_filter_mode

Décommentez les lignes suivantes pour activer le filtre anti-spam :

#@bypass_spam_checks_maps = (
#   \%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re);

Les options par défaut se trouvent dans le fichier

/etc/amavis/conf.d/20-debian_defaults

Si vous souhaitez modifier des valeurs, il vous faut modifier le fichier

/etc/amavis/conf.d/50-user

Si par exemple vous voulez que soit affiché pour tous les e-mails, spam et non spam, l'entête X-Spam-Status, il vous faut ajouter la ligne suivante :

# Toujours ajouter l'entête X-Spam-Status
$sa_tag_level_deflt = -9999;

Pour que les modifications dans ce fichier soient prises en compte, il faut que $mydomain dans le fichier 05-domain_id correspondent bien à votre nom de domaine. La valeur par défaut de $mydomain est “head -n 1 /etc/mailname”. Si cette commande ne renvoi pas “domaine.fr” (correspondant donc à votre nom de domaine), il faudra remplacer la ligne

chomp($mydomain = `head -n 1 /etc/mailname`);

par

$mydomain = "domaine.fr";

Redémarrez Amavis, ClamAV et Postfix :

sudo systemctl restart amavis clamav-daemon postfix
Vous pourriez laisser un commentaire si vous étiez connecté.
  • serveur_hebergement/serveur_mail/partie_5_lutter_contre_le_spam.1667409651.txt.gz
  • Dernière modification : 2023/08/08 14:01
  • (modification externe)