Baruwa Setup · 14 min read · Dec 25, 2025

Il Perfetto SpamSnake - Ubuntu Jeos 10.10 Maverick Meerkat - Pagina 3

8. Baruwa

Scarica il pacchetto deb personalizzato di baruwa:

cd /usr/src  
wget baruwa_1.0.1-2sn_all.deb Aggiornato 021811  
wget baruwa-doc_1.0.1-2_all.deb  
gdebi baruwa*.deb

Ti verrà chiesto di configurare il database di baruwa per il logging, inclusi un nome utente e una password di accesso, che saranno utilizzati dagli script di Baruwa. Ti verrà anche chiesto di configurare le informazioni dell’utente admin per il frontend di Baruwa.

vi /usr/share/pyshared/baruwa/settings.py

Cambia l’hosturl di Quarantine a tuo piacimento:

QUARANTINE_REPORT_HOSTURL = 'http://baruwa-alpha.local'
vi /opt/MailScanner/etc/MailScanner.conf

Devi assicurarti che le seguenti opzioni siano impostate:

Always Looked Up Last = &BaruwaSQL
Is Definitely Not Spam = &BaruwaWhitelist
Is Definitely Spam = &BaruwaBlacklist
Required SpamAssassin Score = &BaruwaLowScore
High SpamAssassin Score = &BaruwaHighScore 

Aggiornamento di Baruwa

*Nota: Questa sezione è solo per coloro che eseguono una versione precedente di Baruwa. Salta questo se stai eseguendo un’installazione fresca.

Scarica l’ultimo pacchetto deb di baruwa:

cd /usr/src  
wget baruwa_1.0.2-4sn_all.deb Aggiornato 052011  
wget baruwa-doc_1.0.2-4_all.deb  
gdebi baruwa*.deb

Quando ti verrà chiesto di configurare il database mysql, seleziona no. Riutilizzeremo il database e le impostazioni attuali.

Assicurati che /usr/share/pyshared/baruwa/settings.py sia configurato con le informazioni corrette del database prima di connetterti, altrimenti la tua connessione fallirà.

vi /usr/share/pyshared/baruwa/settings.py
DATABASE_ENGINE = 'mysql'           # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' o 'oracle'.
DATABASE_NAME = 'baruwa'             # O percorso al file del database se utilizzi sqlite3.
DATABASE_USER = 'baruwa'             # Non utilizzato con sqlite3.
DATABASE_PASSWORD = 'password'         # Non utilizzato con sqlite3.
DATABASE_HOST = ''             # Imposta a stringa vuota per localhost. Non utilizzato con sqlite3.
DATABASE_PORT = ''             # Imposta a stringa vuota per predefinito. Non utilizzato con sqlite3.

*Nota: A causa di alcuni conflitti minori durante l’aggiornamento, potrebbero essere necessari questi passaggi per aggiornare correttamente baruwa.

Se /opt/MailScanner è stato rimosso:

ln -s /opt/MailScanner-version /opt/MailScanner  
rm -r /etc/MailScanner  
ln -s /opt/MailScanner/etc /etc/MailScanner  
ln -s /opt/MailScanner/lib/MailScanner/CustomFunctions /etc/MailScanner

Assicurati di aggiornare la tua stringa di connessione al database in /etc/MailScanner/CustomFunctions/*.pm.

Infine, esegui

manage.py syncdb

Riavvia Uwsgi e Nginx

/etc/init.d/uwsgi-python2.6 restart && /etc/init.d/nginx restart

Baruwa dovrebbe essere aggiornato a 102-4sn.

Aggiornamento di Baruwa 102-4 a 111-3sn

Installa Rabbitmq-Server 2.2.0 e configura db/utente/password:

cd /usr/src  
wget http://ppa.launchpad.net/drizzle-developers/ppa/ubuntu/pool/main/r/rabbitmq-server/rabbitmq-server_2.2.0-1~maverick0_all.deb  
gdebi rabbit*

vi /etc/rabbitmq/rabbitmq.conf per legare a localhost:

export RABBITMQ_NODENAME=rabbit@localhost  
export RABBITMQ_NODE_IP_ADDRESS=127.0.0.1  
export ERL_EPMD_ADDRESS=127.0.0.1

Aggiungi le credenziali del database:

rabbitmqctl add_user baruwa password  
rabbitmqctl add_vhost baruwa  
rabbitmqctl set_permissions -p baruwa baruwa ".*" ".*" ".*"

Riavvia rabbitmq-server:

/etc/init.d/rabbitmq-server restart

Aggiungi fonti per Baruwa 1.1.1-3 e installa le dipendenze:

wget -O - http://apt.baruwa.org/baruwa-apt-keys.gpg | apt-key add -

vi /etc/apt/sources.list

#baruwa  
deb http://apt.baruwa.org/ubuntu maverick main

Installa le dipendenze:

apt-get update  
apt-get install python-django-celery python-importlib

*Nota: Il comando sopra dovrebbe installare tutte le dipendenze per Baruwa.

Scarica e installa Baruwa1.1.1-3sn:

mkdir /usr/src/baruwa1113 && cd /usr/src/baruwa1113  
wget https://docs.google.com/open?id=0B9cN15Q3pKnwY2YyMmMwOTQtNGJkMi00ZDc2LWFjMjMtY2UxMzFlYWY5Mzk2  
mv open* baruwa_1.1.1-3sn_all.deb  
wget https://docs.google.com/open?id=0B9cN15Q3pKnwODk2OGViYmMtMGZmYS00NmJjLTkwZWUtNTJjYTQ1YzAzOTg1  
mv open* baruwa-doc_1.1.1-3sn_all.deb  
gdebi baruwa_1.1.1-3sn_all.deb  
gdebi baruwa-doc_1.1.1-3sn_all.deb

*Nota: Installa la versione dei file del manutentore del pacchetto quando richiesto. Seleziona no per configurare mysql poiché stiamo aggiornando da una versione precedente.

Correggi il symlink per settings.py:

rm –r /usr/share/pyshared/baruwa/settings.py && ln –s /etc/baruwa/settings.py /usr/share/pyshared/baruwa/

vi /etc/baruwa/settings.py e correggi la configurazione del database di baruwa:

DATABASES = {
    'default': {
        # Aggiungi 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3'
        # o 'oracle'.
        'ENGINE': 'django.db.backends.mysql',
        # O percorso al file del database se utilizzi sqlite3.
        'NAME': 'baruwa',
        # Non utilizzato con sqlite3.
        'USER': 'baruwa',
        # Non utilizzato con sqlite3.
        'PASSWORD': 'password',
        # Imposta a stringa vuota per localhost. Non utilizzato con sqlite3.
        'HOST': '',
        # Imposta a stringa vuota per predefinito. Non utilizzato con sqlite3.
        'PORT': '',
    }
}

Aggiorna la struttura del database di Baruwa:

baruwa-admin syncdb --noinput

Esegui una migrazione fittizia per avviare un aggiornamento:

for name in $(echo "accounts messages lists reports status config"); do  
baruwa-admin migrate $name 0001 --fake;  
done

Esegui la migrazione normale:

for name in $(echo "accounts messages lists reports status fixups config"); do  
baruwa-admin migrate $name;  
done

vi /etc/MailScanner/MailScanner.conf cambia i seguenti:

Run As Group = celeryd  
Quarantine User = celeryd  
Quarantine Group = celeryd

vi /etc/MailScanner/conf.d/baruwa.conf:

Quarantine User = postfix #(O qualunque sia impostato il tuo `Run As User`)  
DB DSN = DBI:mysql:database=baruwa;host=localhost;port=3306 #imposta su DSN valido  
DB Username = baruwa # il tuo nome utente DB  
DB Password = password # la tua password DB

vi /etc/init.d/mailscanner e cambia le voci di gruppo da www-data a celeryd:

check_dir /var/spool/MailScanner ${user:-postfix} ${group:-celeryd}  
check_dir /var/lib/MailScanner ${user:-postfix} ${group:-celeryd}  
check_dir /var/run/MailScanner ${user:-postfix} ${group:-celeryd}  
check_dir /var/lock/subsys ${user:-root} ${group:-root} #Richiesto per creare la cartella  
check_dir /var/lock/subsys/MailScanner ${user:-postfix} ${group:-celeryd}  
start-stop-daemon --start --quiet --nicelevel $run_nice --chuid postfix:celeryd --exec $DAEMON --name $NAME -- $DAEMON_ARGS \

Aggiungi l’utente celeryd al gruppo clamav:

usermod -a -G celeryd clamav

Cambia la proprietà del gruppo della cartella di quarantena e del contenuto:

chgrp -R celeryd /var/spool/MailScanner/quarantine

Se intendi utilizzare le firme, inizializzala eseguendo:

baruwa-admin initconfig

Altrimenti, disabilita le opzioni in /etc/MailScanner/conf.d/baruwa.conf:

#Inline HTML Signature = htmlsigs.customize  
#Inline Text Signature = textsigs.customize  
#Signature Image Filename = sigimgfiles.customize  
#Signature Image ![](/files/f1a3d4ae-b9dd-4d8d-bef0-ce32003c43c2) Filename = sigimgs.customize

Riavvia il sistema e goditi Baruwa 111-3sn.

9. Nginx con Uwsgi

Scarica e installa sia Nginx che Uwsgi dal Launchpad di Chris Lea:

wget https://launchpad.net/~chris-lea/+archive/nginx-devel/+files/nginx_1.0.0-1chl1%7Emaverick1_$(uname -m | sed -e 's/x86_64/amd64/' -e 's/i686/i386/').deb  
wget https://launchpad.net/~chris-lea/+archive/uwsgi/+files/uwsgi-common_0.9.6.6-1chl1%7Emaverick1_$(uname -m | sed -e 's/x86_64/amd64/' -e 's/i686/i386/').deb  
wget https://launchpad.net/~chris-lea/+archive/uwsgi/+files/uwsgi-extra_0.9.6.6-1chl1%7Emaverick1_$(uname -m | sed -e 's/x86_64/amd64/' -e 's/i686/i386/').deb  
wget https://launchpad.net/~chris-lea/+archive/uwsgi/+files/uwsgi-python2.6_0.9.6.6-1chl1%7Emaverick1_$(uname -m | sed -e 's/x86_64/amd64/' -e 's/i686/i386/').deb  
wget https://launchpad.net/~chris-lea/+archive/uwsgi/+files/uwsgi_0.9.6.6-1chl1%7Emaverick1_all.deb  
apt-get install libsctp1  
dpkg -i nginx*  
dpkg -i uwsgi*

Usa i seguenti file di configurazione per uwsgi e nginx:

vi /etc/uwsgi/uwsgi-python2.6/baruwa.ini
[uwsgi]
   socket = /var/run/uwsgi/uwsgi-python2.6/baruwa/baruwa.sock
   pythonpath = /usr/share/pyshared/baruwa/
   master = true
   processes = 2
   env = DJANGO_SETTINGS_MODULE=baruwa.settings
   module = django.core.handlers.wsgi:WSGIHandler()
vi /etc/nginx/sites-available/baruwa.conf
   server {
      listen 80;
      server_name example.com;
      root /usr/share/pyshared/baruwa;
      #registro di accesso principale
      access_log  /var/log/nginx/access.log;
      #registro di errore principale
      error_log /var/log/nginx/error.log;
   location /static {
      root  /usr/share/pyshared/baruwa/static/;
      }
   # risorse statiche
   location ~* ^.+\.(html|jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js)$
      {
      expires 30d;
      break;
      }
   location / {
      uwsgi_pass unix:///var/run/uwsgi/uwsgi-python2.6/baruwa/baruwa.sock;
      include uwsgi_params;
      }
   }

*Nota: Assicurati di cambiare example.com in un FQDN che corrisponda alla tua configurazione.

Rimuovi l’host virtuale predefinito e copia uwsgi_params:

rm -r /etc/nginx/sites-enabled/default  
cp /usr/share/doc/uwsgi-extra/nginx/uwsgi_params /etc/nginx/uwsgi_params  
ln -s /etc/nginx/sites-available/baruwa.conf /etc/nginx/sites-enabled/baruwa.conf

Riavvia i servizi:

/etc/init.d/uwsgi-python2.6 restart && /etc/init.d/nginx restart

Dovresti essere a posto.

Imposta i lavori Cron

Crea un symlink a manage.py:

ln -s /usr/share/pyshared/baruwa/manage.py /usr/bin/manage.py  
chmod +x /usr/bin/manage.py

Aggiungi i lavori cron:

@daily  manage.py cleanquarantine &> /dev/null  #Pulisci la quarantena
@daily  manage.py sendquarantinereports &> /dev/null  #Invia rapporti di quarantena
@monthly manage.py  dbclean &> /dev/null  #Pulisci il maillog
@weekly  manage.py updatesarules &> /dev/null  #Aggiorna le regole di spamassassin
@daily  manage.py sendpdfreports &> /dev/null #Invia rapporti PDF

Avvia MailScanner:

/etc/init.d/mailscanner start

Punta il tuo browser a http://hostname_used accedi con l’utente admin e la password e inizia a lavorare. Ora puoi utilizzare l’interfaccia per aggiungere utenti e processare messaggi, ecc.

Istruzioni di configurazione per Baruwa

Accedi a Baruwa come admin –> Impostazioni –> Account –> Crea Account

Una volta creato l’account utente, riceverai due nuove schede su quella pagina, Impostazioni del profilo e Indirizzi associati.

Compila le Impostazioni del profilo scegliendo Admin di dominio e imposta un punteggio basso di 6 e un punteggio alto di 9 e controlla la scansione delle email.

Clicca sul segno + sotto Indirizzi associati e inserisci un dominio per il quale l’utente è l’amministratore, ad esempio. domain.com. domain.com apparirà sotto Indirizzi associati.

Clicca su domain.com e verrai portato nelle Informazioni sul dominio, dove potrai configurare le informazioni di consegna SMTP. Procedi ad aggiungere il server smtp di ricezione, o l’ip del server smtp di ricezione. Seleziona abilita e se utilizzi una porta non standard, impostala, altrimenti usa 25. Una volta fatto, puoi cliccare sul pulsante di test accanto alla matita, per vedere se il tuo server di ricezione accetterà la connessione.

Ora, puoi disconnetterti come admin e accedere come l’utente che hai appena configurato e le email dovrebbero iniziare a fluire.

Le impostazioni relay_recipients, relay_domains e transports in /etc/postfix/main.cf utilizzeranno le voci che hai fornito in Baruwa. Pertanto, non è necessario alcun file hash.
Le query associate nei file cf mysql estrarranno il risultato nel formato corretto e lo forniranno a postfix per l’uso.

Tuttavia, se desideri utilizzare un hash per uno dei tuoi file di configurazione, utilizza il seguente come esempio di come configurare /etc/postfix/main.cf:

relay_recipient_maps = hash:/etc/postfix/relay_recipients

Naturalmente, dovresti creare il file hash, popolarlo e postmap per l’uso di postfix.

*Nota: Se finisci per utilizzare hash per relay_recipients per domini specifici, dovrai rimuovere quel dominio da /etc/postfix/access. Tutti gli altri utenti di dominio possono ancora essere verificati utilizzando look_ahead

Inoltre, se hai bisogno di eseguire ricerche mx, dovrai modificare la query in /etc/postfix/mysql-transports.cf per apparire come:

concat('smtp:', mail_hosts.address, ':', port) 'transport'

I [ e ] sono stati rimossi per consentire le ricerche MX.

Goditi Baruwa!

10. Installa e configura SPF

Il pacchetto postfix-policyd-spf-perl dipende dai moduli Perl Mail::SPF e NetAddr::IP.

Dobbiamo scaricare postfix-policyd-spf-perl da http://www.openspf.org/Software nella directory /usr/src/ e installarlo nella directory /usr/lib/postfix/ in questo modo:

cd /usr/src  
wget http://www.openspf.org/blobs/postfix-policyd-spf-perl-2.007.tar.gz  
tar xvfz postfix-policyd-spf-perl-2.007.tar.gz  
cd postfix-policyd-spf-perl-2.007  
cp postfix-policyd-spf-perl /usr/lib/postfix/policyd-spf-perl

Poi modifichiamo /etc/postfix/master.cf e aggiungiamo il seguente stanzone alla fine:

vi /etc/postfix/master.cf
policy unix - n n - - spawn
  user=nobody argv=/usr/bin/perl /usr/lib/postfix/policyd-spf-perl

(Le spaziature iniziali prima di user=nobody sono importanti affinché Postfix sappia che questa riga appartiene alla precedente!)

*Nota: Abbiamo già aggiunto l’entry per main.cf utilizzando lo script di configurazione di postfix.

Poi riavvia Postfix:

/etc/init.d/postfix restart

Ecco fatto.

11. Installa e configura FuzzyOcr

FuzzyOCR ha alcune dipendenze come ocrad e gocr che possiamo installare in questo modo:

apt-get install fuzzyocr netpbm gifsicle libungif-bin gocr ocrad libstring-approx-perl libmldbm-sync-perl libdigest-md5-perl libdbd-mysql-perl imagemagick tesseract-ocr  
wget http://users.own-hero.net/~decoder/fuzzyocr/fuzzyocr-3.6.0.tar.gz  
tar xvfz fuzzyocr-3.6.0.tar.gz  
cd FuzzyOcr-3.6.0/

Quindi FuzzyOCR è ora installato, ora dobbiamo configurarlo. Il file di configurazione di FuzzyOCR è /etc/spamassassin/FuzzyOcr.cf. In quel file quasi tutto è commentato. Apriamo ora quel file e apportiamo alcune modifiche:

vi /etc/spamassassin/FuzzyOcr.cf

Decommenta le seguenti righe:

focr_global_wordlist /etc/spamassassin/FuzzyOcr.words
focr_preprocessor_file /etc/spamassassin/FuzzyOcr.preps
focr_scanset_file /etc/spamassassin/FuzzyOcr.scansets<
focr_enable_image_hashing 3
focr_digest_db /etc/spamassassin/FuzzyOcr.hashdb
focr_db_hash /etc/spamassassin/FuzzyOcr.db
focr_db_safe /etc/spamassassin/FuzzyOcr.safe.db
focr_bin_helper convert, tesseract

Commenta il percorso:

#focr_path_bin /usr/local/netpbm/bin:/usr/local/bin:/usr/bin

Conserveremo gli hash delle immagini in un database mysql per migliorare le prestazioni in modo che le immagini che abbiamo già scansionato non vengano scansionate di nuovo poiché l’OCR è un’attività che richiede molte risorse.

Crea il database MySQL:

Lo script sql crea il database per fuzzyocr:

mysql -p <  FuzzyOcr.mysql

Concedi privilegi:

mysql –u root –p  
GRANT ALL ON FuzzyOcr.* TO fuzzyocr@localhost IDENTIFIED BY ‘password’;

Aggiorna FuzzyOcr.cf

vi /etc/spamassassin/FuzzyOcr.cf

Abilita le seguenti righe:

focr_mysql_db FuzzyOcr  
focr_mysql_hash Hash  
focr_mysql_safe Safe  
focr_mysql_user fuzzyocr  
focr_mysql_pass fuzzyocr  
focr_mysql_host localhost  
focr_mysql_port 3306  
focr_mysql_socket /var/run/mysqld/mysqld.sock

*Nota: Assicurati di cambiare le righe in rosso.

Imposta il pulitore del database FuzzyOcr

vi /usr/sbin/fuzzy-cleanmysql
#!/usr/bin/perl
#Script per pulire le tabelle mysql dei dati. Il valore predefinito è lasciare i dati in Safe per 1 giorno e Hash per 10 giorni.
#Fuzzyocr-cleanmysql
use Getopt::Long;
use DBI;
use MLDBM qw(DB_File Storable);
my %Files = (
    db_hash => '/var/lib/fuzzyocr/FuzzyOcr.db',
    db_safe => '/var/lib/fuzzyocr/FuzzyOcr.safe.db',
    );
use DBI;
$database = "FuzzyOcr";
$hostname = "localhost";
$socket = "/var/run/mysqld/mysqld.sock";
$port = "3306";
$username = "fuzzyocr";
$password = 'password';
# valori predefiniti
my $cfgfile = "/etc/spamassassin/FuzzyOcr.cf";
my %App;
my %age;
$age{'age'} = 10*24;  # 10 giorni
$age{'hash'} = $age{'age'};
$age{'safe'} = 0;
my $help = 0;
my $verbose = 0;
GetOptions( \%age,
    'age=i',
    'config=s' => \$cfgfile,
    'hash=i',
    'help' => \$help,
    'safe=i',
    'verbose' => \$verbose,
);
if ($help) {
    print "Uso: fuzzy-cleanmysql [Opzioni]\n";
    print "\n";
    print "Opzioni disponibili:\n";
    print "--age=i      Età globale in ore da mantenere nel db\n";
    print "--config=s   Specifica la posizione di FuzzyOcr.cf\n";
    print "             Predefinito: /etc/spamassassin/FuzzyOcr.cf\n";
    print "--hash=i     Numero di ore vecchie da mantenere nel db Hash\n";
    print "--safe=i     Numero di ore vecchie da mantenere nel db Safe\n";
    print "--verbose    Mostra più informazioni\n";
    print "\n";
    exit 1;
}
# Converti ore in secondi
$age{'age'} *= 60 * 60;
$age{'hash'} *= 60 * 60;
$age{'safe'} *= 60 * 60;
$age{'safe'} = $age{'safe'} ? $age{'safe'} : $age{'age'};
# Leggi percorsi personalizzati da FuzzyOcr.cf
my $app_path = q(/usr/local/netpbm/bin:/usr/local/bin:/usr/bin);
open CONFIG, "< $cfgfile" or warn "Impossibile leggere il file di configurazione, utilizzo i valori predefiniti...\n";
while () {
    chomp;
    if ($_ =~ m/^focr_bin_(\w+) (.+)/) {
        $App{$1} = $2;
        printf "Trovato percorso personalizzato \"$2\" per l'applicazione \"$1\"\n" if $verbose;
    }
    if ($_ =~ m/^focr_path_bin (.+)/) {
        $app_path = $1;
        printf "Trovato nuovo percorso: \"$1\"\n" if $verbose;
    }
    if ($_ =~ m/^focr_enable_image_hashing (\d)/) {
        $App{hashing_type} = $1;
        printf "Trovato Hashing DB\n" if ($verbose and $1 == 2);
        printf "Trovato Hashing MySQL\n" if ($verbose and $1 == 3);
    }
    if ($_ =~ m/^focr_mysql_(\w+) (.+)/) {
        $MySQL{$1} = $2;
        printf "Trovata opzione MySQL $1 => '$2'\n" if $verbose;
    }
    if ($_ =~ m/^focr_threshold_max_hash (.+)/) {
        $App{max_hash} = $1;
        printf "Aggiornato Thresold{max_hash} = $1\n" if $verbose;
    }
}
close CONFIG;
# assicurati di avere questa soglia impostata
$App{max_hash} = 5 unless defined $App{max_hash};
# cerca il percorso per bin_util a meno che non sia già specificato nel file di configurazione
foreach my $app (@bin_utils) {
    next if defined $App{$app};
    foreach my $d (split(':',$app_path)) {
        if (-x "$d/$app") {
            $App{$app} = "$d/$app";
            last;
        }
    }
}
sub get_ddb {
    my %dopts = ( AutoCommit => 1 );
    my $dsn = "DBI:mysql:database=$database";
    if (defined $socket) {
        $dsn .= ";mysql_socket=$socket";
    } else {
        $dsn .= ";host=$hostname";
        $dns .= ";port=$port" unless $port == 3306;
    }
    printf "Connessione a: $dsn\n" if $verbose;
    return DBI->connect($dsn, $username, $password,\%dopts) or die("Impossibile connettersi!");
}
if ($App{hashing_type} == 3) {
 my $ddb = get_ddb();
  if ($ddb) {
    my $sql;
    foreach my $ff (sort keys %Files) {
      $ff =~ s/db_//;
      $sqlbase = "FROM $MySQL{$ff} WHERE $MySQL{$ff}.\`check\` < ?";
      my $timestamp = time;
      $timestamp = $timestamp - $age{$ff};
      $sql = "DELETE $sqlbase";
      if ( $verbose ) {
        printf "Elimina dalla Tabella $MySQL{$ff}\n";
        print "$sql,  $timestamp\n";
        print "Il timestamp è ", scalar(localtime($timestamp)), "\n";
        print "Sono $age{$ff} secondi prima di adesso.\n";
        print "\n";
      }
      $ddb->do($sql,undef,$timestamp);
    }
    $ddb->disconnect;
  }
}
chmod +x /usr/sbin/fuzzy-cleanmysql

Aggiungilo a cron

crontab -e
@weekly /usr/sbin/fuzzy-cleanmysql &> /dev/null  #Pulitore DB FuzzyOcr

Ecco fatto per la configurazione di FuzzyOCR. Ora vediamo se funziona come previsto.

Possiamo alimentare ciascuna di queste email a SpamAssassin ora per vedere se FuzzyOCR è collegato correttamente a SpamAssassin.

spamassassin --debug FuzzyOcr < /usr/src/FuzzyOcr-3.6.0/samples/ocr-gif.eml > /dev/null

Dovresti ora vedere un sacco di output, la fine dovrebbe apparire così:

[...]  
[10025] dbg: FuzzyOcr:  
[10025] dbg: FuzzyOcr: Venerdì 4 agosto, 16:01 ET  
[10025] dbg: FuzzyOcr: LAS VEGAS, NEVADA--(MARKET WIRE)--4 agosto 2006 -- auantum Energy, lnc. (OTC  
[10025] dbg: FuzzyOcr: BB:aEGY.oB-_-  
[10025] dbg: FuzzyOcr: auantum Energy, lnc. è lieta di annunciare di aver presentato domanda per avere le proprie azioni quotate per  
[10025] dbg: FuzzyOcr: negoziazione sulla Borsa di Francoforte. L'azienda ha mantenuto i servizi di Baltic  
[10025] dbg: FuzzyOcr: Investment Group di Amburgo, Germania, per assistere con la domanda.  
[10025] dbg: FuzzyOcr:  
[10025] dbg: FuzzyOcr: _ qEGY,OB "

12. Filtraggio di PDF, XLS e spam di phishing con ClamAV (Firme Sanesecurity)

Attualmente c’è molto spam in cui le “informazioni” spam sono allegate come file .pdf o .xls, a volte anche nascoste all’interno di un file .zip. Anche se queste email spam non sono facili da catturare con ad esempio SpamAssassin o un filtro Bayes, il virus scanner ClamAV può catturarle facilmente quando viene alimentato con le firme corrette poiché ClamAV è progettato per scansionare gli allegati delle email.

Crea una cartella per sanesecurity e scarica e dai allo script i permessi appropriati.

apt-get install curl rsync
mkdir /usr/src/sanesecurity && cd /usr/src/sanesecurity
wget http://www.inetmsg.com/pub/clamav-unofficial-sigs.tar.gz
tar -zxf clamav-unofficial-sigs.tar.gz && cd clamav-unofficial-sigs-3.7.1
mv clamav-unofficial-sigs.sh /usr/sbin
mv clamav-unofficial-sigs.conf /etc/
chmod +x /usr/sbin/clamav-unofficial-sigs.sh

vi clamav-unofficial-sigs.conf

e cambia le seguenti variabili per adattarle alla tua installazione:

clam_dbs="/var/lib/clamav"

La variabile clamav_dbs contiene il percorso alla directory in cui sono memorizzate le tue firme ClamAV.

Percorso a clamd.pid:

clamd_pid="/var/run/clamav/clamd.pid"

Ricarica dopo l’aggiornamento:

reload_dbs="yes"
reload_opt="kill -USR2 `cat $clamd_pid`" #Segnala PID per ricaricare i db

Directory di lavoro:

work_dir="/var/lib/clamav"

E una volta completata la configurazione, imposta il seguente valore su yes:

user_configuration_complete="yes" 

Ora eseguiamo lo script di aggiornamento per controllare se il download funziona:

clamav-unofficial-sigs.sh

Aggiungilo a cron:

00 04 * * * /usr/sbin/clamav-unofficial-sigs.sh -c /etc/clamav-unofficial-sigs.conf &> /dev/null 

Si prega di modificare /etc/clamav-unofficial-sigs.conf e commentare la sezione del database MalwarePortal. Ci sono stati molti falsi positivi quando si utilizzano le sue definizioni.

13. Greylisting con Greyfix

Greyfix è un piccolo demone di greylisting che funziona estremamente bene ed è leggero in termini di risorse.

Installa:

cd /usr/src && wget http://www.kim-minh.com/pub/greyfix/greyfix-0.3.9.tar.gz  
tar -xf greyfix-0.3.9.tar.gz && cd greyfix-0.3.9  
./configure --localstatedir=/var  
make  
make install
vi /etc/postfix/master.cf

e aggiungi il seguente:

greyfix    unix  -        n       n       -        -       spawn
   user=nobody  argv=/usr/local/sbin/greyfix   --greylist-delay 60  -/ 24

Abbiamo già aggiunto l’entry per main.cf utilizzando lo script di configurazione di postfix.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.