Servidor de Email · 3 min read · Oct 05, 2025

Solução Completa de Servidor de Email com Domínios e Usuários Virtuais (Debian Etch, Postfix, Mysql, Dovecot, DSpam, ClamAV, Postgrey, RBL) - Página 6

V. Servidor de Entrega de Email

O servidor de entrega de email é o servidor que verifica SPAM usando um algoritmo bayesiano através de um serviço conhecido como DSPAM. DSPAM é incrivelmente capaz e vem com uma boa quantidade de documentação sobre suas várias configurações. Nossa configuração particular é bastante simples. MX-1 e MX-2 entregam email para postman.internal.example.com via LMTP. LMTP é o Protocolo de Transferência de Email Local, você pode encontrar algumas informações básicas aqui. DSPAM recebe o email, verifica contra seus próprios algoritmos e passa o email para o ClamAV para detecção de vírus. Supondo que tudo esteja bem, o email é então entregue ao Dovecot para entrega final.

Vamos passar pelas seções uma a uma. Então, vamos fazer as coisas funcionarem em postman.internal.example.com.

A. Configurações de NFS

Como o Dovecot estará entregando nosso email, vamos querer mapear o diretório vmail no servidor de entrega de email.

Vá em frente e crie o usuário e diretório vmail assim:

# useradd -r -u 150 -g mail -d /var/vmail -s /sbin/nologin -c "Caixa de Correio Virtual" vmail  
# mkdir /var/vmail  
# chmod 770 /var/vmail/  
# chown vmail:mail /var/vmail/

Agora precisamos instalar as ferramentas do cliente NFS:

# apt-get install nfs-common portmap

O diretório então precisa ser montado na partilha NFS. Para fazer um teste simples, execute o seguinte:

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

Você agora deve ter acesso à partilha /vmail de files-1. Tente escrever um arquivo:

# cd /vmail  
# touch tmp

Deve funcionar bem desta vez (postman tem acesso de leitura e gravação à montagem NFS… os servidores MX apenas tinham acesso de leitura).

Supondo que tudo esteja funcionando, vá em frente e desmonte o NFS:

# cd /  
umount /vmail

E então torne a montagem permanente colocando o seguinte em seu /etc/fstab:

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

Vá em frente e monte o sistema de arquivos mais uma vez:

# mount /vmail

… e você está pronto para começar!

B. Instalar DSPAM

Mais uma vez, o debian torna isso ridiculamente simples:

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

Você será perguntado se deseja configurar o banco de dados para libdspam7-drv-mysql com dbconfig-common, escolha ‘Não’. Honestamente, se você quiser usar dbconfig, nada o impede, mas para fins de documentação, vou detalhar as configurações.

C. Configurar o Banco de Dados MySQL

Você precisará configurar algumas tabelas no banco de dados MySQL, então faça login em sql-1.internal.example.com e inicie o cliente mysql como root:

# mysql -u root -p

Então vá em frente e crie o novo banco de dados e usuário DSPAM:

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: Altere a dspam_user_password para uma senha segura!

D. Configurar DSPAM para MySQL

Agora que o MySQL tem um banco de dados e uma Conta de Usuário DSPAM, podemos importar as tabelas do driver MySQL do DSPAM. Estas estão armazenadas em /usr/share/doc/libdspam7-drv-mysql no servidor de entrega de email (postman.internal.example.com). Existem duas versões diferentes dos esquemas, uma construída para velocidade, a outra para economizar espaço em disco rígido. Usaremos a versão para velocidade, mas você pode escolher a que quiser. Lembre-se, leia a documentação, é para isso que ela existe!

Instale o esquema principal:

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

Se você receber erros de permissão, volte ao servidor mysql e verifique se você criou o usuário corretamente.

Supondo que tudo tenha corrido bem, também vamos querer inserir as tabelas para usuários virtuais:

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

Agora, só precisamos dizer ao DSPAM como se comunicar com nosso banco de dados MySQL. Isso é feito através do arquivo /etc/dspam/dspam.d/mysql.conf. Edite-o conforme necessário:

[...]  
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  
[...]  

Agora o DSPAM armazenará todas as suas informações dentro do banco de dados MySQL.

NOTA: Esta é uma configuração temporária, apenas porque não havíamos terminado a instalação do usuário virtual do DSPAM antes de escrever este guia. Idealmente, você gostaria que o DSPAM olhasse para a mesma tabela de usuários virtuais que o Postfix para que todas as informações de token fossem armazenadas corretamente. Atualizarei o guia assim que completarmos essa mudança.

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.