Vincenzo Ingrosso Weblog
  • System Admin
  • Random Post
  • Authors
  • Become an Author
  • Messages Box
  • Crumbs!
  • Privacy Policy
  • About me
  • Contact
Facebook Page
  • Authors
  • Become an Author
  • Messages Box
  • Crumbs!
  • Privacy Policy
0 Likes
0 Followers
0 Followers
Iscriviti
Vincenzo Ingrosso Weblog
Vincenzo Ingrosso Weblog
  • System Admin
    • Debian & Sysadmin
    • Server
    • Bash
    • Ispconfig
    • Mac OSX
  • Random Post
  • About me
  • Contact
  • Bash
  • Debian & Sysadmin
  • Ispconfig

DSPAM: setting up with Postfix/Dovecot in Ispconfig3 environment

  • 8 Novembre 2013
  • Vincenzo Ingrosso
Total
0
Shares
0
0
1

I server mail odierni se impostati correttamente riescono a filtrare quasi tutto lo spam diretto verso le nostre caselle e-mail.

dspam

Ma per ogni misura di difesa adottata c’è un mondo di nullafacenti che si diverte a mettere in piedi contromisure sempre più aggressive e penetranti.

Il sistema migliore per combattere lo spam siamo noi e se il nostro sistema potesse imparare da noi non sarebbe fantastico?!
Uno strumento come DSPAM permette di “istruire” il nostro sistema mail perché possa riconoscere la posta indesiderata.

Il presupposto cardine è l’ambiente in cui opereremo: Ispconfig3 (il nostro server è basato su The Perfect Server – Debian Wheezy)

Mi occuperò di dirvi come:

  • installare DSPAM e configurarlo per lavorare con Postfix e Dovecot;
  • instruire DSPAM attraverso il dovecot-antispam plugin.

Installiamo

apt-get install dspam libdspam7-drv-mysql dovecot-antispam

Nella creazione del DB MySql lasciate che se ne occupi tranquillamente dbconfig.

Integriamo dapprima Postfix. Aggiungete a /etc/postfix/master.cf le seguenti righe

dspam     unix  -       n       n       -       10      pipe
  flags=Rhqu user=vmail argv=/usr/bin/dspam --deliver=innocent,spam --user $recipient -i -f $sender -- $recipient

in /etc/postfix/main.cf le righe evidenziate

...
smtpd_client_restrictions =
	permit_mynetworks,
	permit_sasl_authenticated,
	reject_unknown_client_hostname,
	check_client_access mysql:/etc/postfix/mysql-virtual_client.cf,
	reject_rbl_client cbl.abuseat.org,
	reject_rbl_client b.barracudacentral.org,
	reject_rbl_client bl.spamcop.net,
	reject_rbl_client psbl.surriel.com,
	pcre:/etc/postfix/dspam_filter_access
...
#DSPAM
dspam_destination_recipient_limit = 1

Create il file /etc/postfix/dspam_filter_access con questo contenuto

/./   FILTER dspam:unix:/var/run/dspam/dspam.sock

Ora occupatevi del file /etc/dspam/dspam.conf

Home /var/spool/dspam
StorageDriver /usr/lib/i386-linux-gnu/dspam/libmysql_drv.so
TrustedDeliveryAgent "/usr/sbin/sendmail"
UntrustedDeliveryAgent "/usr/lib/dovecot/deliver -d %u"
OnFail error
Trust root
Trust dspam
Trust mail
Trust postfix
Trust vmail
Trust dovecot
Trust dovenull
TrainingMode teft
TestConditionalTraining on
Feature whitelist
Feature tb=5
Algorithm graham burton
Tokenizer osb
Pvalue bcr
WebStats on
Preference "trainingMode=TEFT"
Preference "spamAction=tag"
Preference "spamSubject=[SPAM]"
Preference "signatureLocation=headers"
Preference "statisticalSedation=5"
Preference "enableBNR=on"
Preference "enableWhitelist=on"
Preference "showFactors=off"
Preference "whitelistThreshold=20"
Preference "processorBias=on"
Preference "trainPristine=off"
PurgeSignatures 14
PurgeNeutral	90	# Tokens with neutralish probabilities
PurgeUnused	90	# Unused tokens
PurgeHapaxes	30	# Tokens with less than 5 hits (hapaxes)
PurgeHits1S	15	# Tokens with only 1 spam hit
PurgeHits1I	15	# Tokens with only 1 innocent hit
SystemLog	on
UserLog		on
Opt out
TrackSources spam nonspam
ProcessorURLContext on
ProcessorBias on
StripRcptDomain off
Debug *
DebugOpt process spam fp inoculation corpus
ParseToHeaders on
ChangeModeOnParse on
ChangeUserOnParse full
Broken case
ServerPID /var/run/dspam/dspam.pid
ServerDomainSocketPath "/var/run/dspam/dspam.sock"
ClientHost /var/run/dspam/dspam.sock
Include /etc/dspam/dspam.d/

Le istruzioni IgnoreHeader e AllowOverride sono stati inseriti in due file separati all’interno della cartella /etc/dspam/dspam.d/

Prima di passare al file /etc/dovecot/dovecot.conf creiamo due cartelle

mkdir -pv /etc/sieve/conf.d/before
mkdir -pv /etc/sieve/conf.d/after

Create il file /etc/sieve/conf.d/before/spam-folder.sieve con il seguente contenuto e fate in modo che sia di proprietà dell’utente:gruppo vmail e compilate per sieve

require ["regex", "fileinto", "imap4flags"];

# Catch mail tagged as Spam, except Spam retrained and delivered to the mailbox
if allof (header :regex "X-DSPAM-Result" "^(Spam|Virus|Bl[ao]cklisted)$",
          not header :contains "X-DSPAM-Reclassified" "Innocent") {

  # Mark as read
  setflag "\Seen";

  # Move into the Junk folder
  fileinto "Spam";

  # Stop processing here
  stop;
}
chown -R vmail:vmail /etc/sieve/*
sievec /etc/sieve/conf.d/before/

Adesso tocca a Dovecot. Ora tocca a /etc/dovecot/dovecot.conf

...
protocol imap {
  mail_plugins = quota imap_quota antispam
}
...
plugin {
  quota = dict:user::file:/var/vmail/%d/%n/.quotausage
  sieve=/var/vmail/%d/%n/.sieve
  sieve_extensions = +spamtest +spamtestplus +relational +comparator-i;ascii-numeric
  sieve_before = /etc/sieve/conf.d/before
  sieve_after = /etc/sieve/conf.d/after
  # Antispam (DSPAM)
  antispam_backend = dspam
  antispam_signature = X-DSPAM-Signature
  antispam_signature_missing = error
  antispam_trash = trash;Trash;Deleted Items;Deleted Messages
  antispam_spam = Spam;Junk;Indesiderata
  antispam_allow_append_to_spam = yes
  antispam_dspam_binary = /usr/bin/dspam
  antispam_dspam_args = --deliver=;--user;%u
  antispam_dspam_result_header = X-DSPAM-Result
  antispam_dspam_result_blacklist = Virus
  antispam_dspam_spam = --class=spam
  antispam_dspam_notspam = --class=innocent
  #antispam_debug_target = syslog
  #antispam_verbose_debug = 1
}

Correggiamo proprietari e permessi su alcuni file e directory

chgrp vmail /etc/dspam/dspam.conf
chgrp vmail /var/log/dspam
chmod g+w /var/log/dspam
chgrp vmail /etc/dspam/dspam.d/*
chgrp -R vmail /var/spool/dspam

And now: It’s show time! Riavviamo i servizi e controlliamo che tutto funzioni (modificate il file /etc/default/dspam cambiando START da ‘no’ a ‘yes’ per permettere al demone di avviarsi)

/etc/init.d/dovecot restart
/etc/init.d/postfix restart
/etc/init.d/dspam start

Da questo momento se vi dovesse arrivare dello spam in Posta in arrivo vi basterà spostarlo in Spam/Junk perché il sistema impari da voi. Di contro se per errore un messaggio pulito finisse in Spam/Junk spostatelo in Posta in arrivo.

ATTENZIONE: ho detto che il sistema imparerà da voi, perciò dategli tempo e state certi che non vi deluderà!!!

Total
1
Shares
Share 0
Tweet 0
Pin it 1
Related Topics
  • bash
  • debian
  • dovecot
  • dspam
  • postfix
  • setup
  • spam
Vincenzo Ingrosso

Sono un lavoratore in-dipendente. Non ho titoli di studio che possano testimoniare le mie conoscenze in ambito informatico, ma sono dietro una tastiera dal '95. La mia prima distribuzione linux è stata RedHat, per passare nel giro di tre mesi a Slackware con la quale ho convissuto per circa 13 anni. Ad un certo punto ho realizzato Sflack, vale a dire Slackware Linux a 64bit puri, senza quindi utilizzo di multi-lib. Successivamente per mancanza di tempo e per comodità sono passato a Debian. Oggi lavoro davanti ad un iMac, ho una famiglia e mi occupo di tutt'altro.

Articolo Precedente
  • Bash
  • Mac OSX

FlushDNS cache in Mac OSX

  • 7 Novembre 2013
  • Vincenzo Ingrosso
Visualizza Post
Articolo Successivo
  • Random Post

Slackware 14.1 is released!

  • 9 Novembre 2013
  • Vincenzo Ingrosso
Visualizza Post
You May Also Like
A fantasy dragon with golden scales and red eyes
Visualizza Post
  • Bash
  • Debian & Sysadmin
  • Server

Creare la tua prima macchina virtuale con Vagrant

  • Vincenzo Ingrosso
  • 4 Agosto 2023
Visualizza Post
  • Debian & Sysadmin
  • Random Post
  • Server

Introduzione a Vagrant e Terraform

  • Vincenzo Ingrosso
  • 4 Agosto 2023
wpscan kali wordpress
Visualizza Post
  • Bash
  • Debian & Sysadmin
  • Random Post
  • Raspberry

wpscan kali wordpress

  • Vincenzo Ingrosso
  • 4 Agosto 2023
Visualizza Post
  • Debian & Sysadmin
  • Random Post
  • Raspberry

kali su raspberry

  • Vincenzo Ingrosso
  • 3 Agosto 2023
Visualizza Post
  • Debian & Sysadmin
  • Raspberry
  • Server

kubernetes raspberry cluster

  • Vincenzo Ingrosso
  • 3 Agosto 2023
Visualizza Post
  • Bash
  • Debian & Sysadmin
  • Server

Initramfs: install sshd to remote access

  • Vincenzo Ingrosso
  • 17 Luglio 2017
Visualizza Post
  • Bash
  • Debian & Sysadmin
  • Server

OpenVPN: setup guide on Debian (routed and bridged VPN)

  • Vincenzo Ingrosso
  • 22 Luglio 2015
Visualizza Post
  • Bash
  • Debian & Sysadmin
  • Server

Debian: from Wheezy (7.0) to Jessie (8.0)

  • Vincenzo Ingrosso
  • 14 Luglio 2015
  • importanza del protocollo IP

    Il protocollo IP nell’interconnessione di dispositivi di rete

    Visualizza Post
  • Differenze tra ICMP, TCP, and UDP Protocols

    Differenze tra ICMP, TCP, and UDP Protocols

    Visualizza Post
  • Debian: importanza e futuro della distribuzione Linux

    Debian: importanza e futuro della distribuzione Linux

    Visualizza Post
  • differenza tra intelligenze artificiali

    Differenza tra intelligenze artificiali

    Visualizza Post
  • A fantasy dragon with golden scales and red eyes

    Creare la tua prima macchina virtuale con Vagrant

    Visualizza Post
Facebook Page
Instagram
TRENDING POSTS
  • importanza del protocollo IP
    Il protocollo IP nell’interconnessione di dispositivi di rete
    • 29 Agosto 2023
  • Differenze tra ICMP, TCP, and UDP Protocols
    Differenze tra ICMP, TCP, and UDP Protocols
    • 29 Agosto 2023
  • Debian: importanza e futuro della distribuzione Linux
    Debian: importanza e futuro della distribuzione Linux
    • 28 Agosto 2023
  • differenza tra intelligenze artificiali
    Differenza tra intelligenze artificiali
    • 7 Agosto 2023
  • A fantasy dragon with golden scales and red eyes
    Creare la tua prima macchina virtuale con Vagrant
    • 4 Agosto 2023
Legalese
Licenza Creative Commons

Questo Blog di Vincenzo Ingrosso è distribuito con Licenza Creative Commons Attribuzione - Non commerciale - Condividi allo stesso modo 4.0 Internazionale.
Debian
FOLLOW ME
Facebook 0 Likes
Instagram 0 Followers
Twitter 0 Followers

Let's keep in touch

Subscribe now to my newsletter

about
Vincenzo Ingrosso

About the site

Sono un lavoratore in-dipendente. Non ho titoli di studio che possano testimoniare le mie conoscenze in ambito informatico, ma sono dietro una tastiera dal '95. La mia prima distribuzione linux è stata RedHat, per passare nel giro di tre mesi a Slackware con la quale ho convissuto per circa 13 anni. Ad un certo punto ho realizzato Sflack, vale a dire Slackware Linux a 64bit puri, senza quindi utilizzo di multi-lib. Successivamente per mancanza di tempo e per comodità sono passato a Debian. Oggi lavoro davanti ad un iMac, ho una famiglia e mi occupo di tutt'altro.
Victoria’s Secret

Recent Posts
  • importanza del protocollo IP
    Il protocollo IP nell’interconnessione di dispositivi di rete
    • 29 Agosto 2023
  • Differenze tra ICMP, TCP, and UDP Protocols
    Differenze tra ICMP, TCP, and UDP Protocols
    • 29 Agosto 2023
  • Debian: importanza e futuro della distribuzione Linux
    Debian: importanza e futuro della distribuzione Linux
    • 28 Agosto 2023
Vincenzo Ingrosso Weblog
  • System Admin
  • Random Post
  • About me
  • Contact
... I follow my passion ...

Inserisci la chiave di ricerca e premi invio.