Criando um servidor de emails com Postfix e Dovecot

Este é um guia passo a passo para instalar e configurar um servidor de e-mails básico no Ubuntu usando Postfix e Dovecot. Este é um processo bastante técnico, então é importante ter algum conhecimento em administração de sistemas Linux.

Pré-requisitos

  • VPS com Ubuntu instalado.
  • Acesso root ou um usuário com privilégios sudo.
  • Um nome de domínio apontando para o seu servidor.

Passo a Passo

1. Atualize o Sistema

Atualize os pacotes do seu sistema para as últimas versões disponíveis:

sudo apt update
sudo apt upgrade

2. Instale o Postfix

Postfix é um servidor de e-mail amplamente utilizado. Instale-o com:

sudo apt install postfix

Durante a instalação, você será solicitado a escolher um tipo de configuração. Selecione "Internet Site" e pressione Enter. Em seguida, forneça o nome do seu domínio quando solicitado.

3. Configure o Postfix

Edite o arquivo de configuração principal do Postfix:

sudo nano /etc/postfix/main.cf

Configure os seguintes parâmetros (substitua your_domain.com pelo seu domínio real):

myhostname = mail.your_domain.com
mydomain = your_domain.com
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mynetworks_style = host

Salve e feche o arquivo. Em seguida, reinicie o Postfix:

sudo systemctl restart postfix

4. Instale o Dovecot

Dovecot é um servidor IMAP e POP3. Instale-o com:

sudo apt install dovecot-core dovecot-imapd

5. Configure o Dovecot

Edite o arquivo de configuração do Dovecot:

sudo nano /etc/dovecot/dovecot.conf

Adicione ou certifique-se de que estas linhas estão presentes:

listen = *

6. Configure Mailboxes

Edite o arquivo de configuração de caixa de correio:

sudo nano /etc/dovecot/conf.d/10-mail.conf

Encontre e descomente ou altere a seguinte linha:

mail_location = maildir:~/Maildir

7. Habilitar SSL/TLS (Opcional, mas Recomendado)

Se você tem um certificado SSL/TLS, configure-o no Dovecot e no Postfix para segurança.

8. Reinicie o Dovecot

sudo systemctl restart dovecot

9. Teste a Configuração

Teste se os serviços estão funcionando corretamente. Você pode fazer isso usando ferramentas de linha de comando como telnet ou configurando uma conta de e-mail em um cliente de e-mail com seu servidor.

10. Configure DNS e MX Records

No seu provedor de DNS, configure um registro MX para apontar para mail.your_domain.com e crie um registro A para mail.your_domain.com apontando para o IP do seu servidor.

Notas Importantes

  • Certifique-se de que as portas necessárias (25, 143, etc.) estejam abertas no firewall do seu servidor.
  • Esta configuração é básica e pode precisar de ajustes adicionais, especialmente para segurança e anti-spam.
  • Gerenciar um servidor de e-mail pode ser complexo, especialmente em relação à manutenção e à conformidade com padrões modernos de e-mail, como SPF, DKIM e DMARC.

Se você não se sentir confortável com essas etapas, pode ser melhor considerar usar um serviço de e-mail profissional ou buscar ajuda de um administrador de sistemas experiente.


Se o seu provedor de VPS não permite o uso da porta 25, que é a porta padrão para o protocolo SMTP, você tem algumas alternativas. No entanto, é importante notar que a maioria dos provedores de e-mail espera que o tráfego SMTP chegue pela porta 25, e usar portas alternativas pode afetar a entrega do seu e-mail.

Aqui estão algumas opções para contornar essa restrição:

1. Usar Portas Alternativas para SMTP

Algumas portas alternativas comuns para SMTP são:

  • Porta 587: Esta é a porta recomendada para envio de e-mails (submission) por clientes de e-mail. É frequentemente utilizada com STARTTLS.
  • Porta 465: Usada para SMTP seguro (SMTPS). Embora originalmente designada para este propósito, seu uso não é tão comum como a porta 587.

Para configurar o Postfix para usar uma dessas portas, siga estes passos:

  1. Editar Configuração do Postfix: Abra o arquivo de configuração principal do Postfix:

    sudo nano /etc/postfix/master.cf
    
  2. Habilitar a Porta 587 ou 465: Descomente a linha começando com submission (para a porta 587) ou smtps (para a porta 465) removendo o # no início da linha. Certifique-se também de descomentar as linhas relacionadas abaixo dela, que definem as configurações para a porta.

  3. Reinicie o Postfix: Após fazer as alterações, salve o arquivo e reinicie o Postfix:

    sudo systemctl restart postfix
    

2. Verifique a Política do Provedor de VPS

  • Alguns provedores bloqueiam a porta 25 para prevenir abusos, especialmente em contas novas ou em planos de baixo custo. Verifique com seu provedor se existe a possibilidade de desbloquear a porta 25 após algum tempo ou mediante a comprovação de uso legítimo.

3. Utilizar um Serviço de Relay de E-mail

  • Se não for possível usar a porta 25 e as alternativas não forem viáveis, você pode considerar usar um serviço de relay de e-mail. Estes serviços permitem que você envie e-mails através dos servidores deles, que então lidam com a entrega para os destinatários finais. Alguns exemplos incluem SendGrid, Mailgun e Amazon SES.

4. Consultar a Documentação

  • Consulte a documentação do seu provedor de VPS e do software que você está usando (Postfix, Dovecot, etc.) para obter orientações específicas e melhores práticas.

Lembre-se de que usar portas não padrão para o SMTP pode afetar a entrega dos seus e-mails, pois alguns servidores podem rejeitar conexões que não venham pela porta 25. Além disso, a configuração de um servidor de e-mail pode ser complexa e requer manutenção e monitoramento constantes para garantir a segurança e a eficácia.

Passo a Passo para Implementar o SpamAssassin

1. Instale o SpamAssassin

Primeiro, instale o SpamAssassin no seu servidor:

sudo apt-get update
sudo apt-get install spamassassin spamc

2. Ative o SpamAssassin

Por padrão, o SpamAssassin não é ativado. Para ativá-lo, edite o arquivo de configuração principal:

sudo nano /etc/default/spamassassin

Altere a linha ENABLED=0 para ENABLED=1.

3. Configure o SpamAssassin

O arquivo de configuração principal do SpamAssassin é /etc/spamassassin/local.cf. Você pode editar este arquivo para personalizar as regras e preferências. Por exemplo:

sudo nano /etc/spamassassin/local.cf

Você pode adicionar linhas como:

rewrite_header Subject *****SPAM*****
required_score 5.0
report_safe 0
use_bayes 1
bayes_auto_learn 1

Estas configurações marcam e-mails detectados como spam, ajustam a pontuação necessária para marcar um e-mail como spam, e ativam o aprendizado Bayesiano.

4. Integre com o Postfix

Para que o Postfix utilize o SpamAssassin, você precisará integrá-los. Uma maneira comum de fazer isso é através do Amavis, que é uma interface entre o MTA (Postfix) e os programas de filtragem de conteúdo como o SpamAssassin.

Instale o Amavis, ClamAV (antivírus), e suas dependências:

sudo apt-get install amavisd-new clamav clamav-daemon zoo unzip bzip2 arj nomarch lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl clamav-docs daemon libio-string-perl libio-socket-ssl-perl libnet-ident-perl zip libnet-dns-perl postgrey

Após a instalação, o Amavis será automaticamente integrado com o Postfix.

5. Configure o Amavis

Verifique se o Amavis está configurado para utilizar o SpamAssassin. Normalmente, isso é feito automaticamente, mas você pode verificar o arquivo de configuração:

sudo nano /etc/amavis/conf.d/20-debian_defaults

Confirme que as linhas referentes ao SpamAssassin estão descomentadas.

6. Reinicie os Serviços

Após fazer as alterações, reinicie o SpamAssassin, o Amavis e o Postfix:

sudo systemctl restart spamassassin
sudo systemctl restart amavis
sudo systemctl restart postfix

7. Teste a Configuração

Você deve testar o sistema para garantir que o spam está sendo filtrado corretamente. Uma maneira de fazer isso é enviar um e-mail de teste com o conteúdo que normalmente seria marcado como spam.

Considerações Adicionais

  • Manutenção Regular: O SpamAssassin precisa de atualizações regulares para se manter eficaz.
  • Desempenho e Sobrecarga: A filtragem de spam pode ser intensiva em recursos, então monitore o desempenho do servidor.
  • Afinamento de Regras: Dependendo do fluxo de e-mails, você pode precisar ajustar as configurações do SpamAssassin para minimizar falsos positivos e falsos negativos.
  • Segurança Adicional: Considere implementar outras medidas de segurança, como SPF, DKIM e DMARC, para melhorar a segurança do e-mail.
Existem várias soluções prontas que instalam, configuram e fazem a manutenção de tudo isso automaticamente de forma muito mais fácil. Algumas: https://github.com/modoboa/modoboa (Python. É a que uso atualmente) https://github.com/mail-in-a-box/mailinabox (Python. Usei antes do modoboa) https://github.com/Mailu/Mailu (Python) https://github.com/mailcow/mailcow-dockerized (PHP, Docker) https://github.com/docker-mailserver/docker-mailserver (Shell, Docker) Tem uma lista com outras opções aqui: https://github.com/awesome-selfhosted/awesome-selfhosted#communication---email---complete-solutions