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/interfacesIl 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.1Riavvia il servizio di rete per rendere effettive queste modifiche:
/etc/init.d/networking restartModifica il file resolv.conf per aggiungere i server DNS:
vi /etc/resolv.confAssicurati 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.2vi /etc/hostsLa parte superiore del file dovrebbe apparire più o meno così:
127.0.0.1 localhost.localdomain localhost
192.168.0.100 sfp.example.com sfpPoiché 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.defaultSostituiscilo con il seguente file sources.list:
vi /etc/apt/sources.listdeb 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 multiverseDobbiamo aggiornare/rinfrescare la cache di apt e installare alcuni software. Per aggiornare la cache esegui:
apt-get updateNota: 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 sshUna 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 --systohcOra 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 spamassassinSeleziona 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.debOra 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 mailagent1.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.backupOra 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 removeDisabilita 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 discardL’ultimo potrebbe chiederti una domanda riguardo a “voci multiple”, rispondi sì (y).
Controlla che abbiamo ottenuto tutto:
lsof -i | grep LISTENL’unico demone che dovresti vedere a questo punto è *:ssh. Potresti dover eseguire di nuovo questo:
update-inetd --disable discardSe ci sono altri programmi mostrati, prova a riavviare e testare di nuovo.
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.