SpamSnake · 15 min read · Dec 25, 2025
Le SpamSnake Parfait - Ubuntu Jeos 10.10 Maverick Meerkat - Page 4
14. KAM
vi /etc/cron.daily/kam.shAjoutez le contenu suivant et
chmod +x /etc/cron.daily/kam.sh#!/bin/bash
# Version originale modifiée par Andrew MacLachlan ([email protected])
# Ajout de redémarrages supplémentaires de MailScanner en cas d'échec de redémarrage initial
# Script exécuté silencieusement pour un fonctionnement normal (réussi)
# Augmentation de UPDATEMAXDELAY à 900 au lieu de 600
# Insérer un délai aléatoire jusqu'à cette valeur, pour répartir les mises à jour de virus tout au long
# de la journée. 1800 secondes = 30 minutes.
# Réglez ceci à 0 pour le désactiver.
UPDATEMAXDELAY=0
if [ -f /opt/MailScanner/var/MailScanner ] ; then
. /opt/MailScanner/var/MailScanner
fi
export UPDATEMAXDELAY
if [ "x$UPDATEMAXDELAY" = "x0" ]; then
:
else
logger -p mail.info -t KAM.cf.sh Délai de la tâche cron jusqu'à $UPDATEMAXDELAY secondes
perl -e "sleep int(rand($UPDATEMAXDELAY));"
fi
# JKF Récupérer KAM.cf
#echo Récupération de KAM.cf...
cd /etc/mail/spamassassin
rm -f KAM.cf
wget -O KAM.cf http://www.peregrinehw.com/downloads/SpamAssassin/contrib/KAM.cf > /dev/null 2>&1
if [ "$?" = "0" ]; then
#echo Cela a été complété et a récupéré quelque chose
if ( tail -10 KAM.cf | grep -q '^#.*EOF' ); then
# echo Cela a réussi donc faites une sauvegarde
cp -f KAM.cf KAM.cf.backup
else
echo ERREUR: Impossible de trouver le marqueur EOF
cp -f KAM.cf.backup KAM.cf
fi
else
echo Cela a échoué à se compléter correctement
cp -f KAM.cf.backup KAM.cf
fi
#echo Rechargement des règles de configuration de MailScanner et SpamAssassin
/etc/init.d/mailscanner reload > /dev/null 2>&1
if [ $? != 0 ] ; then
echo "Le rechargement de MailScanner a échoué - Nouvelle tentative..."
/etc/init.d/mailscanner force-reload
if [ $? = 0 ] ; then
echo "Le rechargement de MailScanner a réussi."
else
echo "Arrêt de MailScanner..."
/etc/init.d/mailscanner stop
echo "Attente d'une minute..."
perl -e "sleep 60;"
echo "Tentative de démarrer MailScanner..."
/etc/init.d/mailscanner start
fi
fi 15. ScamNailer
vi /usr/sbin/update_scamnailer
et
chmod +x /usr/sbin/update_scamnailer
Remarque : *Le contenu est dans scamnailer.doc.)
Ajoutez-le à cron :
@daily /usr/sbin/update_scamnailer &> /dev/null #Mettre à jour Scamnailer16. Sécuriser le SpamSnake avec Firehol
Introduction
Firehol est un configurateur de pare-feu de filtrage de paquets iptables à état. Il est abstrait, extensible, facile et puissant. Il peut gérer n’importe quel type de pare-feu, mais surtout, il vous donne les moyens de le configurer, de la même manière que vous y pensez.
Installer Firehol
apt-get install fireholParamètres de Firehol :
vi /etc/default/fireholet changez ce qui suit :
START_FIREHOL=YESvi /etc/firehol/firehol.confet ajoutez ce qui suit :
version 5
# Accepter tout le trafic client sur n'importe quelle interface
interface any internet
protection strong
server "icmp ping ICMP ssh http https telnet webmin dns dcc echo smtp" accept
client all acceptCela filtre toutes les connexions entrantes qui ne sont pas liées aux services ci-dessus. Si vous souhaitez être moins poli, vous pouvez les rejeter en ajoutant ce qui suit après ‘protection strong’ : policy drop
vi /usr/sbin/get-ianaavec ce qui suit et
chmod +x /usr/sbin/get-iana#!/bin/bash
# $Id: get-iana.sh,v 1.13 2010/09/12 13:55:00 jcb Exp $
#
# $Log: get-iana.sh,v $
# Révision 1.13 2010/09/12 13:55:00 jcb
# Mis à jour pour le dernier format de réservations IANA.
#
# Révision 1.12 2008/03/17 22:08:43 ktsaou
# Mis à jour pour le dernier format de réservations IANA.
#
# Révision 1.11 2007/06/13 14:40:04 ktsaou
# * message de journal vide *
#
# Révision 1.10 2007/05/05 23:38:31 ktsaou
# Ajout du support pour les définitions externes de :
#
# RESERVED_IPS
# PRIVATE_IPS
# MULTICAST_IPS
# UNROUTABLE_IPS
#
# dans des fichiers sous le même nom dans /etc/firehol/.
# Seul RESERVED_IPS est obligatoire (firehol se plaindra s'il n'est pas là,
# mais il fonctionnera toujours sans), et c'est aussi le seul fichier que firehol
# vérifie combien de temps il a. S'il a plus de 90 jours, firehol se plaindra à nouveau.
#
# Changé le script get-iana.sh fourni pour générer le fichier RESERVED_IPS.
# FireHOL demande également à l'utilisateur d'utiliser ce script si le fichier est manquant
# ou est trop ancien.
#
# Révision 1.9 2007/04/29 19:34:11 ktsaou
# * message de journal vide *
#
# Révision 1.8 2005/06/02 15:48:52 ktsaou
# Autorisé 127.0.0.1 à être dans RESERVED_IPS
#
# Révision 1.7 2005/05/08 23:27:23 ktsaou
# Mis à jour RESERVED_IPS avec les réservations IANA actuelles.
#
# Révision 1.6 2004/01/10 18:44:39 ktsaou
# Optimisé et réduit davantage PRIVATE_IPS en utilisant :
# http://www.vergenet.net/linux/aggregate/
#
# Le get-iana.sh fourni utilise .aggregate. s'il le trouve dans le chemin.
# (aggregate est le nom de ce programme lorsqu'il est installé sur Gentoo)
#
# Révision 1.5 2003/08/23 23:26:50 ktsaou
# Bug #793889 :
# Changer #!/bin/sh en #!/bin/bash pour permettre à FireHOL de fonctionner sur des systèmes où
# bash n'est pas lié à /bin/sh.
#
# Révision 1.4 2002/10/27 12:44:42 ktsaou
# Test CVS
#
#
# Programme qui télécharge l'allocation d'espace d'adresses IPv4 par l'IANA
# et crée une liste avec tous les espaces d'adresses réservés.
#
IPV4_ADDRESS_SPACE_URL="http://www.iana.org/assignments/ipv4-address-space/ipv4-address-space.txt"
# Le programme va correspondre à toutes les lignes dans le fichier qui commencent par un nombre, ont une barre oblique,
# suivie d'un autre nombre, pour lequel le motif suivant correspondra également aux
# mêmes lignes
IANA_RESERVED="(RESERVED|UNALLOCATED)"
# quelles lignes qui correspondent à ce qui précède, ignorer
# (c'est-à-dire ne pas les inclure dans RESERVED_IPS) ?
#IANA_IGNORE="(Multicast|Private use|Loopback|Local Identification)"
IANA_IGNORE="Multicast"
tempfile="/tmp/iana.$$.$RANDOM"
AGGREGATE="`which aggregate 2>/dev/null`"
if [ -z "${AGGREGATE}" ]
then
AGGREGATE="`which aggregate 2>/dev/null`"
fi
if [ -z "${AGGREGATE}" ]
then
echo >&2
echo >&2
echo >&2 "AVERTISSEMENT"
echo >&2 "Veuillez installer 'aggregate' pour réduire la liste des IPs."
echo >&2
echo >&2
fi
echo >&2
echo >&2 "Récupération de l'espace d'adresses IPv4 de l'IANA, depuis :"
echo >&2 "${IPV4_ADDRESS_SPACE_URL}"
echo >&2
wget -O - -proxy=off "${IPV4_ADDRESS_SPACE_URL}" |\
egrep " *[0-9]+/[0-9]+.*${IANA_RESERVED}" |\
egrep -vi "${IANA_IGNORE}" |\
sed -e 's:^ *\([0-9]*/[0-9]*\).*:\1:' |\
(
while IFS="/" read range net
do
if [ ! $net -eq 8 ]
then
echo >&2 "Impossible de gérer les masques de réseau de $net bits ($range/$net)"
continue
fi
first=`echo $range | cut -d '-' -f 1`
first=`expr $first + 0`
last=`echo $range | cut -d '-' -f 2`
last=`expr $last + 0`
x=$first
while [ ! $x -gt $last ]
do
# test $x -ne 127 && echo "$x.0.0.0/$net"
echo "$x.0.0.0/$net"
x=$[x + 1]
done
done
) | \
(
if [ ! -z "${AGGREGATE}" -a -x "${AGGREGATE}" ]
then
"${AGGREGATE}"
else
cat
fi
) >"${tempfile}"
echo >&2
echo >&2
echo >&2 "TROUVÉ LES PLAGES IP RÉSERVÉES SUIVANTES :"
printf "RESERVED_IPS=\""
i=0
for x in `cat ${tempfile}`
do
i=$[i + 1]
printf "${x} "
done
printf "\"\n"
if [ $i -eq 0 ]
then
echo >&2
echo >&2
echo >&2 "Échec de la recherche d'IPs réservées."
echo >&2 "Possiblement le format du fichier a été changé, ou je ne peux pas récupérer l'URL."
echo >&2
rm -f ${tempfile}
exit 1
fi
echo >&2
echo >&2
echo >&2 "Différences entre la liste récupérée et la liste installée dans"
echo >&2 "/etc/firehol/RESERVED_IPS:"
echo >&2 "# diff /etc/firehol/RESERVED_IPS ${tempfile}"
diff /etc/firehol/RESERVED_IPS ${tempfile}
if [ $? -eq 0 ]
then
echo >&2
echo >&2 "Aucune différence trouvée."
echo >&2
rm -f ${tempfile}
exit 0
fi
echo >&2
echo >&2
echo >&2 "Souhaitez-vous enregistrer cette liste dans /etc/firehol/RESERVED_IPS"
echo >&2 "pour que FireHOL l'utilise automatiquement à partir de maintenant ?"
echo >&2
while [ 1 = 1 ]
do
printf >&2 "oui ou non > "
read x
case "${x}" in
oui) cp -f /etc/firehol/RESERVED_IPS /etc/firehol/RESERVED_IPS.old 2>/dev/null
cat "${tempfile}" >/etc/firehol/RESERVED_IPS || exit 1
echo >&2 "Nouveau RESERVED_IPS écrit dans '/etc/firehol/RESERVED_IPS'."
echo "Firehol va maintenant redémarrer"
sleep 3
/etc/init.d/firehol restart
break
;;
non)
echo >&2 "Rien n'a été enregistré."
break
;;
*) echo >&2 "Impossible de comprendre '${x}'."
;;
esac
done
rm -f ${tempfile}vi /usr/sbin/update-ianaavec le contenu suivant et
chmod +x /usr/sbin/update-iana#!/bin/sh
/usr/sbin/get-iana < /etc/firehol/get-iana-answerfilevi /etc/firehol/get-iana-answerfileavec le contenu suivant :
yesExécutez le script pour mettre à jour RESERVED_IPS :
/usr/sbin/update-ianaMaintenant, votre serveur est configuré pour n’accepter que les connexions pour les services que vous avez autorisés.
Ajoutez-le à cron :
@monthly /usr/sbin/update-iana &> /dev/null #Mettre à jour les ips réservées de firehol17. Appliquer les destinataires de relais
Les instructions suivantes sont destinées aux personnes utilisant Microsoft Exchange 2000 ou Microsoft Exchange 2003.
Cette page décrit comment configurer votre passerelle de messagerie pour obtenir périodiquement une liste d’adresses e-mail de destinataires valides de votre système Exchange. En faisant cela, vous pouvez configurer votre serveur pour rejeter automatiquement tout e-mail adressé à des adresses invalides. Cela réduira la charge sur votre serveur Exchange, car il n’aura plus à traiter les rapports de non-livraison, et cela réduira la charge sur votre serveur Postfix car il n’aura pas à effectuer de filtrage de spam et de virus sur le message.
Installer les dépendances
Installez le module perl Net::LDAP :
perl -MCPAN -e shell
install Net::LDAPvi /usr/bin/getadsmtp.plavec ce qui suit :
#!/usr/bin/perl -T -w
# Ce script va extraire toutes les adresses SMTP des utilisateurs de votre Active Directory
# (y compris les adresses e-mail principales et secondaires) et les lister dans le
# format "[email protected] OK" que Postfix utilise avec relay_recipient_maps.
# Assurez-vous de vérifier le chemin vers perl ci-dessus.
# Cela nécessite que Net::LDAP soit installé. Pour installer Net::LDAP, dans un shell
# tapez "perl -MCPAN -e shell" puis "install Net::LDAP"
use Net::LDAP;
use Net::LDAP::Control::Paged;
use Net::LDAP::Constant ( "LDAP_CONTROL_PAGED" );
# Entrez le chemin/fichier pour la sortie
$VALID = "/etc/postfix/relay_recipients";
open VALID, "> $VALID" or die "IMPOSSIBLE D'OUVRIR $VALID $!";
# Entrez le FQDN de vos contrôleurs de domaine Active Directory ci-dessous
$dc1="domaincontroller1.example.com";
$dc2="domaincontroller2.example.com";
# Entrez le conteneur LDAP pour votre base d'utilisateurs.
# La syntaxe est CN=Users,dc=example,dc=com
# Cela peut être trouvé en installant les outils de support Windows 2000
# puis en exécutant ADSI Edit.
# Dans ADSI Edit, développez le "Domain NC [domaincontroller1.example.com]" &
# vous verrez, par exemple, DC=example,DC=com (c'est votre base).
# Le conteneur Users sera spécifié dans le panneau de droite comme
# CN=Users selon votre schéma (c'est votre conteneur).
# Vous pouvez vérifier cela en cliquant sur "Propriétés" de votre dossier utilisateur
# dans ADSI Edit et en examinant la valeur "Chemin", comme :
# LDAP://domaincontroller1.example.com/CN=Users,DC=example,DC=com
# ce qui serait $hqbase="cn=Users,dc=example,dc=com"
# Remarque : Vous pouvez également utiliser juste $hqbase="dc=example,dc=com"
$hqbase="cn=Users,dc=example,dc=com";
# Entrez le nom d'utilisateur & mot de passe pour un utilisateur valide dans votre Active Directory
# avec le nom d'utilisateur sous la forme cn=username,cn=Users,dc=example,dc=com
# Assurez-vous que le mot de passe de l'utilisateur n'expire pas. Notez que cet utilisateur
# n'a pas besoin de privilèges spéciaux.
# Vous pouvez vérifier cela en cliquant sur "Propriétés" de votre utilisateur dans
# ADSI Edit et en examinant la valeur "Chemin", comme :
# LDAP://domaincontroller1.example.com/CN=user,CN=Users,DC=example,DC=com
# ce qui serait $user="cn=user,cn=Users,dc=example,dc=com"
# Remarque : Vous pouvez également utiliser le login UPN : "[email protected]"
$user="cn=user,cn=Users,dc=example,dc=com";
$passwd="password";
# Connexion aux contrôleurs de domaine Active Directory
$noldapserver=0;
$ldap = Net::LDAP->new($dc1) or
$noldapserver=1;
if ($noldapserver == 1) {
$ldap = Net::LDAP->new($dc2) or
die "Erreur de connexion aux contrôleurs de domaine spécifiés $@ \n";
}
$mesg = $ldap->bind ( dn => $user,
password =>$passwd);
if ( $mesg->code()) {
die ("erreur:", $mesg->error_text((),"\n"));
}
# Combien de résultats de requête LDAP récupérer pour chaque round paginé
# Réglez à moins de 1000 pour Active Directory
$page = Net::LDAP::Control::Paged->new( size => 990 );
@args = ( base => $hqbase,
# Jouez avec cela pour récupérer des objets tels que Contacts, Dossiers Publics, etc.
# Un filtre minimal pour juste les utilisateurs avec e-mail serait :
# filter => "(&(sAMAccountName=*)(mail=*)))"
filter => "(& (mailnickname=*) (| (&(objectCategory=person)
(objectClass=user)(!(homeMDB=*))(!(msExchHomeServerName=*)))
(&(objectCategory=person)(objectClass=user)(|(homeMDB=*)
(msExchHomeServerName=*)))(&(objectCategory=person)(objectClass=contact))
(objectCategory=group)(objectCategory=publicFolder) ))",
control => [ $page ],
attrs => "proxyAddresses",
);
my $cookie;
while(1) {
# Effectuer la recherche
my $mesg = $ldap->search( @args );
# Filtrage des résultats pour les attributs proxyAddresses
foreach my $entry ( $mesg->entries ) {
my $name = $entry->get_value( "cn" );
# Les attributs LDAP sont multi-valués, donc nous devons imprimer chacun.
foreach my $mail ( $entry->get_value( "proxyAddresses" ) ) {
# Testez si la ligne commence par l'une des lignes suivantes :
# proxyAddresses: [smtp|SMTP]:
# et également rejeter cette chaîne de départ, de sorte que $mail soit seulement l
# adresse sans aucun autre caractère...
if ( $mail =~ s/^(smtp|SMTP)://gs ) {
print VALID $mail." OK\n";
}
}
}
# Continuez uniquement sur LDAP_SUCCESS
$mesg->code and last;
# Obtenez le cookie du contrôle paginé
my($resp) = $mesg->control( LDAP_CONTROL_PAGED ) or last;
$cookie = $resp->cookie or last;
# Définir le cookie dans le contrôle paginé
$page->cookie($cookie);
}
if ($cookie) {
# Nous avons eu une sortie anormale, donc faisons savoir au serveur que nous ne voulons plus
$page->cookie($cookie);
$page->size(0);
$ldap->search( @args );
# Il serait également bon de mourir malheureux et d'informer OP à ce stade
die("Requête LDAP infructueuse");
}
# Ajoutez des restrictions supplémentaires, utilisateurs, etc. au fichier de sortie ci-dessous.
#print VALID "[email protected] OK\n";
#print VALID "[email protected] 550 Utilisateur inconnu.\n";
#print VALID "domain3.com 550 L'utilisateur n'existe pas.\n";
close VALID;Ensuite, définissez les permissions sur le fichier pour lui permettre d’être exécuté :
chmod +x /usr/bin/getadsmtp.plModifiez le fichier pour le personnaliser pour votre domaine spécifique. Puisque le fichier est en lecture seule, vous devrez utiliser :w! pour enregistrer le fichier dans vi.
- Définissez $dc1 et $dc2 sur les noms de domaine entièrement qualifiés ou les adresses IP de 2 de vos contrôleurs de domaine.
- Définissez $hqbase égal au chemin LDAP vers le conteneur ou l’unité organisationnelle qui contient les comptes e-mail pour lesquels vous souhaitez obtenir les adresses e-mail.
- Définissez $user et $passwd pour indiquer quel compte utilisateur doit être utilisé pour accéder à ces informations. Ce compte n’a besoin d’être qu’un membre du domaine, donc il serait bon de configurer un compte spécifiquement pour cela.
Essayez d’exécuter le script. S’il fonctionne correctement, il créera /etc/postfix/relay_recipients.
Notez que si votre serveur Postfix est séparé de vos contrôleurs Active Directory par un pare-feu, vous devrez ouvrir le port TCP 389 du serveur Postfix vers les ADC.
getadsmtp.plÀ ce stade, vous voudrez peut-être modifier /etc/postfix/relay_recipients et supprimer les adresses e-mail indésirables car ce script importe tout.
Postmap le fichier pour créer la base de données hash
postmap /etc/postfix/relay_recipients
postfix reloadEnfin, vous voudrez peut-être configurer un job cron pour mettre à jour et construire périodiquement le fichier /etc/postfix/relay_recipients.db. Vous pouvez configurer un script appelé /usr/bin/update-relay-recipients.sh : (Optionnel)
vi /usr/bin/update-relay-recipients.shavec ce qui suit et
chmod +x /usr/bin/update-relay_recipients.sh#!/bin/sh
/usr/bin/getadsmtp.pl
postmap /etc/postfix/relay_recipients
postfix reloadN’oubliez pas de vous assurer que ce qui suit est dans votre fichier /etc/postfix/main.cf :
relay_recipient_maps = hash:/etc/postfix/relay_recipientsAjoutez-le à cron :
30 2 * * * /usr/bin/update-relay-recipients.sh #synchroniser relay_recipients avec les adresses Active Directory:Notez que ce job cron s’exécutera tous les jours à 2h30 pour mettre à jour le fichier de base de données. Vous voudrez peut-être exécuter le vôtre plus fréquemment ou non selon la fréquence à laquelle vous ajoutez de nouveaux utilisateurs e-mail à votre système.
18. Installer Webmin (Optionnel) :
apt-get install perl libnet-ssleay-perl libauthen-pam-perl libio-pty-perl apt-show-versions
cd /tmp && wget http://mirrors.kernel.org/ubuntu/pool/universe/libm/libmd5-perl/libmd5-perl_2.03-1_all.deb
dpkg -i libmd5-perl_2.03-1_all.deb
wget http://downloads.sourceforge.net/project/webadmin/webmin/1.520/webmin_1.520_all.deb
dpkg --install webmin_1.520_all.deb19. Ajouter automatiquement un avertissement aux e-mails sortants avec alterMIME (Optionnel)
Ce tutoriel montre comment installer et utiliser alterMIME. alterMIME est un outil qui peut ajouter automatiquement un avertissement aux e-mails. Dans cet article, je vais expliquer comment l’installer en tant que filtre Postfix sur Ubuntu.
Installation de alterMIME :
apt-get install altermimeEnsuite, nous créons le filtre utilisateur avec le répertoire personnel /var/spool/filter - alterMIME sera exécuté en tant que cet utilisateur :
useradd -r -c "Filtres Postfix" -d /var/spool/filter filter
mkdir /var/spool/filter
chown filter:filter /var/spool/filter
chmod 750 /var/spool/filterEnsuite, nous créons le script /etc/postfix/disclaimer qui exécute alterMIME. Le package alterMIME d’Ubuntu est livré avec un script d’exemple que nous pouvons simplement copier dans /etc/postfix/disclaimer :
cp /usr/share/doc/altermime/examples/postfix_filter.sh /etc/postfix/disclaimer
chgrp filter /etc/postfix/disclaimer
chmod 750 /etc/postfix/disclaimerMaintenant, le problème avec ce script est qu’il ne fait pas de distinction entre les e-mails entrants et sortants - il ajoute simplement un avertissement à tous les e-mails. Typiquement, vous voulez des avertissements uniquement pour les e-mails sortants, et même alors pas pour toutes les adresses d’expéditeur. Par conséquent, j’ai modifié un peu le script /etc/postfix/disclaimer - nous y viendrons dans un instant.
En ce moment, nous créons le fichier /etc/postfix/disclaimer_addresses qui contient toutes les adresses e-mail des expéditeurs (une par ligne) pour lesquelles alterMIME devrait ajouter un avertissement :
vi /etc/postfix/disclaimer_addresses[email protected]
[email protected]
[email protected]Maintenant, nous ouvrons /etc/postfix/disclaimer et le modifions comme suit (j’ai marqué les parties que j’ai changées) :
vi /etc/postfix/disclaimer#!/bin/sh
# Localisez ceci.
INSPECT_DIR=/var/spool/filter
SENDMAIL=/usr/sbin/sendmail
####### Changé du script original #######
DISCLAIMER_ADDRESSES=/etc/postfix/disclaimer_addresses
####### Changé du script original FIN #######
# Codes de sortie de
EX_TEMPFAIL=75
EX_UNAVAILABLE=69
# Nettoyez lorsque vous avez terminé ou lorsque vous abandonnez.
trap "rm -f in.$$" 0 1 2 3 15
# Commencez le traitement.
cd $INSPECT_DIR || { echo $INSPECT_DIR n'existe pas; exit
$EX_TEMPFAIL; }
cat >in.$$ || { echo Impossible d'enregistrer le mail dans le fichier; exit $EX_TEMPFAIL; }
####### Changé du script original #######
# obtenir l'adresse From
from_address=`grep -m 1 "From:" in.$$ | cut -d "<" -f 2 | cut -d ">" -f 1`
if [ `grep -wi ^${from_address}$ ${DISCLAIMER_ADDRESSES}` ]; then
/usr/bin/altermime --input=in.$$ \
--disclaimer=/etc/postfix/disclaimer.txt \
--disclaimer-html=/etc/postfix/disclaimer.txt \
--xheader="X-Copyrighted-Material: Veuillez visiter http://www.company.com/privacy.htm" || \
{ echo Contenu du message rejeté; exit $EX_UNAVAILABLE; }
fi
####### Changé du script original FIN #######
$SENDMAIL "$@" Ensuite, nous avons besoin du fichier texte /etc/postfix/disclaimer.txt qui contient notre texte d’avertissement. Le package alterMIME d’Ubuntu est livré avec un texte d’exemple que nous pouvons utiliser pour l’instant (bien sûr, vous pouvez le modifier si vous le souhaitez) :
cp /usr/share/doc/altermime/examples/disclaimer.txt /etc/postfix/disclaimer.txtEnfin, nous devons dire à Postfix qu’il doit utiliser le script /etc/postfix/disclaimer pour ajouter des avertissements aux e-mails sortants. Ouvrez /etc/postfix/master.cf et ajoutez -o content_filter=dfilt: à la ligne smtp :
vi /etc/postfix/master.cf#
# Fichier de configuration du processus maître Postfix. Pour des détails sur le format
# du fichier, voir la page de manuel master(5) (commande : "man 5 master").
#
# ==========================================================================
# type de service privé non privilégié chroot réveil maxproc commande + args
# (oui) (oui) (oui) (jamais) (100)
# ==========================================================================
smtp inet n - - - - smtpd
-o content_filter=dfilt:
[...] À la fin du même fichier, ajoutez les deux lignes suivantes :
[...]
dfilt unix - n n - - pipe
flags=Rq user=filter argv=/etc/postfix/disclaimer -f ${sender} -- ${recipient} Redémarrez Postfix ensuite :
/etc/init.d/postfix restartC’est tout ! Maintenant, un avertissement devrait être ajouté aux e-mails sortants envoyés depuis les adresses répertoriées dans /etc/postfix/disclaimer_addresses.
20. Captures d’écran



Félicitations
Vous devriez maintenant avoir un SpamSnake complet et fonctionnel avec toutes les fonctionnalités :-)
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.