O MOX é uma solução robusta e moderna para quem busca gerenciar seu próprio servidor de e-mail com baixa necessidade de manutenção. Desenvolvido em Go, ele consoliad diversas funções que tradicionalmente exigiriam a integração de múltiplos softwares (como Postfix, Dovecot e SpamAssassin) em um único binário eficiente. Ele oferece suporte nativo a protocolos essenciais e mecanismos de segurança rigorosos como SPF, DKIM e DMARC.
Arquitetura de Protocolos e Portas
O MOX gerencia o tráfego de e-mail através de diferentes interfaces, garanitndo compatibilidade e segurança:
| Protocolo | Porta Padrão | Finalidade | Segurança |
|---|---|---|---|
| SMTP | 25 | Transferência entre servidores | Opportunistic TLS / STARTTLS |
| Submission | 587 | Envio de e-mails por clientes | STARTTLS com Autenticação |
| SMTPS | 465 | Envio seguro (Implícito) | TLS Forçado |
| IMAP | 143 | Acesso a mensagens | STARTTLS |
| IMAPS | 993 | Acesso seguro (Implícito) | TLS Forçado |
Recursos de Automação e Segurança
- Gestão de Certificados: Integração nativa com ACME (Let's Encrypt) para renovação automática de certificados TLS.
- Auto-Configuração: Suporte para descoberta automática via registros SRV e protocolos compatíveis com Outlook e Thunderbird.
- Filtragem Inteligente: Sistema Bayesiano integrado para aprendizado de spam e sistema de reputação baseado no histórico do remetente.
- Segurança Avançada: Implementação nativa de MTA-STS e TLS Reporting.
Procedimento de Instalação
Para iniciar a implementação, recomenda-se a criação de um ambiente isolado no servidor Linux:
# Configuração do ambiente de execução
sudo groupadd --system mox
sudo useradd --system -g mox -d /opt/mox -m mox
cd /opt/mox
# Obtenção do binário via Go (alternativamente, baixe o binário pré-compilado)
export GOBIN=$PWD
go install github.com/mjl-/mox@latest
# Atribuição de permissões para portas privilegiadas (opcional, se não rodar como root)
sudo setcap 'cap_net_bind_service=+ep' ./mox
Configuração Inicial Rápida
O MOX facilita a configuração inicial através de um assistente interativo que gera os arquivos necessários e as chaves criptográficas:
# Iniciando a configuração guiada
./mox quickstart admin@meudominio.com.br
Este comando gera os arquivos mox.conf e domains.conf, define as senhas administrativas e fornece os registros DNS exatos que devem ser inseridos no seu provedor.
Exemplos de Registros DNS Necessários
Após a inicialização, você deverá configurar sua zona DNS. Segue um modelo comum:
# Registro MX
meudominio.com.br. IN MX 10 mail.meudominio.com.br.
# Registro SPF (Proteção contra spoofing)
meudominio.com.br. IN TXT "v=spf1 mx -all"
# Registro DKIM (Assinatura criptográfica)
seletor._domainkey.meudominio.com.br. IN TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkq..."
# Registro DMARC (Política de conformidade)
_dmarc.meudominio.com.br. IN TXT "v=DMARC1; p=quarantine; rua=mailto:admin@meudominio.com.br"
Customização do Servidor (mox.conf)
Abaixo, uma visão simplificada da estrutura de configuração para ouvintes (listeners):
Listeners:
external:
IPs: ["0.0.0.0"]
TLS:
ACME: letsencrypt-prod
SMTP:
Enabled: true
Submission:
Enabled: true
IMAPS:
Enabled: true
Port: 993
Interação via API e Webmail
O MOX inclui uma interface Webmail moderna e APIs JSON para integração com outros sistemas. Exemplo de envio de mensaegm programático:
curl -i -X POST https://mail.meudominio.com.br/webapi/v1/send \
-H "Authorization: Bearer SEU_TOKEN_AQUI" \
-H "Content-Type: application/json" \
-d '{
"to": ["contato@cliente.com"],
"subject": "Notificação de Sistema",
"body_text": "Este é um alerta enviado automaticamente pelo servidor MOX."
}'
Manutenção e Diagnóstico
Gerenciar a saúde do servidor é simplificado por ferramentas de linha de comando integradas:
# Verificar a integridade da configuração
./mox config check
# Validar se o DNS está propagado corretamente para o domínio
./mox checkdomain meudominio.com.br
# Gerar um backup completo dos dados e configurações
./mox backup /path/to/backups/snapshot_$(date +%F)
# Monitorar a fila de mensagens pendentes
./mox queue status
Ajustes de Performance e Limites
No arquivo de configuração, é possível definir restrições para evitar abusos e garantir a estabilidade do sistema:
# Exemplos de limites globais
MaxMsgSize: 52428800 # Limite de 50MB por mensagem
MaxRecipients: 100 # Máximo de destinatários por envio
O servidor também expõe métricas no formato Prometheus, permitindo a visualização de estatísticas de entrega, erros de conexão e carga de processamento através de dashboards como o Grafana.