Server Email · 5 min read · Nov 13, 2025

Filtro Spam Postfix utilizzando Ubuntu Dapper, MailScanner, SpamAssassin, Razor, Pyzor, DCC e ClamAV

Introduzione

Questa è una versione simile del HOWTO che può essere trovata qui: http://www200.pair.com/mecham/spam/spamfilter20050628.html. Se stai guardando questo howto si presume che tu abbia un certo livello di esperienza con server email, DNS, TCP/IP, firewall e Linux in generale.

1 Configurazione del Server Ubuntu

Si prega di consultare la documentazione già online per dettagli sulla configurazione di un server Ubuntu. HowToForge ha un paio di HowTo che sono molto dettagliati. Tuttavia, ci sono un paio di configurazioni di installazione delineate qui che dovrebbero essere prese in considerazione quando si configura il server che potrebbero differire da altri howto.

NOTA: Ubuntu è installato come sistema setuid per impostazione predefinita. Ciò significa che l'account root è disabilitato e devi eseguire tutto con un 'sudo' davanti per eseguirlo come root. Il modo per aggirare questo è eseguire 'sudo su -' e non dovrai più digitare 'sudo' davanti al comando perché sei in una sessione bash come root. Per il resto di questo documento si presume che tu abbia fatto questo e stia eseguendo una sessione bash come root, quindi non verranno forniti comandi sudo. La morale della storia è che, quando accedi a Ubuntu tramite SSH o console, ricorda di eseguire 'sudo su -' prima di iniziare a modificare file di sistema, spostare/fare directory o installare/disinstallare software e servizi.

1.1 Partizioni

Partizionare il disco in questo modo non è un requisito, ma impedirà al tuo server di esaurire completamente lo spazio se qualcosa va storto nella directory /var. Inoltre, partizionare il disco in questo modo ti permetterà di creare alcuni grafici extra con MailScannerMRTG che possono guardare /var, /var/log e /var/spool separatamente. MailScannerMRTG non controllerà lo spazio su disco nelle directory, può solo calcolare la dimensione per partizioni.

Esempio della mia tabella delle partizioni:
/boot       50MB        Partizione di Avvio     EXT3 (PRIMARIA)
Swap        2GB     Partizione di Swap (La dimensione dipende dalla tua memoria, il doppio della tua memoria dovrebbe andare bene) (PRIMARIA)
/       2GB     Partizione Root     EXT3 (LOGICA)
/var        1GB     Partizione Dati Variabili   EXT3 (LOGICA)
/var/log    3GB     Partizione Dati Variabili   EXT3 (LOGICA)
/var/spool  2GB     Partizione Dati Variabili Spool EXT3 (LOGICA)
/usr        4GB     Programmi installati dall'utente        EXT3 (LOGICA)
/usr/local  2GB     Programmi installati dall'utente        EXT3 (LOGICA)
/home       ANY     Directory Home (Buon posto per mettere qualsiasi spazio extra, puoi ripartizionare se esaurisci lo spazio e usarlo.)    EXT3 (LOGICA)

1.2 Verifica delle Impostazioni di Rete

Dobbiamo assicurarci che il sistema sia configurato con un IP statico valido, i server DNS corretti siano in /etc/resolv.conf e il tuo server sia identificato nel file /etc/hosts.

vi /etc/network/interfaces

Il file delle Interfacce di Rete dovrebbe apparire più o meno così:

auto lo eth0
iface lo inet loopback
# L'interfaccia di rete principale
iface eth0 inet static
        address  192.168.1.100
        netmask  255.255.255.0
        network  192.168.1.0
        broadcast 192.168.1.255
        gateway  192.168.1.1

Riavvia il servizio di rete per rendere effettive queste modifiche:

/etc/init.d/networking restart

Modifica il file resolv.conf per aggiungere i server DNS:

vi /etc/resolv.conf

Assicurati che il tuo nome di dominio sia in cima al resolv.conf, dovrebbe apparire più o meno così:

search example.com
nameserver 192.168.0.1
nameserver 192.168.0.2
vi /etc/hosts

La parte superiore del file dovrebbe apparire più o meno così:

127.0.0.1 localhost.localdomain localhost
192.168.0.100 sfp.example.com sfp

Poiché siamo qui, potresti anche aggiungere qualsiasi altro host che vorresti che il nostro filtro spam conoscesse. Aggiungi qui eventuali server di posta interni. Basta aggiungere eventuali altre voci in fondo alla lista.

1.3 APT e Altri Ritocchi

Apt deve essere configurato per cercare nei repository universe e multiverse. Fai un backup del tuo attuale /etc/apt/sources.list:

cp /etc/apt/sources.list /etc/apt/sources.list.default

Sostituiscilo con il seguente file sources.list:

vi /etc/apt/sources.list
deb http://us.archive.ubuntu.com/ubuntu dapper main restricted
deb-src http://us.archive.ubuntu.com/ubuntu dapper main restricted
deb http://us.archive.ubuntu.com/ubuntu dapper-updates main restricted
deb-src http://us.archive.ubuntu.com/ubuntu dapper-updates main restricted
deb http://us.archive.ubuntu.com/ubuntu dapper universe multiverse
deb-src http://us.archive.ubuntu.com/ubuntu dapper universe multiverse
deb http://security.ubuntu.com/ubuntu dapper-security main restricted
deb-src http://security.ubuntu.com/ubuntu dapper-security main restricted
deb http://security.ubuntu.com/ubuntu dapper-security universe multiverse
deb-src http://security.ubuntu.com/ubuntu dapper-security universe multiverse

Dobbiamo aggiornare/rinfrescare la cache di apt e installare alcuni software. Per aggiornare la cache esegui:

apt-get update

Nota: Questo è un buon momento per cambiare l’immagine del kernel con quella corretta, molto probabilmente avrai bisogno del ‘linux-image-i686’. Se non sai cosa significa, cercalo. Esegui un apt-get upgrade e prenditi un momento per risolvere eventuali errori o problemi che potresti avere. Vogliamo eliminare qualsiasi cosa che potrebbe causare problemi in futuro. Ricorda di riavviare una volta che tutto è pronto e esegui un rapido dmesg | less, può fare molta strada.

apt-get install ssh

Una volta installato ssh, dovresti connetterti al server tramite ssh utilizzando PuTTY dal tuo desktop linux o windows. Questo renderebbe più facile completare il resto di questo howto perché sarai in grado di copiare/incollare nel terminale dal desktop. Quindi vai avanti, ssh a questo server.

Di solito imposto semplicemente l’orologio del BIOS sull’ora locale e poi eseguo quanto segue per sincronizzare l’orologio.

apt-get install ntpdate  

hwclock --systohc

Ora installiamo la maggior parte delle cose di cui avremo bisogno. Ho diviso l’elenco in 4 esecuzioni di installazione APT. 5-15 installazioni alla volta sembrano prudenti, a te la scelta:

apt-get install libc6-dev dpkg-dev db4.3-util libdb4.3-dev vim lynx bzip2 unzip perl-doc libwww-perl ntp-simple  
  
apt-get install zlib1g-dev zip libdbi-perl libconvert-binhex-perl gcc make autoconf automake libtool libmail-spf-query-perl rblcheck libnet-ident-perl  
  
apt-get install flex bison libcompress-zlib-perl pax libberkeleydb-perl ncftp unzoo arj lzop nomarch arc zoo  
  
apt-get install postfix postfix-pcre postfix-mysql postfix-ldap cabextract lha unrar razor pyzor spamassassin

Seleziona NO CONFIGURATION quando Debconf per Postfix appare.

Installa unarj:

wget http://archive.ubuntu.com/ubuntu/pool/universe/a/arj/unarj_3.10.21-2_all.deb  
  
dpkg -i unarj_3.10.21-2_all.deb

Ora dobbiamo anche rimuovere alcuni programmi, speriamo che tu non abbia bisogno del supporto PCMCIA o della stampante. Questo server non avrà bisogno nemmeno del supporto dial-up. Non avrai necessariamente tutti questi programmi installati.

Disinstalla il seguente software (tutto in una riga):

apt-get remove ipchains lpr nfs-common portmap pidentd pcmcia-cs pcmciautils pppoe pppoeconf ppp pppconfig uw-imapd qpopper mailagent

1.6 Pulizia dei servizi

Al alcuni servizi potrebbero ancora persistere anche dopo aver disinstallato i demoni. Prima dobbiamo fare un backup di inet.d:

cp -R /etc/init.d /etc/init.d.backup

Ora possiamo fermare tutti i servizi che potrebbero essere in esecuzione e di cui non abbiamo bisogno:

/etc/init.d/lpd stop  
update-rc.d -f lpd remove  
  
/etc/init.d/nfs-common stop  
update-rc.d -f nfs-common remove  
  
/etc/init.d/portmap stop  
update-rc.d -f portmap remove  
  
/etc/init.d/pcmcia stop  
update-rc.d -f pcmcia remove  
  
/etc/init.d/pcmciautils stop  
update-rc.d -f pcmciautils remove  
  
/etc/init.d/ppp stop  
update-rc.d -f ppp remove  
  
/etc/init.d/exim4 stop  
update-rc.d -f exim4 remove  
  
update-rc.d -f ntpdate remove

Disabilita tutti i servizi che abbiamo fermato:

update-inetd --disable time  
  
update-inetd --disable daytime  
  
update-inetd --disable echo  
  
update-inetd --disable chargen  
  
update-inetd --disable ident  
  
update-inetd --disable discard

L’ultimo potrebbe chiederti una domanda riguardo a “voci multiple”, rispondi sì (y).

Controlla che abbiamo ottenuto tutto:

lsof -i | grep LISTEN

L’unico demone che dovresti vedere a questo punto è *:ssh. Potresti dover eseguire di nuovo questo:

update-inetd --disable discard

Se ci sono altri programmi mostrati, prova a riavviare e testare di nuovo.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.