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 portmapO 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 /vmailVocê agora deve ter acesso à partilha /vmail de files-1. Tente escrever um arquivo:
# cd /vmail
# touch tmpDeve 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 /vmailE 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 0Vá 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-mysqlVocê 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 -pEntã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.sqlSe 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.sqlAgora, 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.
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.