1 gennaio 2022 Roberto Puzzanghera 2 commenti
SpamAssassin is a mature, widely-deployed open source project that serves as a mail filter to identify Spam. SpamAssassin uses a variety of mechanisms including header and text analysis, Bayesian filtering, DNS blocklists, and collaborative filtering databases. SpamAssassin runs on a server, and filters spam before it reaches your mailbox.
spamassassin
alla versione 4.0.xHo scritto come aggiornare alla version 4.0 in una pagina separata qui.
Creare l'utente e il gruppo spamd
, preparare le cartelle:
mkdir -p /etc/mail/spamassassin /home/spamd groupadd spamd useradd -g spamd -d /home/spamd spamd chown -R spamd:spamd /home/spamd
Installare spamassassin
via Cpan
perl -MCPAN -e shell o conf prerequisites_policy ask install Mail::SpamAssassin quit
Questi moduli mancano e devono essere installati con CPAN. Alcuni di essi hanno a loro volta delle dipendenze...
Alla fine questi sono i moduli che ho installato, nel seguente ordine (rispondere yes se vengono trovate delle dipendenze, installare il tutto in questo ordine)
perl -MCPAN -e shell o conf prerequisites_policy ask force notest install Socket6 IO::Socket IO::Socket::INET6 LWP install MD5 CPAN::DistnameInfo Mail::DKIM
Installare i prerequisiti di Net::DNS:
force notest install Test::More MIME::Base64 Digest::MD5 Digest::HMAC_MD5 Net::IP
Continuare installando (sempre da CPAN):
force notest install Net::Ping Net::DNS Time::HiRes Digest::SHA1 Getopt::Long Digest::Nilsimsa URI::Escape HTML::Parser HTTP::Date IO::Zlib Archive::Tar Mail::SPF force notest install Mail::SPF::Query Net::Ident IO::Socket::SSL Mail::DomainKeys Mail::DKIM LWP::UserAgent HTTP::Date Encode::Detect BSD::Resource force notest install Storable DB_File Net::SMTP IP::Country::Fast BerkeleyDB force notest install Geo::IP IO::Socket::IP Net::Patricia force notest install Mail::DMARC::PurePerl DBD::SQLite
Infine, se tutto è ok installare i moduli spamassassin
e Razor2
da CPAN
force notest install Mail::SpamAssassin Mail::SpamAssassin::Plugin::Razor2
Ho dovuto dare un "force" all'installzione.. comunque funziona.
Abbiamo installato il pacchetto perl Razor2
che vedremo nella pagina successiva.
I file di configurazione sono in /etc/mail/spamassassin
# cd /etc/mail/spamassassin # ls init.pre local.cf v310.pre v312.pre v320.pre v330.pre v341.pre v342.pre v343.pre v400.pre
# Add *****SPAM***** to the Subject header of spam e-mails # rewrite_header Subject *****SPAM***** # put here your subnet trusted_networks 10.0.0. # Set the threshold at which a message is considered spam (default: 5.0) required_score 5.0 use_bayes 1 bayes_auto_learn 1 use_txrep 1 txrep_factory Mail::SpamAssassin::SQLBasedAddrList
# RelayCountry - add metadata for Bayes learning, marking the countries # a message was relayed through # # Note: This requires the IP::Country::Fast Perl module # loadplugin Mail::SpamAssassin::Plugin::RelayCountry # URIDNSBL - look up URLs found in the message against several DNS # blocklists. # loadplugin Mail::SpamAssassin::Plugin::URIDNSBL # Hashcash - perform hashcash verification. # loadplugin Mail::SpamAssassin::Plugin::Hashcash # SPF - perform SPF verification. # loadplugin Mail::SpamAssassin::Plugin::SPF
Abilitare tutti i nuovi plugin disponibili con la versione 4 di SA
loadplugin Mail::SpamAssassin::Plugin::ExtractText loadplugin Mail::SpamAssassin::Plugin::DecodeShortURLs loadplugin Mail::SpamAssassin::Plugin::DMARC
sa-update
aggiorna le regole (richiede gpg 1.4). Prima di avviare spamassassin per la prima volta è necessario scaricare le regole:
sa-update
Aggiungere poi al crontab questa riga per aggiornare le regole quotidianamente
# spamassassin update 30 3 * * * /usr/loacl/bin/sa-update --nogpg -v &
L'ozione -v
produrrà un avviso email nella casella postmaster.
Lanciare questo test di debug dalla linea di comando. Se non si ottengono errori tutto è pronto per lanciare il daemone.
sudo -u spamd -H spamassassin -D --lint
A questo punto non chiudere spamd
with ctrl+C
, perchè il prossimo test fatto con spamc
avrà bisogno di connettersi a questo servizio.
Da un altro terminale, controllare che l'intestazione sia correttamente inserita:
echo -e "From: myself@mymailserver.net\nTo:myfriend@domain.net\nSubject: test\n\n" | spamc Received: from localhost by qmail.mymailserver.net with SpamAssassin (version 3.3.1); Tue, 30 Nov 2010 23:18:37 +0100 From: myself@mymailserver.net To: myfriend@domain.net Subject: test X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-04-18) on qmail.mymailserver.net X-Spam-Flag: YES X-Spam-Level: ***** X-Spam-Status: Yes, score=5.4 required=5.0 tests=BAYES_99,FREEMAIL_FROM, MISSING_DATE,MISSING_MID,NO_RECEIVED,NO_RELAYS,TVD_SPACE_RATIO, T_TO_NO_BRKTS_FREEMAIL autolearn=no version=3.3.1
Scaricare lo startup script:
cd /usr/local/bin wget https://notes.sagredo.eu/files/qmail/spamdctl chmod +x spamdctl
E' necessario sostituire l'IP del firewall (l'IP del server come visto dalla rete Internet) e controllare che il path dove è stato installato spamd
coincida con quello indicato nello script seguente.
#!/bin/bash # Spamd init script # # August, 2th 2003 # Martin Ostlund, nomicon # Modified slightly by Troy Belding for Qmailrocks - February 23, 2004 # # Modified by Roberto Puzzanghera - September 02, 2014 # November 17, 2020: moved log file to /var/log/spamassassin/spamd.log # The IP of your server as seen from the internet IP=<firewall-IP> DAEMON=/usr/local/bin/spamd NAME=spamd SNAME=spamdctl DESC="SpamAssassin Mail Filter Daemon" PIDFILE="/var/run/$NAME.pid" PNAME="spamd" DOPTIONS="-x -u spamd -A 127.0.0.1,::1,${IP} -s /var/log/spamassassin/spamd.log -H /home/spamd -d --pidfile=$PIDFILE" KILL="/bin/kill" KILLALL="/bin/killall" # Defaults - don''t touch, edit /etc/mail/spamassassin/local.cf ENABLED=0 OPTIONS="" set -e case "$1" in start) echo -n "Starting $DESC: " $DAEMON $OPTIONS $DOPTIONS echo "$NAME." ;; stop) echo -n "Stopping $DESC: " $KILL -9 `cat $PIDFILE` /bin/rm $PIDFILE echo "$NAME." ;; restart|force-reload) echo -n "Restarting $DESC: " $0 stop $0 start echo "$NAME." ;; *) ME=/usr/local/bin/$SNAME echo "Usage: $ME {start|stop|restart|force-reload}" >&2 exit 1 ;; esac exit 0
Controlliamo che spamd
sia in esecuzione:
# spamdctl start # ps axfu|grep spamd root 1859 0.1 3.4 139360 61044 ? Ss 19:00 0:01 /usr/bin/spamd -x -u spamd -A 127.0.0.1,[firewall-IP] -H /home/spamd -d --pidfile=/var/run/spamd.pid spamd 1860 0.0 3.2 139360 58984 ? S 19:00 0:00 \_ spamd child spamd 1861 0.0 3.2 139360 58984 ? S 19:00 0:00 \_ spamd child
Digitare spamd -c
per vedere come deve essere usato spamd
. Vedere anche http://spamassassin.apache.org/full/3.4.x/doc/spamd.html
Per far sì che spamassassin
sia avviato al boot inserire lo startup script nel proprio rc.local
:
/usr/local/bin/spamdctl start &
Creare un file /etc/logrotate.d/spamd
come questo (slackware) per ruotare i log di spamd:
cat > /etc/logrotate.d/spamassassin/spamd /var/log/spamassassin/razor-agent.log << __EOF__ /var/log/spamd.log { su root apache rotate 5 daily missingok notifempty delaycompress postrotate [ -f '/var/run/spamd.pid' ] && (kill -HUP `cat /var/run/spamd.pid`) || exit 0 endscript } __EOF__
RBL and Bordermailer
20 marzo 2023 09:31
RBL and Bordermailer
20 marzo 2023 09:13
RBL and Bordermailer
18 marzo 2023 15:52
Bug in dknewkey
18 marzo 2023 11:35
What is qq_internal_bug_?
18 marzo 2023 11:28
What is qq_internal_bug_?
18 marzo 2023 11:08
What is qq_internal_bug_?
18 marzo 2023 08:48
What is qq_internal_bug_?
18 marzo 2023 08:08
What is qq_internal_bug_?
18 marzo 2023 07:43
What is qq_internal_bug_?
18 marzo 2023 04:37
Tags
apache clamav dkim dovecot ezmlm fail2ban ftp guide hacks lamp letsencrypt linux linux-vserver lxc mariadb mediawiki mozilla mysql openboard owncloud patches php proftpd qmail qmail to postfix qmail-spp qmailadmin rbl roundcube rsync sieve simscan slackware solr spamassassin spf ssh ssl tcprules tex ucspi-tcp vpopmail vqadmin
Commenti
Chiarimento configurazione
Webmaster 19 marzo 2021 07:54
Buongirono Roberto,
un chiarimento sulla configurazione di SA, all'inizio della pagina scrivi "Abilitare tutti i nuovi plugin dal file /etc/mail/spamassassin/v343.pre."
Nella lista dei files da modificare fai riferimento a v310.pre.
Grazie dell'attenzione
Gabriele
Rispondi | Permalink
Chiarimento configurazione
Roberto Puzzanghera Webmaster 19 marzo 2021 08:47
Ciao Gabriele,
in effetti quella frase su v343.pre è fuorviante (ora la levo). Come sai in questi file ci sono i plugin aggiunti nella rispettiva versione. Io cito solo v310.pre perchè contiene spamcop, razor, pyzor, che menziono esplicitamente nella guida. Negli altri file ci sono plugin addizionali che ognuno può decidere o meno di mettere dentro.
Rispondi | Permalink