Banir IPs agressores no servidor de email Maddy

>

Segue um texto bem técnico sobre servidor de email Linux.

Já tem um ano que passei a auto-hospedar meu servidor de email, em um VPS (Servidor Virtual Privado), usando o Maddy. Só tenho elogios. Descobri recentemente que o programa até bane sozinho os ataques automatizados de bots que costumam infernizar a vida de admins.

Para quem está abandonando serviços bigtech e se vira na linha de comando Linux, um VPS é muito melhor do que hospedagem compartilhada. É mais rápido, mais customizável, mais seguro (se bem implementado), mais expansivo (dá para instalar sua própria VPN, por exemplo) e até mais barato, nos planos mais simples (a Hostinger é uma que tem planos econômicos). Mas exige mais tempo para configuração e ajustes, no início.

Para servidor de email de uso pessoal, o Maddy é ótimo (mas não é recomendado se houver milhares de contas de email, por enquanto). Esse software combina em um único arquivo binário, e um de configuração, todo o servidor.

O que atrapalha são os outros; nesse caso, os serviços de email bigtech. Entre quem mantém servidor pessoal de email, há constante reclamação de que o Gmail ou Outlook não entregam seus emails, ou os classificam como spam. Passei um pouco por isso, mas no começo só.

Além das etapas de configuração descritas no site do Maddy, algo importante para que outros servidores não rejeitem as mensagens é apontar o registro de rDNS para o servidor de email, o que geralmente pode ser feito via painel de controle da empresa de VPS.

Sites como o MXtoolbox também ajudam bastante no diagnóstico do servidor. Para enviar para Hotmail ou Outlook, pode ser útil se cadastrar no programa antispam da Microsoft.

Depois de configurar tudo conforme a cartilha, não tive mais nenhum problema de entrega de email. Mas ouvi dizer que volumes grandes de mensagens (por exemplo o de uma newsletter com dezenas de milhares de assinantes) continuam sendo barrados ou filtrados pelas bigtechs.

Ataques de bots

Uma coisa que sempre me incomodou é a enorme quantidade de bots tentando se logar com ataques de dicionário no servidor.

Aquele meme que diz que a internet morreu, não havendo mais pessoas na rede, só robôs, tem um bom fundo de verdade. Basta colocar um servidor aberto na web e constatar: a maioria absoluta do tráfego muitas vezes não é de gente, mas de scrapers, spiders e bots de invasão.

O fail2ban estava ajudando bastante a mitigar isso. Mas, nos últimos meses, houve um aumento no número de ataques. E não estava adiantando bloquear o IP de cada ataque, como o fail2ban faz automaticamente, pois cada agressão vem de um novo IP — geralmente alguma máquina Windows infectada por aí, em que a pessoa nem percebe que seu PC se juntou a um exército de robôs zumbis para envio de spam ou ataques.

Então descobri que a melhor solução já estava bem ali no Maddy mesmo. O software vem com o recurso de barrar logo de cara os IPs de redes de bots que constam em blocklists públicas.

Basta colocar, por exemplo:

check {
  dnsbl {
     reject_threshold 1
     all.s5h.net
     b.barracudacentral.org
  }
}

dentro na seção submission, smtp ou msgpipeline do arquivo de configuração maddy.conf. Os endereços acima são de listas do tipo DNSBL que reúnem IPs de botnets.

Isso praticamente zerou as agressões ao servidor de email.

Certificados Caddy

Aproveitando que o assunto são dicas técnicas, para quem usa o servidor web Caddy, é possível usar os certificados TLS automáticos do Caddy no Maddy, sem precisar instalar os certificados indicados no tutorial do Maddy.

Na verdade, o nome Maddy vem do Caddy, significando algo como "Caddy for Mail", já que ambos são escritos na linguagem Go e simplificam amplamente implementações que costumavam ser complexas.

Para usar os certificados do Caddy, basta linká-los em /etc/maddy, conforme indica essa resposta no repositório do projeto (em inglês).