Salta el contingut

Configuració de Correu a Linux: Postfix i Dovecot

Aquesta guia mostra com muntar, de manera manual i sense Docker, un servidor de correu mínim a Linux amb Postfix (MTA) i Dovecot (servidor IMAP/POP3 i MDA). L'objectiu és entendre com s'integren aquests dos serveis abans d'abordar una solució ja empaquetada com Mailcow.

Treballarem sobre Ubuntu Server 22.04 LTS, encara que els paquets i els noms dels fitxers de configuració són molt similars a la resta de distribucions basades en Debian.

Instal·lació de Postfix i Dovecot

sudo apt update
sudo apt install -y postfix dovecot-imapd dovecot-pop3d

Durant la instal·lació de Postfix, l'assistent demanarà el tipus de configuració. Per a un servidor que rep i lliura correu localment, tria "Internet Site" i indica el domini (per exemple exemple.local).

Configuració Bàsica de Postfix

El fitxer principal de configuració és /etc/postfix/main.cf. Els paràmetres més rellevants per a un servidor mínim són:

myhostname = mail.exemple.local
mydomain = exemple.local
myorigin = /etc/mailname
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
home_mailbox = Maildir/

Maildir vs mbox

home_mailbox = Maildir/ fa que Postfix entregui els missatges en format Maildir (un fitxer per missatge, dins de ~/Maildir/), que és el format que Dovecot espera per defecte. El format alternatiu mbox (un únic fitxer amb tots els missatges) és més antic i menys robust davant de bloquejos concurrents.

Un cop editat, recarrega el servei:

sudo systemctl restart postfix

Configuració de Dovecot

Els fitxers de configuració de Dovecot es troben a /etc/dovecot/conf.d/. Els més importants per a una instal·lació bàsica són:

10-mail.conf — indica on es troben les bústies:

mail_location = maildir:~/Maildir

10-auth.conf — mètode d'autenticació (contra els usuaris del sistema):

disable_plaintext_auth = yes
auth_mechanisms = plain login
!include auth-system.conf.ext

10-master.conf — serveis i sockets actius. Cal assegurar-se que els listeners d'IMAP i POP3 estan habilitats:

service imap-login {
    inet_listener imap {
        port = 143
    }
    inet_listener imaps {
        port = 993
        ssl = yes
    }
}

service pop3-login {
    inet_listener pop3 {
        port = 110
    }
    inet_listener pop3s {
        port = 995
        ssl = yes
    }
}

10-ssl.conf — xifrat TLS per a les connexions dels clients:

ssl = required
ssl_cert = </etc/dovecot/private/dovecot.pem
ssl_key = </etc/dovecot/private/dovecot.key

Certificats

Per a proves, Dovecot ja genera un certificat autosignat durant la instal·lació. Per a un entorn real, substitueix ssl_cert/ssl_key per un certificat vàlid (per exemple, obtingut amb Let's Encrypt/Certbot).

Aplica els canvis:

sudo systemctl restart dovecot

Creació de Comptes d'Usuari

En aquesta configuració mínima, cada compte de correu correspon a un usuari del sistema:

sudo adduser joan
sudo adduser maria

En connectar-se per primera vegada, Dovecot crearà automàticament el directori Maildir/ a l'$HOME de cada usuari.

Prova de Funcionament

Enviament local amb sendmail:

echo "Cos del missatge de prova" | sendmail -v maria

Comprovació manual d'una sessió SMTP:

telnet localhost 25
EHLO exemple.local
MAIL FROM:<joan@exemple.local>
RCPT TO:<maria@exemple.local>
DATA
Assumpte: Prova
.
QUIT

Comprovació manual d'una sessió IMAP xifrada:

openssl s_client -connect localhost:993 -crlf
a LOGIN maria contrasenya
a SELECT INBOX
a FETCH 1 BODY[]
a LOGOUT

Configuració a un client gràfic (Thunderbird, per exemple): servidor entrant IMAP al port 993 (SSL/TLS) i servidor sortint SMTP al port 587 o 25, amb el nom d'usuari i la contrasenya del compte del sistema.

Filtres del costat del servidor amb Sieve

Dovecot implementa Sieve mitjançant el plugin Pigeonhole:

sudo apt install -y dovecot-sieve dovecot-managesieved

Exemple de regla que mou els correus amb l'assumpte "Factura" a una carpeta:

require ["fileinto"];

if header :contains "subject" "Factura" {
    fileinto "Factures";
    stop;
}

Diagnòstic

# Comprovar la configuració de Dovecot
sudo doveconf -n

# Veure els usuaris autenticats i l'estat dels processos
sudo doveadm who

# Consultar els logs
sudo journalctl -u postfix -f
sudo journalctl -u dovecot -f

Problemes comuns

Problema: el client no pot autenticar-se

Comprova que disable_plaintext_auth no bloqueja l'autenticació si el client no utilitza TLS, i que l'usuari del sistema existeix i té contrasenya vàlida.

Problema: els correus no arriben a la bústia

Verifica que home_mailbox a Postfix i mail_location a Dovecot apunten al mateix format (Maildir) i ubicació, i revisa els permisos del directori ~/Maildir.

AC0375/05/03 — Miniactivitat

RA5 · CA5b, CA5c, CA5d, CA5e

Abans d'abordar el projecte complet amb Mailcow, instal·la Postfix i Dovecot de manera mínima (sense Docker) en una màquina virtual, crea dos comptes d'usuari locals i comprova que pots enviar un correu entre ells i recollir-lo per IMAP. Documenta quines mesures bàsiques aplicaries per impedir que el servidor sigui utilitzat com a open relay.