In questo post ho trattato principalmente la configurazione di Postfix, accennando solo marginalmente agli altri software che concorrono alla realizzazione del nostro antispam.
Tra i suddetti software il ruolo principale è sicuramente svolto da Amavisd-new, il quale non fa altro che “coordinare” l’operato del demone antispam vero e proprio (Spamassassin) e dell’antivirus (ClamAV).
A grandi linee, l’operato del suddetto applicativo si può riassumere in quanto segue:
1) Postfix prende in pancia l’email appena ricevuta, la analizza e controlla che sia lecita utilizzando i filtri che abbiamo precedentemente creato;
2) Successivamente, se l’email ha superato tutti i suddetti controlli, viene girata ad Amavisd-new, il quale procede dapprima con la scansione antivirus (sfruttando ClamAV) e successivamente, grazie a Spamassassin, assegna alla stessa un determinato ranking (Hits). Tutte le email recanti un valore di Hits superiore ad una certa soglia verranno marcate come spam (tramite l’aggiunta del campo X-Spam-Flag impostato a yes) all’interno dell’header dell’email (aggiungendo in modo automatico la flag ***SPAM*** all’oggetto dei messaggi di posta incriminati). In questo modo, Exchange 2010 (dopo aver configurato il Receive Connector in modo opportuno), sarà in grado di segnalarle come spam e di spostarle automaticamente nella directory Posta Indesiderata.
Installazione e configurazione di Amavisd-new
Per installare il pacchetto precompilato appositamente per la nostra distribuzione è necessario su yum i repository rpmforge ed rpmforge-extras:
[root@antispam ~]# yum --enablerepo=rpmforge,rpmforge-extras
A questo punto andiamo di yum install:
[root@antispam ~]# yum install amavisd-new
Ad installazione avvenuta facciamo in modo che tale demone sia attivo anche dopo un eventuale riavvio della macchina:
[root@antispam ~]# chkconfig --levels 2345 amavisd on
Passiamo, adesso, alla configurazione del demone in questione. Il file che dovremo editare è /etc/amavisd/amavisd.conf, in cui bisogna apportare le seguenti modifiche:
1) Non effettuare alcun tipo di controllo sulle email provenienti dalla LAN:
$policy_bank{'MYNETS'} = { # mail originating from @mynetworks originating => 1, # is true in MYNETS by default, but let's make it explicit os_fingerprint_method => undef, # don't query p0f for internal clients bypass_spam_checks_maps => [1], # don't spam-check internal mail bypass_banned_checks_maps => [1], # don't banned-check internal mail bypass_header_checks_maps => [1], # don't header-check internal mail};
2) Definire i domini interni e le subnet della mia LAN:
@local_domains_maps = ( [".$mydomain", ".vostrodominio.com"] ); $@mynetworks = qw( 127.0.0.1 192.168.1.0/24);
3) Configurare il pathame corretto relativo al pid di ClamAV:
\&ask_daemon, ["CONTSCAN {}\n", "/var/run/clamav/clamd.sock"],
4) Impostare i parametri di funzionamento relativi a Spamassassin (identificati dal preambolo sa_):
$sa_tag_level_deflt = -999; # add spam info headers if at, or above that level $sa_tag2_level_deflt = 6.2; # add 'spam detected' headers at that level $sa_kill_level_deflt = 6.9; # triggers spam evasive actions (e.g. blocks mail) $sa_dsn_cutoff_level = 10;
In particolare, con $sa_tag_level_deflt = -999; sto facendo in modo che Spamassassin aggiunga sempre a comunque (quindi anche alle email lecite) il campo X-Spam-Flag nell’header delle email, impostandolo a yes in caso di spam ed a no in caso di ham.
5) Infine, imposto il comportamento di default in caso di email contenenti virus o spam:
$final_virus_destiny = D_DISCARD; $final_banned_destiny = D_BOUNCE; $final_spam_destiny = D_PASS; $final_bad_header_destiny = D_BOUNCE;
Ovviamente consento comunque il passaggio dello spam, in quanto sarà Exchange a gettarlo direttamente tra la posta indesiderata.
Installazione di Spamassassin
Installiamo ora Spamassassin mediante il comando:
[root@antispam ~]# yum install spamassassin
Rendiamo automatico il suo avvio in fase di bootstrap del SO:
[root@antispam ~]# chkconfig --levels 2345 spamassassin on
Ed avviamolo:
[root@antispam ~]# service spamassassin start
Installazione di ClamAV
Anche l’installazione di ClamAV può essere eseguita mediante yum:
[root@antispam ~]# yum install clamav
Come al solito, rendiamo automatico l’avvio del demone in questione:
[root@antispam ~]# chkconfig --levels 2345 clamd on
modifichiamo il gruppo amavis aggiungendo l’utente clam:
[root@antispam ~]# usermod -a -G amavis clam
ed eseguiamolo:
[root@antispam ~]# service clamd start
Ovviamente un software antivirus non aggiornato è totalmente inutile. A tal proposito ecco uno qualche riga di codice bash che ci permetterà di automatizzare il download delle firme aggiornate (effettuando anche una scansione dell’intero sistema):
#!/bin/bash SCAN_DIR="/" LOG_FILE="/var/log/clamav/manual_scan.log" /usr/bin/freshclam /usr/bin/clamscan -i -r $SCAN_DIR >> $LOG_FILE exit 0
Salviamolo col nome di manual_scan e rendiamolo eseguibile:
[root@antispam ~]# chmod +x manual_scan
Successivamente scheduliamo la sua esecuzione mediante /etc/crontab:
15 03 * * * root /root/script/manual_scan
A questo punto, sarà possibile avviare anche Amavisd-new:
[root@antispam ~]# service amavisd start
verificando che sia effettivamente in ascolto sulla porta di default, ovvero la 10024:
[root@antispam ~]# telnet localhost 10024
Ultime configurazioni per Postfix
Il nostro sistema antispam è quasi pronto, occorre semplicemente apportare alcune modifiche sul file di configurazione principale di Postfix (main.cf) e sul file che regola il funzionamento del processo principale di tale demone, ovvero master.cf.
All’interno di main.cf è sufficiente decommentare la seguente direttiva:
content_filter = smtp-amavis:[127.0.0.1]:10024
Mentre, all’interno di master.cf è necessario inserire le seguenti direttive:
smtp-amavis unix - - - - 2 smtp -o smtp_data_done_timeout=1200 -o smtp_send_xforward_command=yes -o disable_dns_lookups=yes -o max_use=20
127.0.0.1:10025 inet n - - - - smtpd -o content_filter= -o local_recipient_maps= -o relay_recipient_maps= -o smtpd_restriction_classes= -o smtpd_delay_reject=no -o smtpd_client_restrictions=permit_mynetworks,reject -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_data_restrictions=reject_unauth_pipelining -o smtpd_end_of_data_restrictions= -o mynetworks=127.0.0.0/8 -o smtpd_error_sleep_time=0 -o smtpd_soft_error_limit=1001 -o smtpd_hard_error_limit=1000 -o smtpd_client_connection_count_limit=0 -o smtpd_client_connection_rate_limit=0 -o receive_override_options=no_header_body_checks,no_unknown_recipient_checks
Infine ricarichiamo la configurazione di Postfix:
[root@antispam ~]# service clamd start
ed abbiamo finito.
Nella terza parte parlerò della configurazione di Exchange 2010 per l’invio automatico dello spam nella cartella Posta Indesiderata.
Alla prossima.