SpamSnake · 15 min read · Dec 25, 2025
Il Perfetto SpamSnake - Ubuntu Jeos 10.10 Maverick Meerkat - Pagina 4
14. KAM
vi /etc/cron.daily/kam.shAggiungi il seguente contenuto e
chmod +x /etc/cron.daily/kam.sh#!/bin/bash
# Versione originale modificata da Andrew MacLachlan ([email protected])
# Aggiunti ulteriori riavvii di MailScanner in caso di fallimento del riavvio iniziale
# Reso lo script silenzioso per il normale (riuscito) funzionamento
# Aumentato UPDATEMAXDELAY a 900 da 600
# Inserisci un ritardo casuale fino a questo valore, per diffondere gli aggiornamenti del virus durante
# il giorno. 1800 secondi = 30 minuti.
# Imposta questo a 0 per disabilitarlo.
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 Ritardo del lavoro cron fino a $UPDATEMAXDELAY secondi
perl -e "sleep int(rand($UPDATEMAXDELAY));"
fi
# JKF Fetch KAM.cf
#echo Recupero 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 È completato e ha recuperato qualcosa
if ( tail -10 KAM.cf | grep -q '^#.*EOF' ); then
# echo È riuscito quindi crea un backup
cp -f KAM.cf KAM.cf.backup
else
echo ERRORE: Impossibile trovare il marcatore EOF
cp -f KAM.cf.backup KAM.cf
fi
else
echo È fallito nel completare correttamente
cp -f KAM.cf.backup KAM.cf
fi
#echo Ricaricamento delle regole di configurazione di MailScanner e SpamAssassin
/etc/init.d/mailscanner reload > /dev/null 2>&1
if [ $? != 0 ] ; then
echo "Il ricaricamento di MailScanner è fallito - Riprovo..."
/etc/init.d/mailscanner force-reload
if [ $? = 0 ] ; then
echo "Il ricaricamento di MailScanner è riuscito."
else
echo "Arresto di MailScanner..."
/etc/init.d/mailscanner stop
echo "Attesa di un minuto..."
perl -e "sleep 60;"
echo "Tentativo di avviare MailScanner..."
/etc/init.d/mailscanner start
fi
fi 15. ScamNailer
vi /usr/sbin/update_scamnailer
e
chmod +x /usr/sbin/update_scamnailer
Nota: *Il contenuto è in scamnailer.doc.)
Aggiungilo a cron:
@daily /usr/sbin/update_scamnailer &> /dev/null #Aggiorna Scamnailer16. Firewalling lo SpamSnake con Firehol
Introduzione
Firehol è un configuratore di firewall per il filtraggio dei pacchetti iptables a stato. È astratto, estensibile, facile e potente. Può gestire qualsiasi tipo di firewall, ma soprattutto, ti dà i mezzi per configurarlo, nello stesso modo in cui lo pensi.
Installa Firehol
apt-get install fireholImpostazioni di Firehol:
vi /etc/default/firehole cambia il seguente:
START_FIREHOL=YESvi /etc/firehol/firehol.confe aggiungi il seguente:
version 5
# Accetta tutto il traffico client su qualsiasi interfaccia
interface any internet
protection strong
server "icmp ping ICMP ssh http https telnet webmin dns dcc echo smtp" accept
client all acceptQuesto filtra tutte le connessioni in arrivo che non sono correlate ai servizi sopra. Se vuoi essere meno cortese, puoi scartarle aggiungendo quanto segue dopo ‘protection strong’: policy drop
vi /usr/sbin/get-ianacon il seguente e
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 $
# Revision 1.13 2010/09/12 13:55:00 jcb
# Aggiornato per il formato più recente delle riserve IANA.
#
# Revision 1.12 2008/03/17 22:08:43 ktsaou
# Aggiornato per il formato più recente delle riserve IANA.
#
# Revision 1.11 2007/06/13 14:40:04 ktsaou
# * messaggio di log vuoto *
#
# Revision 1.10 2007/05/05 23:38:31 ktsaou
# Aggiunta supporto per definizioni esterne di:
#
# RESERVED_IPS
# PRIVATE_IPS
# MULTICAST_IPS
# UNROUTABLE_IPS
#
# in file con lo stesso nome in /etc/firehol/.
# Solo RESERVED_IPS è obbligatorio (firehol si lamenterà se non è lì,
# ma funzionerà comunque senza di esso), ed è anche l'unico file che firehol
# controlla quanto è vecchio. Se ha più di 90 giorni, firehol si lamenterà
# di nuovo.
#
# Cambiato lo script fornito get-iana.sh per generare il file RESERVED_IPS.
# FireHOL istruisce anche l'utente a utilizzare questo script se il file è
# mancante o è troppo vecchio.
#
# Revision 1.9 2007/04/29 19:34:11 ktsaou
# * messaggio di log vuoto *
#
# Revision 1.8 2005/06/02 15:48:52 ktsaou
# Consentito 127.0.0.1 di essere in RESERVED_IPS
#
# Revision 1.7 2005/05/08 23:27:23 ktsaou
# Aggiornato RESERVED_IPS alle attuali riserve IANA.
#
# Revision 1.6 2004/01/10 18:44:39 ktsaou
# Ulteriormente ottimizzato e ridotto PRIVATE_IPS utilizzando:
# http://www.vergenet.net/linux/aggregate/
#
# Lo script fornito get-iana.sh utilizza .aggregate. se lo trova nel percorso.
# (aggregate è il nome di questo programma quando installato su Gentoo)
#
# Revision 1.5 2003/08/23 23:26:50 ktsaou
# Bug #793889:
# Cambia #!/bin/sh in #!/bin/bash per consentire a FireHOL di funzionare su sistemi in cui
# bash non è collegato a /bin/sh.
#
# Revision 1.4 2002/10/27 12:44:42 ktsaou
# Test CVS
#
#
# Programma che scarica l'allocazione dello spazio degli indirizzi IPv4 da IANA
# e crea un elenco con tutti gli spazi di indirizzi riservati.
#
IPV4_ADDRESS_SPACE_URL="http://www.iana.org/assignments/ipv4-address-space/ipv4-address-space.txt"
# Il programma corrisponderà a tutte le righe nel file che iniziano con un numero, hanno una barra,
# seguita da un altro numero, per cui il seguente modello corrisponderà anche
# sulle stesse righe
IANA_RESERVED="(RESERVED|UNALLOCATED)"
# quali righe che sono corrisposte da quanto sopra, ignorare
# (cioè non includerle in 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 "AVVISO"
echo >&2 "Si prega di installare 'aggregate' per ridurre l'elenco degli IP."
echo >&2
echo >&2
fi
echo >&2
echo >&2 "Recupero IANA IPv4 Address Space, da:"
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 "Impossibile gestire le maschere di rete di $net bit ($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 "TROVATI I SEGUENTI INTERVALLI IP RISERVATI:"
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 "Impossibile trovare IP riservati."
echo >&2 "Possibilmente il formato del file è stato cambiato, o non riesco a recuperare l'URL."
echo >&2
rm -f ${tempfile}
exit 1
fi
echo >&2
echo >&2
echo >&2 "Differenze tra l'elenco recuperato e l'elenco installato in"
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 "Nessuna differenza trovata."
echo >&2
rm -f ${tempfile}
exit 0
fi
echo >&2
echo >&2
echo >&2 "Vuoi salvare questo elenco in /etc/firehol/RESERVED_IPS"
echo >&2 "in modo che FireHOL lo utilizzi automaticamente da ora in poi?"
echo >&2
while [ 1 = 1 ]
do
printf >&2 "sì o no > "
read x
case "${x}" in
yes) cp -f /etc/firehol/RESERVED_IPS /etc/firehol/RESERVED_IPS.old 2>/dev/null
cat "${tempfile}" >/etc/firehol/RESERVED_IPS || exit 1
echo >&2 "Nuovi RESERVED_IPS scritti in '/etc/firehol/RESERVED_IPS'."
echo "Firehol verrà ora riavviato"
sleep 3
/etc/init.d/firehol restart
break
;;
no)
echo >&2 "Niente salvato."
break
;;
*) echo >&2 "Impossibile capire '${x}'."
;;
esac
done
rm -f ${tempfile}vi /usr/sbin/update-ianacon il seguente contenuto e
chmod +x /usr/sbin/update-iana#!/bin/sh
/usr/sbin/get-iana < /etc/firehol/get-iana-answerfilevi /etc/firehol/get-iana-answerfilecon il seguente contenuto:
yesEsegui lo script per aggiornare RESERVED_IPS:
/usr/sbin/update-ianaOra il tuo server è configurato per accettare solo connessioni per i servizi che hai consentito.
Aggiungilo a cron:
@monthly /usr/sbin/update-iana &> /dev/null #Aggiorna gli ip riservati di firehol17. Applica i destinatari di Relay
Le seguenti istruzioni sono destinate a persone che utilizzano Microsoft Exchange 2000 o Microsoft Exchange 2003.
Questa pagina descrive come configurare il tuo gateway di posta per ottenere periodicamente un elenco di indirizzi email destinatari validi dal tuo sistema Exchange. Facendo ciò, puoi configurare il tuo server per rifiutare automaticamente qualsiasi email indirizzata a indirizzi non validi. Questo ridurrà il carico sul tuo server exchange, poiché non dovrà più elaborare rapporti di mancata consegna, e ridurrà il carico sul tuo server postfix poiché non dovrà eseguire scansioni di spam e virus sul messaggio.
Installa le dipendenze
Installa il modulo perl Net::LDAP:
perl -MCPAN -e shell
install Net::LDAPvi /usr/bin/getadsmtp.plcon il seguente:
#!/usr/bin/perl -T -w
# Questo script recupererà tutti gli indirizzi SMTP degli utenti dal tuo Active Directory
# (inclusi indirizzi email primari e secondari) e li elencherà nel
# formato "[email protected] OK" che Postfix utilizza con relay_recipient_maps.
# Assicurati di controllare il percorso di perl sopra.
# Questo richiede che Net::LDAP sia installato. Per installare Net::LDAP, in una shell
# digita "perl -MCPAN -e shell" e poi "install Net::LDAP"
use Net::LDAP;
use Net::LDAP::Control::Paged;
use Net::LDAP::Constant ( "LDAP_CONTROL_PAGED" );
# Inserisci il percorso/file per l'output
$VALID = "/etc/postfix/relay_recipients";
open VALID, "> $VALID" or die "IMpossibile APRIRE $VALID $!";
# Inserisci il FQDN dei tuoi controller di dominio Active Directory qui sotto
$dc1="domaincontroller1.example.com";
$dc2="domaincontroller2.example.com";
# Inserisci il contenitore LDAP per il tuo database utenti.
# La sintassi è CN=Users,dc=example,dc=com
# Questo può essere trovato installando gli strumenti di supporto di Windows 2000
# e poi eseguendo ADSI Edit.
# In ADSI Edit, espandi il "Domain NC [domaincontroller1.example.com]" &
# vedrai, per esempio, DC=example,DC=com (questo è il tuo base).
# Il contenitore Utenti sarà specificato nel pannello di destra come
# CN=Users a seconda del tuo schema (questo è il tuo contenitore).
# Puoi controllare questo facendo clic su "Proprietà" della tua cartella utente in
# ADSI Edit e esaminando il valore "Percorso", come:
# LDAP://domaincontroller1.example.com/CN=Users,DC=example,DC=com
# che sarebbe $hqbase="cn=Users,dc=example,dc=com"
# Nota: Puoi anche usare solo $hqbase="dc=example,dc=com"
$hqbase="cn=Users,dc=example,dc=com";
# Inserisci il nome utente e la password per un utente valido nel tuo Active Directory
# con nome utente nella forma cn=username,cn=Users,dc=example,dc=com
# Assicurati che la password dell'utente non scada. Nota che questo utente
# non richiede privilegi speciali.
# Puoi controllare questo facendo clic su "Proprietà" del tuo utente in
# ADSI Edit e esaminando il valore "Percorso", come:
# LDAP://domaincontroller1.example.com/CN=user,CN=Users,DC=example,DC=com
# che sarebbe $user="cn=user,cn=Users,dc=example,dc=com"
# Nota: Puoi anche usare il login UPN: "[email protected]"
$user="cn=user,cn=Users,dc=example,dc=com";
$passwd="password";
# Connessione ai controller di dominio Active Directory
$noldapserver=0;
$ldap = Net::LDAP->new($dc1) or
$noldapserver=1;
if ($noldapserver == 1) {
$ldap = Net::LDAP->new($dc2) or
die "Errore di connessione ai controller di dominio specificati $@ \n";
}
$mesg = $ldap->bind ( dn => $user,
password =>$passwd);
if ( $mesg->code()) {
die ("errore:", $mesg->error_text((),"\n"));
}
# Quanti risultati di query LDAP recuperare per ogni round paginato
# Imposta sotto 1000 per Active Directory
$page = Net::LDAP::Control::Paged->new( size => 990 );
@args = ( base => $hqbase,
# Gioca con questo per recuperare oggetti come Contatti, Cartelle Pubbliche, ecc.
# Un filtro minimo per solo utenti con email sarebbe:
# 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) {
# Esegui ricerca
my $mesg = $ldap->search( @args );
# Filtrando risultati per attributi proxyAddresses
foreach my $entry ( $mesg->entries ) {
my $name = $entry->get_value( "cn" );
# Gli attributi LDAP sono multi-valore, quindi dobbiamo stampare ciascuno.
foreach my $mail ( $entry->get_value( "proxyAddresses" ) ) {
# Testa se la riga inizia con una delle seguenti righe:
# proxyAddresses: [smtp|SMTP]:
# e scarta anche questa stringa iniziale, in modo che $mail sia solo l'indirizzo senza altri caratteri...
if ( $mail =~ s/^(smtp|SMTP)://gs ) {
print VALID $mail." OK\n";
}
}
}
# Continua solo su LDAP_SUCCESS
$mesg->code and last;
# Ottieni cookie dal controllo paginato
my($resp) = $mesg->control( LDAP_CONTROL_PAGED ) or last;
$cookie = $resp->cookie or last;
# Imposta cookie nel controllo paginato
$page->cookie($cookie);
}
if ($cookie) {
# Abbiamo avuto un'uscita anomala, quindi facciamo sapere al server che non vogliamo più
$page->cookie($cookie);
$page->size(0);
$ldap->search( @args );
# Sarebbe anche una buona idea morire infelicemente e informare OP a questo punto
die("Query LDAP non riuscita");
}
# Aggiungi ulteriori restrizioni, utenti, ecc. al file di output qui sotto.
#print VALID "[email protected] OK\n";
#print VALID "[email protected] 550 Utente sconosciuto.\n";
#print VALID "domain3.com 550 Utente non esiste.\n";
close VALID;Successivamente imposta i permessi sul file per consentirne l’esecuzione:
chmod +x /usr/bin/getadsmtp.plModifica il file per personalizzarlo per il tuo dominio specifico. Poiché il file è di sola lettura, dovrai usare :w! per salvare il file in vi.
- Imposta $dc1 e $dc2 sui nomi di dominio completamente qualificati o sugli indirizzi IP di 2 dei tuoi controller di dominio.
- Imposta $hqbase uguale al percorso LDAP per il contenitore o l’unità organizzativa che contiene gli account email per i quali desideri ottenere gli indirizzi email.
- Imposta $user e $passwd per indicare quale account utente dovrebbe essere utilizzato per accedere a queste informazioni. Questo account deve solo essere un membro del dominio, quindi sarebbe una buona idea impostare un account specificamente per questo.
Prova a eseguire lo script. Se funziona correttamente, creerà /etc/postfix/relay_recipients.
Nota che se il tuo server postfix è separato dai tuoi controller di Active Directory da un firewall, dovrai aprire la porta TCP 389 dal server postfix agli ADC.
getadsmtp.plA questo punto, potresti voler modificare /etc/postfix/relay_recipients e rimuovere eventuali indirizzi email indesiderati poiché questo script importa tutto.
Postmap il file per creare il db hash
postmap /etc/postfix/relay_recipients
postfix reloadInfine, potresti voler impostare un lavoro cron per aggiornare periodicamente e costruire il file /etc/postfix/relay_recipients.db. Puoi impostare uno script chiamato /usr/bin/update-relay-recipients.sh: (Opzionale)
vi /usr/bin/update-relay-recipients.shcon il seguente e
chmod +x /usr/bin/update-relay_recipients.sh#!/bin/sh
/usr/bin/getadsmtp.pl
postmap /etc/postfix/relay_recipients
postfix reloadNon dimenticare di assicurarti che quanto segue sia nel tuo file /etc/postfix/main.cf:
relay_recipient_maps = hash:/etc/postfix/relay_recipientsAggiungilo a cron:
30 2 * * * /usr/bin/update-relay-recipients.sh #sincronizza relay_recipients con indirizzi Active Directory:Nota che questo lavoro cron verrà eseguito ogni giorno alle 2:30 AM per aggiornare il file del database. Potresti voler eseguire il tuo più frequentemente o meno a seconda di quanto spesso aggiungi nuovi utenti email al tuo sistema.
18. Installa Webmin (Opzionale):
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. Aggiungi automaticamente un disclaimer alle email in uscita con alterMIME (Opzionale)
Questo tutorial mostra come installare e utilizzare alterMIME. alterMIME è uno strumento che può aggiungere automaticamente un disclaimer alle email. In questo articolo spiegherò come installarlo come filtro Postfix su Ubuntu.
Installazione di alterMIME:
apt-get install altermimeSuccessivamente creiamo il filtro utente con la home directory /var/spool/filter - alterMIME verrà eseguito come quell’utente:
useradd -r -c "Filtri Postfix" -d /var/spool/filter filter
mkdir /var/spool/filter
chown filter:filter /var/spool/filter
chmod 750 /var/spool/filterDopo creiamo lo script /etc/postfix/disclaimer che esegue alterMIME. Il pacchetto alterMIME di Ubuntu viene fornito con uno script di esempio che possiamo semplicemente copiare in /etc/postfix/disclaimer:
cp /usr/share/doc/altermime/examples/postfix_filter.sh /etc/postfix/disclaimer
chgrp filter /etc/postfix/disclaimer
chmod 750 /etc/postfix/disclaimerOra il problema con questo script è che non distingue tra email in arrivo e in uscita - aggiunge semplicemente un disclaimer a tutte le email. Tipicamente vuoi disclaimer solo per le email in uscita, e anche allora non per tutti gli indirizzi del mittente. Pertanto ho modificato un po’ lo script /etc/postfix/disclaimer - ci arriveremo tra un minuto.
In questo momento, creiamo il file /etc/postfix/disclaimer_addresses che contiene tutti gli indirizzi email del mittente (uno per riga) per i quali alterMIME dovrebbe aggiungere un disclaimer:
vi /etc/postfix/disclaimer_addresses[email protected]
[email protected]
[email protected]Ora apriamo /etc/postfix/disclaimer e lo modifichiamo come segue (ho contrassegnato le parti che ho cambiato):
vi /etc/postfix/disclaimer#!/bin/sh
# Localizza questi.
INSPECT_DIR=/var/spool/filter
SENDMAIL=/usr/sbin/sendmail
####### Cambiato Dallo Script Originale #######
DISCLAIMER_ADDRESSES=/etc/postfix/disclaimer_addresses
####### Cambiato Dallo Script Originale FINE #######
# Codici di uscita da
EX_TEMPFAIL=75
EX_UNAVAILABLE=69
# Pulisci quando hai finito o quando abortisci.
trap "rm -f in.$$" 0 1 2 3 15
# Inizia l'elaborazione.
cd $INSPECT_DIR || { echo $INSPECT_DIR non esiste; exit
$EX_TEMPFAIL; }
cat >in.$$ || { echo Impossibile salvare la posta nel file; exit $EX_TEMPFAIL; }
####### Cambiato Dallo Script Originale #######
# ottieni l'indirizzo del mittente
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: Si prega di visitare http://www.company.com/privacy.htm" || \
{ echo Contenuto del messaggio rifiutato; exit $EX_UNAVAILABLE; }
fi
####### Cambiato Dallo Script Originale FINE #######
$SENDMAIL "$@" Successivamente abbiamo bisogno del file di testo /etc/postfix/disclaimer.txt che contiene il nostro testo di disclaimer. Il pacchetto alterMIME di Ubuntu viene fornito con un testo di esempio che possiamo usare per ora (ovviamente, puoi modificarlo se vuoi):
cp /usr/share/doc/altermime/examples/disclaimer.txt /etc/postfix/disclaimer.txtInfine dobbiamo dire a Postfix che dovrebbe utilizzare lo script /etc/postfix/disclaimer per aggiungere disclaimer alle email in uscita. Apri /etc/postfix/master.cf e aggiungi -o content_filter=dfilt: alla riga smtp:
vi /etc/postfix/master.cf#
# File di configurazione del processo master di Postfix. Per dettagli sul formato
# del file, vedere la pagina man master(5) (comando: "man 5 master").
#
# ==========================================================================
# tipo di servizio privato non privilegiato chroot risveglio maxproc comando + argomenti
# (sì) (sì) (sì) (mai) (100)
# ==========================================================================
smtp inet n - - - - smtpd
-o content_filter=dfilt:
[...] Alla fine dello stesso file, aggiungi le seguenti due righe:
[...]
dfilt unix - n n - - pipe
flags=Rq user=filter argv=/etc/postfix/disclaimer -f ${sender} -- ${recipient} Riavvia Postfix successivamente:
/etc/init.d/postfix restartEcco fatto! Ora un disclaimer dovrebbe essere aggiunto alle email in uscita inviate dagli indirizzi elencati in /etc/postfix/disclaimer_addresses.
20. Screenshot



Congratulazioni
Ora dovresti avere un completo SpamSnake funzionante con tutte le novità :-)
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.