Purger les mails a destination d'un domaine

Le script perl ci-dessous s’utilise en mettant en paramètre le domaine pour lequel vous voulez purger les mails :

#!/usr/bin/perl

$REGEXP = shift || die "no email-adress given (regexp-style, e.g. bl.*\@yahoo.com)!";

@data = qx</usr/sbin/postqueue -p>;
for (@data) {
  if (/^(\w+)(\*|\!)?\s/) {
     $queue_id = $1;
  }
  if($queue_id) {
    if (/$REGEXP/i) {
      $Q{$queue_id} = 1;
      $queue_id = "";
    }
  }
}

#open(POSTSUPER,"|cat") || die "couldn't open postsuper" ;
open(POSTSUPER,"|postsuper -d -") || die "couldn't open postsuper" ;

foreach (keys %Q) {
  print POSTSUPER "$_\n";
};
close(POSTSUPER);

Postfix – Spécifier une IP différente en fonction du domaine de l'émetteur

sender_dependent_default_transport_maps va permettre, en fonction de l’émetteur de l’email sur votre serveur de spécifier une IP précise.

echo "/@domain-src-1\.ltd$/ domain_src_1:"  > /usr/local/etc/postfix/outgoingips.regexp
echo "/@domain-src-2\.ltd$/ domain_src_2:" >> /usr/local/etc/postfix/outgoingips.regexp
echo "/@domain-src-3\.ltd$/ domain_src_3:" >> /usr/local/etc/postfix/outgoingips.regexp

Création des routes, ajouter dans master.cf les " entrées " suivante

domain_src_1   unix -       -       n       -       -       smtp
    -o smtp_bind_address=192.168.0.1
    -o smtp_helo_name=domain-src-1.ltd
    -o syslog_name=postfix-domain_src_1
domain_src_2   unix -       -       n       -       -       smtp
    -o smtp_bind_address=192.168.0.2
    -o smtp_helo_name=domain-src-2.ltd
    -o syslog_name=postfix-domain_src_2
domain_src_3   unix -       -       n       -       -       smtp
    -o smtp_bind_address=192.168.0.3
    -o smtp_helo_name=domain-src-3.ltd
    -o syslog_name=postfix-domain_src_3

Puis ajouter dans main.cf :

[Lire]

Changer le domaine ou l'adresse mail a l'envoie

Ajoutez dans le fichier de configuration main.cf :

smtp_generic_maps = hash:/etc/postfix/generic

Dans ce fichier, vous y indiquerez ce qui doit être réécrit

@domaine.local       @domaine.net
[email protected]   [email protected]

Postfix utilisera le hash de ce fichier, générez le avec postmap

postmap /etc/postfix/generic

Bloquer le spoofing d’email avec Postfix

Exemple de spoofing d’email émit depuis un autre serveur que celui qui gère la messagerie de votre domaine :

Main.cf

  • Notez le domaine de messagerie de votre Postfix : mydomain
  • Vérifiez que Postfix ne gère pas d’autre domaines de messagerie : mydestination

anti-spoofing

Créer le fichier anti-spoofing et ajoutez y

votredomaine.com REJECT ANTI-SPOOFING
autredomaine.fr  REJECT ANTI-SPOOFING

Générez le hash avec la commande :

postmap anti-spoofing

master.cf

Vous devez avoir une ligne comme cela :

[Lire]

Postfix – Supprimer les mailerdaemon

postqueue -p | grep MAILER-DAEMON | awk '{print $1}' | sed 's/[\*\!]//g' | postsuper -d -
  • postqueue -p : Affiche la liste des emails en queue
  • grep MAILER-DAEMON : Affiche uniquement les lignes qui contiennent MAILER-DAEMON
  • awk 'print $1' : Affiche uniquement la première chaine de caractères
  • sed 's/[\*\ !]//g' : Supprime les * de la chaine de caractères.
  • postsuper -d - : Injecte les id précédant dans la commande postsuper -d qui supprime les mails