CONFIGURACIÓ DOVECOT - SERVIDOR DE CORREU ENTRANT
PART 1: CREACIÓ D’USUARIS DEL SISTEMA
1.1 – CREAR ELS USUARIS
useradd [opcions] nom_usuari
Verifica que els directoris home s’han creat:
ls -la /home/
1.2 – ASSIGNAR CONTRASENYES ALS USUARIS SEGUINT LA NOSTRA POLÍTICA DE CONTRASENYAS
passwd nom_usuari
PART 2: INSTAL·LACIÓ DE DOVECOT
2.1 – REPOSITORIS I FONTS DEL PAQUET
Concepte: Què és un repositori?
Un repositori és un servidor que conté paquets de programari compilats i preparats per instal·lar.
A Rocky Linux, els repositoris oficials són:
- BaseOS: Paquets base del sistema operatiu
- AppStream: Aplicacions i eines addicionals
- Extras: Paquets complementaris
Comprovem quins repositoris tenim actius i busquem Dovecot als repositoris::
dnf repolist
dnf search dovecot
Què són aquests paquets?
dovecot: Paquet principal (IMAP/POP3)dovecot-pigeonhole: Plugin per filtres de correu (Sieve)dovecot-mysql/pgsql: Per usuaris virtuals en base de dades.
2.2 – INSTAL·LACIÓ DE DOVECOT
dnf install dovecot -y Verifica que s’ha instal·lat correctament:
# Versió de Dovecot
dovecot --version
# Estat del servei (encara no està iniciat)
systemctl status dovecot
# Fitxers instal·lats
rpm -ql dovecot | head -20
PART 3: CONFIGURACIÓ DE DOVECOT
3.1 – CÒPIA DE SEGURETAT (MOLT IMPORTANT!)
Concepte: Per què fer còpies de seguretat?
Abans de modificar QUALSEVOL fitxer de configuració, SEMPRE has de fer una còpia de seguretat. Per què?
- Si fas un error, pots recuperar la configuració original
- Pots comparar els canvis que has fet
- És una pràctica professional obligatòria.
Fem la còpia de seguretat:
# Copiar tot el directori de configuració
cp -r /etc/dovecot /etc/dovecot.backup
# Verificar que s'ha copiat
ls -la /etc/ | grep dovecot
Ara ja pots modificar fitxers amb tranquil·litat! Si fas malbé alguna cosa, pots restaurar amb:
rm -rf /etc/dovecot
cp -r /etc/dovecot.backup /etc/dovecot Editem el fitxer de configuració:
vim /etc/dovecot/conf.d/10-mail.conf Busca la línia mail_location.
Aquesta línia està comentada (té # al davant), per tant no està activa.
Modifica-la així:
# ABANS
#mail_location = mbox:~/mail:INBOX=/var/mail/%u
# DESPRÉS
# Ubicació dels correus: format Maildir al directori home de cada usuari
# maildir: indica el format Maildir (un fitxer per correu)
# ~/Maildir: cada usuari tindrà una carpeta Maildir al seu home (/home/usuari/Maildir)
# Aquest format és més segur, ràpid i fiable que mbox
mail_location = maildir:~/Maildir
Explicació línia per línia:
maildir:→ Especifica que usem format Maildir~/Maildir→~significa el home de l’usuari (/home/aborrego/Maildir)- Cada usuari tindrà la seva pròpia carpeta Maildir
3.3 – CREAR LES CARPETES MAILDIR PER ALS USUARIS
Cada usuari necessita tenir aquesta estructura creada:
/home/usuari/Maildir/
├── new/ ← Aquí arriben els correus nous
├── cur/ ← Correus llegits o marcats
└── tmp/ ← Zona temporal durant la recepció
Per què 3 carpetes?
tmp/: Quan arriba un correu, primer es guarda aquí (per evitar corrupció)new/: Quan el correu està complet, es mou aquí (correu nou, no llegit)cur/: Quan l’usuari llegeix el correu, es mou aquí
Creem les carpetes per cada usuari:
# Usuari: aborrego
mkdir -p /home/aborrego/Maildir/{new,cur,tmp}
chown -R aborrego:aborrego /home/aborrego/Maildir
chmod -R 700 /home/aborrego/Maildir
# Usuari: alozano
mkdir -p /home/alozano/Maildir/{new,cur,tmp}
chown -R alozano:alozano /home/alozano/Maildir
chmod -R 700 /home/alozano/Maildir
# Usuari: hbravo
mkdir -p /home/hbravo/Maildir/{new,cur,tmp}
chown -R hbravo:hbravo /home/hbravo/Maildir
chmod -R 700 /home/hbravo/Maildir
3.4 – CONFIGURACIÓ DE PROTOCOLS (IMAP, POP3, LMTP)
Concepte: Protocols de correu
IMAP (Internet Message Access Protocol) – Port 143/993
Client ←──→ Servidor
Com funciona: Els correus es queden al servidor
Avantatge: Sincronització entre múltiples dispositius (mòbil, PC, web)
Ideal per: Usuaris que accedeixen des de múltiples llocs
- Port 143**: IMAP sense xifrar – NO recomanat
- Port 993**: IMAPS (IMAP amb SSL/TLS) – RECOMANAT
POP3 (Post Office Protocol) – Port 110/995** Client ←── Servidor
Com funciona: Descarrega els correus al client i els esborra del servidor.
Desavantatge: Els correus només estan en 1 dispositiu
Ideal per: Usuaris amb 1 sol dispositiu i espai limitat al servidor –
Port 110**: POP3 sense xifrar (NO recomanat) – Port 995**: POP3S (POP3 amb SSL/TLS) – RECOMANAT
LMTP (Local Mail Transfer Protocol)
Postfix ──→ Dovecot (SMTP) (LMTP)
Editem el fitxer principal de Dovecot:
Busca la línia protocols. Modifica-la així:
# ABANS:
#protocols = imap pop3 lmtp submission
# DESPRÉS:
protocols = imap pop3 lmtp
Què són aquests paquets?
dovecot: Paquet principal (IMAP/POP3)dovecot-pigeonhole: Plugin per filtres de correu (Sieve)dovecot-mysql/pgsql: Per usuaris virtuals en base de dades.
3.5 – CONFIGURACIÓ D’AUTENTICACIÓ
Concepte: Com s’autentiquen els usuaris?
Quan un usuari intenta accedir al seu correu, Dovecot ha de verificar la seva identitat:
Client: “Soc aborrego, la meva contrasenya és XYZ” Dovecot: “Deixa’m comprovar…”
Dovecot comprova → /etc/shadow
Dovecot: “Correcte! Aquí tens els teus correus”
Mecanismes d’autenticació: Nosaltres usarem PLAIN i LOGIN sobre SSL/TLS (segur i compatible).
Editem el fitxer d’autenticació:
vi /etc/dovecot/conf.d/10-auth.conf Busca i modifica aquestes línies:
1. Desactivar autenticació en text pla sense SSL:
# BUSCA:
disable_plaintext_auth = yes
# MODIFICA A:
disable_plaintext_auth = yes
# Desactivar autenticació en text pla sense SSL/TLS
# Això força que els usuaris SEMPRE usin connexions xifrades (IMAPS/POP3S)
# Si intenten connectar sense SSL amb usuari/contrasenya, es rebutjarà
2. Mecanismes d’autenticació:
# BUSCA:
auth_mechanisms = plain
# MODIFICA A:
auth_mechanisms = plain login
# Mecanismes d'autenticació permesos:
# - plain: usuari i contrasenya (sobre SSL és segur)
# - login: compatible amb més clients de correu (Outlook, etc.)
3. Habilitar autenticació amb usuaris del sistema:
# BUSCA:
#!include auth-system.conf.ext
# MODIFICA A:
!include auth-system.conf.ext
# Incloure configuració per autenticar amb usuaris del sistema Linux
# Això permet que aborrego, alozano i hbravo s'autentiquin amb les seves contrasenyes
4. Desactivar altres mètodes d’autenticació (per ara):
ASSEGURA’T que aquestes línies ESTAN comentades (amb #):
# No utilitzem autenticació SQL per ara (ho farem després per usuaris virtuals)
#!include auth-sql.conf.ext
# No utilitzem LDAP
#!include auth-ldap.conf.ext
# No utilitzem base de dades estàtica
#!include auth-static.conf.ext
PART 4: CONFIGURACIÓ SSL/TLS
4.1 – CONCEPTE: Què és SSL/TLS i per què és important?
SSL/TLS (Secure Sockets Layer / Transport Layer Security)
Quan un client de correu (Outlook, Thunderbird, mòbil) es connecta al servidor:
Sense SSL/TLS:
Client ─────→ [usuari: aborrego] [password: 1234] ─────→ Servidor
📡 TEXT PLA visible per qualsevol! 📡 - Qualsevol pot interceptar la comunicació
- Contrasenyes visibles
- Correus llegibles
Amb SSL/TLS:
Client ─────→ [dades xifrades incomprensibles] ─────→ Servidor
🔒 XIFRAT amb criptografia 🔒 - Comunicació xifrada
- Contrasenyes protegides
- Correus privats
- Verificació de la identitat del servidor
Nosaltres NOMÉS habilitarem els ports SSL (993, 995) per màxima seguretat.
4.2 – VERIFICAR EL CERTIFICAT SSL
# Verificar que existeix
ls -la /etc/ssl/certs/postfix.pem
# Veure informació del certificat
openssl x509 -in /etc/ssl/certs/postfix.pem -text -noout | head -20
4.3 – CONFIGURACIÓ SSL A DOVECOT
Editem el fitxer SSL:
vi /etc/dovecot/conf.d/10-ssl.conf Busca i modifica aquestes línies:
# BUSCA:
#ssl = yes
# MODIFICA A:
ssl = required
# - yes: SSL opcional (permet connexions sense SSL)
# - required: SSL OBLIGATORI (força connexions xifrades)
# Usem "required" per màxima seguretat: TOTES les connexions han de ser SSL 2. Especificar el certificat SSL:
# BUSCA:
ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
ssl_key = </etc/pki/dovecot/private/dovecot.pem
# MODIFICA A:
ssl_cert = </etc/ssl/certs/postfix.pem
ssl_key = </etc/ssl/certs/postfix.pem
# Ruta del certificat SSL (el mateix que usa Postfix)
# El símbol < indica que llegeix el contingut del fitxer
# postfix.pem conté TANT el certificat com la clau privada
3. Versió mínima de TLS:
# BUSCA:
ssl_min_protocol = TLSv1.2
# MODIFICA A:
ssl_min_protocol = TLSv1.2
# Versió mínima de TLS acceptada
# TLSv1.2 és el mínim recomanat (TLSv1.0 i TLSv1.1 són insegurs)
# Això rebutja connexions amb protocols obsolets 4. Configurar xifratges forts:
# BUSCA:
#ssl_cipher_list = ALL:!LOW:!SSLv2:!EXP:!aNULL
# MODIFICA A:
ssl_cipher_list = HIGH:!aNULL:!MD5:!RC4
# Preferir els xifratges del servidor (millor control de seguretat)
ssl_prefer_server_ciphers = yes
4.4 – VERIFICAR LA CONFIGURACIÓ SSL
doveconf -n | grep ssl
PART 5: INTEGRACIÓ AMB POSTFIX (LMTP i SMTP AUTH)
5.2 – CONFIGURACIÓ DE LMTP A DOVECOT
Concepte: Què és LMTP?
LMTP (Local Mail Transfer Protocol) és un protocol similar a SMTP però optimitzat per lliurament local.
- LMTP: Postfix entrega correus a Dovecot
- SMTP AUTH: Postfix usa Dovecot per autenticar usuaris que envien correus
Editem la configuració de serveis:
Busca la secció service lmtp.
vim /etc/dovecot/conf.d/10-master.conf MODIFICA TOTA la secció service lmtp així:
ELIMINA tot el contingut de service lmtp { ... } i SUBSTITUEIX-LO per:
service lmtp {
# Socket Unix per comunicació amb Postfix
# Postfix enviarà correus a Dovecot a través d'aquest socket
# La ruta està dins de /var/spool/postfix perquè Postfix treballa en un chroot
unix_listener /var/spool/postfix/private/dovecot-lmtp {
mode = 0600 # Només root i postfix poden accedir
user = postfix # Propietari: usuari postfix
group = postfix # Grup: postfix
}
}
5.3 – CONFIGURACIÓ D’AUTENTICACIÓ SMTP (SMTP AUTH)
Concepte: Per què necessitem SMTP AUTH?
Quan un usuari vol enviar un correu des del seu client:
Sense SMTP AUTH:
- ❌ Qualsevol podria enviar correus des del teu servidor
- ❌ El teu servidor es convertiria en un relay obert (spam!)
- ❌ Llistes negres bloquejarien el teu servidor
Amb SMTP AUTH:
- ✅ Només usuaris autenticats poden enviar
- ✅ Protecció contra spam
- ✅ Control d’accés
Edita el mateix fitxer i busca la secció service auth:
vim /etc/dovecot/conf.d/10-master.conf MODIFICA afegint DINS de service auth el nou socket
NO ELIMINIS el que hi ha, AFEGEIX el nou unix_listener dins de service auth:
service auth {
# Socket per autenticació d'usuaris (consultes de base de dades interna)
unix_listener auth-userdb {
#mode = 0666
#user =
#group =
}
# Socket per a que Postfix pugui autenticar usuaris (SMTP AUTH)
# Quan un usuari vol enviar un correu via SMTP, Postfix pregunta a Dovecot
# si les credencials (usuari/contrasenya) són correctes
# Dovecot comprova contra /etc/shadow i respon OK o ERROR
unix_listener /var/spool/postfix/private/auth {
mode = 0660 # Lectura/escriptura per propietari i grup
user = postfix # Propietari: postfix
group = postfix # Grup: postfix
}
}
Verifica que la configuració de Dovecot és correcta:
doveconf -n | grep -A 5 "service lmtp"
doveconf -n | grep -A 10 "service auth"
5.4 – CONFIGURACIÓ DE POSTFIX PER USAR DOVECOT
Editem la configuració principal de Postfix:
vi /etc/postfix/main.cf VES AL FINAL del fitxer i AFEGEIX aquestes línies:
# ============================================
# INTEGRACIÓ AMB DOVECOT
# ============================================
# --- LLIURAMENT DE CORREUS VIA DOVECOT LMTP ---
# En lloc de guardar correus directament a /var/mail (format mbox),
# Postfix envia els correus entrants a Dovecot via LMTP
# Dovecot els guarda a ~/Maildir/ de cada usuari (format Maildir)
# Això permet sincronització IMAP, millor rendiment i més fiabilitat
mailbox_transport = lmtp:unix:private/dovecot-lmtp
# --- AUTENTICACIÓ SMTP VIA DOVECOT (SMTP AUTH) ---
# Quan un usuari vol enviar un correu (port 587), Postfix usa
# Dovecot per verificar les seves credencials (usuari/contrasenya)
# Tipus d'autenticació SASL: Dovecot
# SASL = Simple Authentication and Security Layer
smtpd_sasl_type = dovecot
# Ruta del socket d'autenticació de Dovecot
# Postfix escriurà aquí per preguntar si les credencials són correctes
smtpd_sasl_path = private/auth
# Habilitar autenticació SMTP (permet que usuaris s'autentiquin)
smtpd_sasl_auth_enable = yes
# Opcions de seguretat SASL:
# - noanonymous: No permetre autenticació sense credencials
# (obliga a proporcionar usuari i contrasenya)
smtpd_sasl_security_options = noanonymous
# Domini local per SASL (per defecte: serv-correu.illa4.local)
# Els usuaris poden autenticar-se com "aborrego" o "aborrego@illa4.local"
smtpd_sasl_local_domain = $myhostname
# Compatibilitat amb clients Outlook antics i altres clients amb bugs
# Alguns clients tenen implementacions SASL trencades, això els permet connectar
broken_sasl_auth_clients = yes
Explicació línia per línia:
1. mailbox_transport = lmtp:unix:private/dovecot-lmtp: Indica a Postfix que quan rebi un correu local (per aborrego@illa4.local), en lloc de guardar-lo directament a /var/mail/aborrego, ha de passar-lo a Dovecot via LMTP
2. smtpd_sasl_type = dovecot: Indica que usarem Dovecot com a backend d’autenticació SASL
3. smtpd_sasl_path = private/auth: Especifica el socket Unix on Dovecot escolta peticions d’autenticació
4. smtpd_sasl_auth_enable = yes: Activa l’autenticació SMTP (SMTP AUTH) i permet que els clients proporcionin usuari/contrasenya per enviar correus
5. smtpd_sasl_security_options = noanonymous: Prohibeix autenticació sense credencials i obliga a proporcionar usuari i contrasenya
6. smtpd_sasl_local_domain = $myhostname: defineix el domini per defecte per autenticació i$myhostname s’expandeix a serv-correu.illa4.local.
7. broken_sasl_auth_clients = yes:Postfix ofereix mètodes d’autenticació addicionals per compatibilitat i no afecta la seguretat (encara requereix SSL/TLS)
5.5 – VERIFICAR CONFIGURACIÓ DE POSTFIX
postconf -n | grep -E "mailbox_transport|sasl"
5.6 – VERIFICAR CONFIGURACIÓ COMPLETA DE DOVECOT
Això mostra TOTA la configuració activa (sense comentaris). Revisa que apareguin:
protocols = imap pop3 lmtpmail_location = maildir:~/Maildirssl = requiredssl_certissl_keyapuntant a/etc/ssl/certs/postfix.pem- Socket LMTP a
/var/spool/postfix/private/dovecot-lmtp - Socket AUTH a
/var/spool/postfix/private/auth
doveconf -n
PART 6: ARRENCAR ELS SERVEIS I FER PROVES
Ara que tot està configurat, arrencarem Dovecot i Postfix i farem proves de:
- Connexió IMAP/POP3
- Enviament de correu local
- Recepció de correu
- Autenticació
6.1 – ARRENCAR DOVECOT
Concepte: Ordre d’arrencada
És important arrencar els serveis en l’ordre correcte:
- Primer Dovecot (crea els sockets que Postfix necessita)
- Després Postfix (es connecta als sockets de Dovecot)
# Primer Dovecot (crea els sockets)
sudo systemctl enable --now dovecot
# Després Postfix
sudo systemctl enable --now postfix
# Comprova estat
sudo systemctl status dovecot
sudo systemctl status postfix
Verifica els ports oberts:
ss -tuln | grep -E ':(143|993|110|995)' 6.2 – Comprovar sockets
sudo ls -lZ /var/spool/postfix/private/ | grep -E 'dovecot-lmtp|auth'
Verificar que Postfix pot accedir als sockets de Dovecot:
postconf -d | grep virtual_transport
postconf mailbox_transport
6.4 – CONFIGURAR FIREWALL
Concepte: Per què obrir ports al firewall?
Rocky Linux té firewalld actiu per defecte. Aquest firewall bloqueja tots els ports que no estiguin explícitament permesos.
Necessitem obrir els ports de:
- IMAPS (993): Per que els clients puguin llegir correus
- POP3S (995): Per compatibilitat amb clients POP3
- SMTP Submission (587): Per que els clients puguin enviar correus autenticats (aquest ja hauria d’estar obert si tens Postfix configurat)
firewall-cmd --state Veure els serveis permesos actualment i busca si ja tens imap, imaps, pop3, pop3s a la llista de serveis.
firewall-cmd --list-all
Obre els ports necessaris:
# Obrir IMAP amb SSL (port 993)
firewall-cmd --permanent --add-service=imaps
# Obrir POP3 amb SSL (port 995)
firewall-cmd --permanent --add-service=pop3s
# Si vols també els ports sense SSL (NO recomanat, però per proves):
# firewall-cmd --permanent --add-service=imap
# firewall-cmd --permanent --add-service=pop3
# Recarregar el firewall per aplicar els canvis
firewall-cmd --reload
Verifica que s’han obert. Hauries de veure imaps i pop3s a la llista.
firewall-cmd --list-all
ss -tuln | grep -E ':(143|993|110|995)
6.6 – PROVA DE CONNEXIÓ BÀSICA (TELNET)
Provar connexió amb telnet
Abans de configurar un client de correu complet, podem fer una prova bàsica amb telnet:
Prova 1: Connexió IMAP (port 143 – hauria de fallar si ssl=required):
telnet localhost 143
Això és correte perquè hem forçat SSL.
Prova 2: Connexió IMAPS amb OpenSSL:
openssl s_client -connect localhost:993 -crlf
Prova 3: Autenticació IMAP:
Dins de la connexió OpenSSL anterior, pots provar autenticar-te. Si veus OK Logged in, l’autenticació funciona.
# Connectar
openssl s_client -connect localhost:993 -crlf
# Dins de la connexió, escriu:
a1 LOGIN aborrego la_contrasenya_que_vas_posar
PART 7: PROVES COMPLETES DEL SISTEMA
7.1 – PROVA D’ENVIAMENT DE CORREU LOCAL
Instal·lar l’eina mailx (si no la tens) o Instal·lar s-nail:
dnf install s-nail -y Enviar amb el teu usuari creat, en el meu cas com a aborrego.
su - aborrego
echo "Ara hauria de funcionar perfectament!" | mail -s "Test definitiu" hbravo@illa4.local
exit Verificar com a root:
tail -30 /var/log/maillog
Verificar que el coreu ha arribat:
ls -la /home/hbravo/Maildir/new/
LLEGEIX EL CORREU:
cat /home/hbravo/Maildir/new/*
PROVA AMB TOTS ELS USUARIS i VERIFICA QUE TOTS HAN REBUT CORREUS:
ls /home/aborrego/Maildir/new/
ls /home/alozano/Maildir/new/
ls /home/hbravo/Maildir/new/
PROVA LLEGIR UN CORREU VIA IMAP:
openssl s_client -connect localhost:993 -crlf -quiet **Dins de la connexió IMAP, escriu:**
a1 LOGIN hbravo contrasenya_de_hbravo
a2 SELECT INBOX
a3 FETCH 1:* (FLAGS BODY[HEADER.FIELDS (FROM TO SUBJECT DATE)])
a4 LOGOUT
EL MEU SERVIDOR DE CORREU:
- ✅ Instal·lar i configurar Dovecot des de zero
- ✅ Crear usuaris del sistema amb contrasenyes
- ✅ Configurar Maildir per emmagatzematge eficient
- ✅ Integrar Postfix amb Dovecot via LMTP i SMTP AUTH
- ✅ Configurar SSL/TLS per connexions segures
- ✅ Configurar autenticació per eliminar dominis
- ✅ Obrir ports al firewall correctament
- ✅ Enviar i rebre correus entre múltiples usuaris
- ✅ Verificar que tot funciona amb logs i proves reals