Instalar um servidor de e-mail próprio com Modoboa no Debian
O instalador do Modoboa configura o Postfix, o Dovecot, o webmail e o SSL numa só passagem. Veja como instalar o seu próprio servidor de e-mail no Debian e definir os registos DNS necessários.
Prefere ter os seus e-mails num servidor próprio, sob o seu próprio domínio, em vez de os deixar num fornecedor de correio gratuito? O Modoboa é uma das soluções mais cómodas para isso. O instalador que vem incluído configura o Postfix, o Dovecot, a base de dados, o filtro de spam, o webmail e uma interface de administração numa só passagem.
Este guia descreve a instalação em Debian 12 e Debian 11. O Debian 10 já não é suportado e não deve servir de base a um novo servidor de e-mail.
Requisitos
- Um vServer próprio ou um servidor root com uma instalação Debian acabada de fazer. Recomendamos (não é obrigatório, mas é sensato) reservar um servidor pequeno exclusivamente para o serviço de correio, porque o hostname e o reverse DNS são adaptados ao domínio de e-mail.
- Acesso root através de SSH.
- Um domínio próprio, no qual possa definir os registos DNS por si mesmo.
- Um endereço IPv4 fixo para o qual possa criar um registo de reverse DNS.
- As portas de correio têm de estar acessíveis: 25 (SMTP), 587 e 465 (envio pelos seus utilizadores), 143 e 993 (IMAP), além de 80 e 443 para o webmail e para a emissão do certificado.
Importante: execute a instalação num sistema acabado de instalar. Um servidor web já em funcionamento ou uma base de dados existente fazem o instalador abortar com frequência.
Preparar o sistema
Comece por atualizar a lista de pacotes e todos os pacotes já instalados:
apt update && apt upgrade -y
Instale depois os pacotes que o instalador espera encontrar:
apt-get install sudo git python3 mariadb-server -y
Conclua a configuração da base de dados respondendo às perguntas do assistente. Defina nessa altura uma palavra-passe segura para o administrador da base de dados:
sudo mysql_secure_installation
Definir o hostname
O servidor precisa de um hostname completo, coerente com o domínio de e-mail que vai usar mais tarde. Sem este passo, a instalação falha:
hostnamectl set-hostname mail.<DOMINIO>.<EXTENSAO>
O ideal é criar já agora, no DNS, o registo A exatamente para este nome. O instalador pede mais tarde um certificado Let's Encrypt, e isso só resulta se o nome já apontar para o IP do seu servidor.
Descarregar o instalador do Modoboa
cd /tmp
git clone https://github.com/modoboa/modoboa-installer
cd modoboa-installer
Gerar e adaptar o ficheiro de configuração
Deixe primeiro o instalador criar apenas o ficheiro de configuração e parar logo a seguir:
python3 ./run.py --stop-after-configfile-check <DOMINIO>.<EXTENSAO>
Abra o ficheiro gerado:
nano installer.cfg
Adapte as secções seguintes. Assim o servidor recebe um certificado SSL gratuito da Let's Encrypt e liga-se à base de dados local:
[certificate]
generate = true
type = letsencrypt
[letsencrypt]
email = admin@<DOMINIO>.<EXTENSAO>
[database]
engine = mysql
host = 127.0.0.1
install = true
Indique um endereço de e-mail que leia de facto. A Let's Encrypt envia por essa via os avisos, caso uma renovação não se concretize.
Iniciar a instalação
python3 ./run.py mail.<DOMINIO>.<EXTENSAO>
O processo demora alguns minutos. Aproveite o tempo para criar os registos DNS.
Criar os registos DNS
Registo A e registo MX
O registo A aponta para o IP do seu servidor, o registo MX diz ao resto do mundo qual é o host que aceita o correio do seu domínio. A prioridade "10" é o valor habitual quando existe apenas um servidor de e-mail:
1.º registo:
Subdomínio: mail
Tipo: A (IPv4)
Destino: <IP-Servidor>
O resultado deve ficar assim: mail.<DOMINIO>.<EXTENSAO> IN A <IP-Servidor>
2.º registo:
(Subdomínio: @)
Tipo: MX
Destino: mail.<DOMINIO>.<EXTENSAO>
O resultado deve ficar assim: @ IN MX 10 mail.<DOMINIO>.<EXTENSAO>
SPF, DKIM e DMARC
Sem estes três registos, as suas mensagens vão com toda a probabilidade parar à pasta de spam dos destinatários. Os grandes fornecedores exigem-nos hoje de forma explícita.
O SPF define que servidores podem enviar em nome do seu domínio. Fica como registo TXT no domínio principal:
Tipo: TXT
Nome: @
Valor: v=spf1 mx -all
O DKIM assina criptograficamente as suas mensagens de saída. O Modoboa consegue gerar as chaves de cada domínio por si próprio. Depois da instalação, encontra a chave pública na interface de administração, nas definições do domínio em causa. É esse valor que introduz como registo TXT no DNS.
O DMARC indica aos destinatários como devem tratar as mensagens que falham o SPF ou o DKIM. Comece com uma definição de simples observação e aperte-a mais tarde:
Tipo: TXT
Nome: _dmarc
Valor: v=DMARC1; p=none; rua=mailto:postmaster@<DOMINIO>.<EXTENSAO>
Reverse DNS (PTR)
O registo PTR resolve o seu endereço IP de volta para o hostname. Muitos servidores de e-mail recusam liminarmente as ligações sem um registo PTR correspondente. Na KernelHost, define-o por si mesmo na área de cliente:
"Os Meus Serviços" -> "Selecionar o servidor" -> "Clicar no botão Reverse DNS" -> mail.<DOMINIO>.<EXTENSAO>
O que importa é que o registo PTR e o hostname coincidam exatamente.
Primeiros passos depois da instalação
Se a instalação correu bem, reinicie o servidor uma vez:
reboot
A partir daí chega à interface de administração em https://mail.<DOMINIO>.<EXTENSAO>. Inicie sessão com a conta de administrador que o instalador criou e altere a palavra-passe logo à primeira. Crie a seguir o seu domínio e as caixas de correio pretendidas.
Teste depois nos dois sentidos: envie uma mensagem do seu novo servidor para uma caixa de correio externa e outra do exterior para o seu novo endereço. Para confirmar que o SPF, o DKIM, o DMARC e o PTR funcionam mesmo, o caminho mais rápido é um dos testadores de correio disponíveis gratuitamente na Internet.
Erros frequentes
- A instalação aborta de imediato: o hostname não é um nome de domínio completo. Verifique-o com
hostname -f. - O certificado não é emitido: o registo A de mail.oseudominio não aponta para o servidor, ou a porta 80 está bloqueada. A Let's Encrypt valida o domínio pela porta 80.
- As mensagens vão parar ao spam: normalmente falta o registo PTR, ou o SPF e o DKIM não estão definidos. Verifique os quatro registos antes de colocar o servidor em produção.
- As mensagens de saída são rejeitadas: o endereço IP pode constar de uma lista de bloqueio. A maioria dos operadores disponibiliza uma forma de consultar essa situação e de pedir a remoção.
- O instalador comunica um erro na base de dados: o MariaDB ainda não foi concluído com
mysql_secure_installation, ou a secção da base de dados no ficheiro installer.cfg não está correta. - Depois de um reinício nada funciona: verifique os serviços envolvidos com
systemctl status postfix dovecot nginx.
Um servidor de e-mail próprio exige mais manutenção do que outros serviços: atualizações, backups das caixas de correio e atenção permanente à entregabilidade. Se assumir esse trabalho, ganha em troca o controlo total sobre a sua comunicação.
Autor: XEfnexX (pseudónimo)
Perguntas frequentes
De que versão do Debian preciso para o Modoboa?
Porque é que as minhas mensagens vão parar à pasta de spam?
Posso instalar o Modoboa num servidor que já aloja um site?
Que portas tenho de abrir?
Como defino o registo de reverse DNS?
2023-2026 KernelHost GmbH. Todos os direitos reservados. Este guia está protegido por direitos de autor. A sua republicação noutros sites, na íntegra, em parte ou de forma editada, não é permitida sem o nosso consentimento por escrito. Citações com indicação da fonte e ligação são expressamente bem-vindas.

