Server di Posta · 3 min read · Oct 05, 2025

Soluzione Completa per Server di Posta con Domini e Utenti Virtuali (Debian Etch, Postfix, Mysql, Dovecot, DSpam, ClamAV, Postgrey, RBL) - Pagina 6

V. Server di Consegna della Posta

Il server di consegna della posta è il server che controlla lo SPAM utilizzando un algoritmo bayesiano tramite un servizio noto come DSPAM. DSPAM è incredibilmente capace e viene fornito con una buona quantità di documentazione riguardo le sue varie configurazioni. La nostra configurazione particolare è piuttosto semplice. MX-1 e MX-2 consegnano la posta a postman.internal.example.com tramite LMTP. LMTP è il Protocollo di Trasferimento della Posta Locale, puoi trovare alcune informazioni di base qui. DSPAM riceve la posta, controlla contro i propri algoritmi e passa la posta a ClamAV per la rilevazione di virus. Supponendo che tutto vada bene, la posta viene quindi data a Dovecot per la consegna finale.

Esamineremo le sezioni una alla volta. Quindi, facciamo partire le cose su postman.internal.example.com.

A. Impostazioni NFS

Poiché Dovecot consegnerà la nostra posta per noi, vogliamo mappare la directory vmail sul server di consegna della posta.

Procedi e crea l’utente e la directory vmail in questo modo:

# useradd -r -u 150 -g mail -d /var/vmail -s /sbin/nologin -c "Cassetta Postale Virtuale" vmail  
# mkdir /var/vmail  
# chmod 770 /var/vmail/  
# chown vmail:mail /var/vmail/

Ora dobbiamo installare gli strumenti client NFS:

# apt-get install nfs-common portmap

La directory deve quindi essere montata sulla condivisione NFS. Per fare un semplice test, esegui il seguente comando:

# mount files-1.internal.example.com:/vmail /vmail

Ora dovresti avere accesso alla condivisione /vmail da files-1. Prova a scrivere un file:

# cd /vmail  
# touch tmp

Dovrebbe funzionare bene questa volta (postman ha accesso in lettura e scrittura al montaggio NFS… i server MX avevano solo accesso in lettura).

Assumendo che tutto funzioni, procedi a smontare l’NFS:

# cd /  
umount /vmail

E poi rendi il montaggio permanente inserendo quanto segue nel tuo /etc/fstab:

[...]  
files-1.internal.example.com:/vmail /vmail nfs rw,rsize=4096,wsize=4096,hard,intr,tcp,noatime,nodev,async 0 0

Procedi a montare il file system un’ultima volta:

# mount /vmail

… e sei a posto!

B. Installa DSPAM

Ancora una volta, debian rende tutto ridicolmente semplice:

# apt-get install dspam dspam-doc libdspam7-drv-mysql

Ti verrà chiesto se vuoi configurare il database per libdspam7-drv-mysql con dbconfig-common, scegli ‘No’. Onestamente, se vuoi usare dbconfig, non c’è nulla che ti fermi, ma per il bene della documentazione, spiegherò le impostazioni.

C. Configura il Database MySQL

Dovrai impostare alcune tabelle nel database MySQL, quindi accedi a sql-1.internal.example.com e avvia il client mysql come root:

# mysql -u root -p

Poi procedi a creare il nuovo database DSPAM e l’utente:

MYSQL> CREATE DATABASE dspam_db;  
MYSQL> GRANT ALL PRIVILEGES ON dspam_db.* TO 'dspam_user'@'postman.internal.example.com' IDENTIFIED BY 'dspam_user_password';

NOTA: Cambia la dspam_user_password con una password sicura!

D. Configura DSPAM per MySQL

Ora che MySQL ha un database DSPAM e un Account Utente, possiamo procedere a importare le tabelle dal driver MySQL di DSPAM. Queste sono memorizzate in /usr/share/doc/libdspam7-drv-mysql sul server di consegna della posta (postman.internal.example.com). Ci sono due versioni diverse degli schemi, una costruita per la velocità, l’altra per risparmiare spazio su disco rigido. Useremo quella per la velocità, ma puoi scegliere quella che preferisci. Ricorda, leggi la documentazione, è per questo che è lì!

Installa lo schema principale:

# mysql -u dspam_user -h sql-1.internal.example.com -p dspam_db < /usr/share/doc/libdspam7-drv-mysql/mysql_objects-speed.sql

Se ricevi errori di autorizzazione, torna al server mysql e controlla per assicurarti di aver creato correttamente l’utente.

Assumendo che tutto sia andato bene, vogliamo anche inserire le tabelle per gli utenti virtuali:

# mysql -u dspam_user -h sql-1.internal.example.com -p dspam_db < /usr/share/doc/libdspam7-drv-mysql/virtual_users.sql

Ora, dobbiamo solo dire a DSPAM come comunicare con il nostro DB MySQL. Questo viene fatto tramite il file /etc/dspam/dspam.d/mysql.conf. Modificalo di conseguenza:

[...]  
MySQLServer sql-1.internal.example.com  
MySQLPort 3306  
MySQLUser dspam_user  
MySQLPass dspam_user_password  
MysqLDb dspam_db  
[...]  
MySQLVirtualTable dspam_virtual_uids  
MySQLVirtualUIDField uid  
MySQLVirtualUsernameField username  
[...]  

Ora DSPAM memorizzerà tutte le sue informazioni all’interno del DB MySQL.

NOTA: Questa è una configurazione temporanea, solo perché non avevamo finito l’installazione dell’utente virtuale DSPAM prima di scrivere questa guida. Idealmente, vorresti che DSPAM guardasse la stessa tabella degli utenti virtuali di Postfix per ottenere tutte le informazioni sui token memorizzate correttamente. Aggiornerò la guida non appena completeremo quel cambiamento.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.