211.3 - Acceso a buzones

Peso: 2

Protocolos de acceso a buzones

IMAP vs POP3

CaracterísticaIMAPPOP3
Puerto estándar143110
Puerto SSL/TLS993995
Gestión del correoEn el servidorEn el cliente (descarga)
Carpetas remotasSí, gestión completaNo (solo bandeja de entrada)
SincronizaciónMúltiples dispositivosUn solo dispositivo
Uso de disco servidorMayorMenor (correo se descarga)
Conexión permanenteRecomendadaNo necesaria
Protocolo estándarRFC 3501RFC 1939

Para el examen: Memoriza los puertos: IMAP = 143 (sin cifrar) / 993 (SSL/TLS); POP3 = 110 (sin cifrar) / 995 (SSL/TLS). IMAP mantiene el correo en el servidor, POP3 lo descarga al cliente.

Resumen de puertos

ServicioPuerto sin cifrarPuerto SSL/TLS
IMAP143993 (IMAPS)
POP3110995 (POP3S)
SMTP25465 (SMTPS)
Submission587587 (STARTTLS)

Dovecot

Dovecot es el servidor IMAP/POP3 más utilizado en Linux. Es seguro, rápido y fácil de configurar.

Instalación

# Debian/Ubuntu
apt install dovecot-core dovecot-imapd dovecot-pop3d
 
# RHEL/CentOS
yum install dovecot

Estructura de configuración

Dovecot utiliza un sistema de configuración modular:

/etc/dovecot/
├── dovecot.conf                    # Archivo principal
├── conf.d/                         # Directorio de configuración modular
│   ├── 10-auth.conf               # Autenticación
│   ├── 10-logging.conf            # Registro de logs
│   ├── 10-mail.conf               # Ubicación de buzones
│   ├── 10-master.conf             # Servicios y puertos
│   ├── 10-ssl.conf                # Configuración SSL/TLS
│   ├── 15-lda.conf                # Agente de entrega local
│   ├── 15-mailboxes.conf          # Buzones por defecto
│   ├── 20-imap.conf               # Configuración IMAP
│   ├── 20-pop3.conf               # Configuración POP3
│   ├── 90-sieve.conf              # Plugin Sieve
│   └── auth-system.conf.ext       # Autenticación del sistema

Archivo principal: dovecot.conf

# /etc/dovecot/dovecot.conf
 
# Protocolos habilitados
protocols = imap pop3 lmtp
 
# Escuchar en todas las interfaces
listen = *, ::
 
# Incluir configuración modular
!include conf.d/*.conf

Configuración de protocolos (10-master.conf)

# /etc/dovecot/conf.d/10-master.conf
 
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
    }
}
 
service lmtp {
    unix_listener /var/spool/postfix/private/dovecot-lmtp {
        mode = 0600
        user = postfix
        group = postfix
    }
}
 
service auth {
    unix_listener /var/spool/postfix/private/auth {
        mode = 0660
        user = postfix
        group = postfix
    }
}

Configuración del buzón (10-mail.conf)

# /etc/dovecot/conf.d/10-mail.conf
 
# Ubicación del buzón (Maildir)
mail_location = maildir:~/Maildir
 
# Ubicación del buzón (mbox)
# mail_location = mbox:~/mail:INBOX=/var/mail/%u
 
# Grupo privilegiado para acceso a buzones
mail_privileged_group = mail
 
# Namespace para INBOX
namespace inbox {
    inbox = yes
    separator = /
}

Para el examen: La directiva mail_location define dónde busca Dovecot los buzones de correo. Los formatos más comunes son maildir:~/Maildir y mbox:~/mail:INBOX=/var/mail/%u. La variable %u se sustituye por el nombre de usuario.

Configuración de autenticación (10-auth.conf)

# /etc/dovecot/conf.d/10-auth.conf
 
# Deshabilitar login en texto plano sin SSL
disable_plaintext_auth = yes
 
# Mecanismos de autenticación
auth_mechanisms = plain login
 
# Incluir backends de autenticación
!include auth-system.conf.ext
# !include auth-ldap.conf.ext
# !include auth-sql.conf.ext

Mecanismos de autenticación

MecanismoDescripción
plainTexto plano (requiere SSL/TLS)
loginSimilar a plain, compatible con Outlook
cram-md5Challenge-response (no requiere SSL)
digest-md5Digest-based (más seguro que CRAM)
ntlmAutenticación Windows NTLM
gssapiKerberos/GSSAPI

Backends de autenticación

# auth-system.conf.ext (autenticación del sistema)
passdb {
    driver = pam
    # o: driver = shadow
}
userdb {
    driver = passwd
}
 
# auth-ldap.conf.ext (autenticación LDAP)
passdb {
    driver = ldap
    args = /etc/dovecot/dovecot-ldap.conf.ext
}
userdb {
    driver = ldap
    args = /etc/dovecot/dovecot-ldap.conf.ext
}

Configuración SSL/TLS (10-ssl.conf)

# /etc/dovecot/conf.d/10-ssl.conf
 
# Habilitar SSL
ssl = required
# Valores: no, yes, required
 
# Certificado y clave
ssl_cert = </etc/ssl/certs/dovecot.pem
ssl_key = </etc/ssl/private/dovecot.pem
 
# Protocolos SSL permitidos
ssl_min_protocol = TLSv1.2
 
# Cifrados preferidos
ssl_cipher_list = HIGH:!aNULL:!MD5

Valores de la directiva ssl

ValorComportamiento
noSSL deshabilitado
yesSSL disponible pero opcional
requiredSSL obligatorio para todas las conexiones

Para el examen: ssl = required obliga a que todas las conexiones usen cifrado. Nota la sintaxis especial de los certificados: ssl_cert = </ruta (con < antes de la ruta, sin espacio).

Courier-IMAP

Courier-IMAP es una alternativa a Dovecot para servicios IMAP/POP3. Es menos utilizado actualmente pero aparece en el temario LPIC-2.

Características principales

  • Solo soporta el formato Maildir (no mbox)
  • Incluye su propio sistema de autenticación (authdaemon)
  • Configuración distribuida en múltiples archivos

Archivos de configuración de Courier-IMAP

ArchivoFunción
/etc/courier/imapdConfiguración del servidor IMAP
/etc/courier/imapd-sslConfiguración IMAP con SSL
/etc/courier/pop3dConfiguración del servidor POP3
/etc/courier/pop3d-sslConfiguración POP3 con SSL
/etc/courier/authdaemonrcConfiguración del demonio de autenticación

Configuración básica de Courier-IMAP

# /etc/courier/imapd
ADDRESS=0
PORT=143
MAXDAEMONS=40
MAXPERIP=20
MAILDIRPATH=Maildir
 
# /etc/courier/imapd-ssl
SSLPORT=993
TLS_CERTFILE=/etc/courier/ssl/imapd.pem

Webmail

El acceso webmail permite a los usuarios consultar su correo a través de un navegador web.

SquirrelMail

  • Aplicación web escrita en PHP
  • Ligera y sencilla
  • Usa solo IMAP para acceder al correo
  • Configuración mediante script conf.pl
# Archivo de configuración
/etc/squirrelmail/config.php
# o
/usr/share/squirrelmail/config/config.php
 
# Asistente de configuración
/usr/share/squirrelmail/config/conf.pl

Roundcube

  • Interfaz web moderna con AJAX
  • Escrita en PHP con soporte de base de datos (MySQL, PostgreSQL, SQLite)
  • Soporta plugins para ampliar funcionalidad
  • Integración con Sieve para filtros
# Archivo de configuración
/etc/roundcube/config.inc.php
# o
/var/lib/roundcube/config/config.inc.php
 
# Parámetros principales
$config['default_host'] = 'localhost';     # Servidor IMAP
$config['default_port'] = 143;              # Puerto IMAP
$config['smtp_server'] = 'localhost';       # Servidor SMTP
$config['smtp_port'] = 587;                 # Puerto SMTP

Para el examen: Tanto SquirrelMail como Roundcube son clientes webmail que se conectan al servidor de correo vía IMAP. No almacenan correo por sí mismos; son interfaces web para acceder a los buzones del servidor.

Integración de Dovecot con Postfix

SASL Authentication

Dovecot puede proporcionar autenticación SASL a Postfix:

# En Postfix main.cf
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
 
# En Dovecot conf.d/10-master.conf
service auth {
    unix_listener /var/spool/postfix/private/auth {
        mode = 0660
        user = postfix
        group = postfix
    }
}

LMTP (Local Mail Transfer Protocol)

Dovecot puede actuar como MDA vía LMTP:

# En Postfix main.cf
mailbox_transport = lmtp:unix:private/dovecot-lmtp

Verificación y depuración

# Ver la configuración efectiva de Dovecot
doveconf -n       # Solo parámetros modificados
doveconf -a       # Todos los parámetros
 
# Probar autenticación
doveadm auth test usuario contraseña
 
# Ver usuarios configurados
doveadm user '*'
 
# Estado del servicio
systemctl status dovecot
doveadm who       # Usuarios conectados
 
# Logs
journalctl -u dovecot
tail -f /var/log/mail.log

Resumen de archivos clave

ArchivoFunción
/etc/dovecot/dovecot.confConfiguración principal de Dovecot
/etc/dovecot/conf.d/Directorio de configuración modular
/etc/dovecot/conf.d/10-auth.confAutenticación
/etc/dovecot/conf.d/10-mail.confUbicación de buzones
/etc/dovecot/conf.d/10-master.confServicios y puertos
/etc/dovecot/conf.d/10-ssl.confConfiguración SSL/TLS
/etc/courier/imapdConfiguración Courier-IMAP
/etc/roundcube/config.inc.phpConfiguración Roundcube

Trampas del examen

Errores comunes y distinciones criticas que LPI suele evaluar en este subtema:

  • Puertos IMAP/POP3: memorizar los cuatro — IMAP = 143 (sin cifrar) / 993 (IMAPS), POP3 = 110 (sin cifrar) / 995 (POP3S). El examen pregunta frecuentemente por estos puertos. IMAP mantiene correo en servidor, POP3 lo descarga al cliente.

  • ssl = required vs ssl = yes en Dovecotrequired obliga TLS en todas las conexiones (mas seguro). yes permite conexiones cifradas y sin cifrar. no deshabilita TLS completamente. Para produccion, siempre required.

  • Sintaxis especial de certificados en Dovecot: ssl_cert = </ruta — el simbolo < antes de la ruta es obligatorio en Dovecot. Sin el, Dovecot interpreta la ruta como el contenido del certificado, no como un archivo. No confundir con la sintaxis de Apache.

  • mail_location = maildir:~/Maildir define donde busca Dovecot los buzones — la variable %u se sustituye por el nombre de usuario. Si la ruta esta mal, Dovecot no encuentra los buzones y los usuarios no pueden acceder a su correo.

  • Courier-IMAP solo soporta Maildir, no mbox — a diferencia de Dovecot que soporta ambos formatos, Courier-IMAP esta limitado a Maildir. Si la pregunta especifica mbox, Courier no es una opcion valida.

  • IMAP gestiona carpetas en el servidor, POP3 solo accede al INBOX — con IMAP los usuarios pueden crear, renombrar y eliminar carpetas en el servidor. POP3 solo descarga mensajes de la bandeja de entrada. Para acceso multi-dispositivo, IMAP es la unica opcion viable.

  • disable_plaintext_auth = yes bloquea login sin TLS — esta directiva en Dovecot impide que los usuarios envien credenciales en texto plano si no hay conexion cifrada. Es una medida de seguridad esencial.

  • SASL de Dovecot para Postfix: socket en /var/spool/postfix/private/auth — Dovecot proporciona autenticacion SASL a Postfix a traves de un socket Unix. La ruta del socket debe estar dentro del chroot de Postfix (/var/spool/postfix/).

  • SquirrelMail y Roundcube son clientes web, NO almacenan correo — ambos se conectan al servidor via IMAP para acceder a los buzones. No tienen almacenamiento propio de correo. Si el servidor IMAP esta caido, el webmail no funciona.

  • doveconf -n muestra solo parametros modificados — similar a postconf -n de Postfix. Es la forma rapida de ver que configuracion se ha personalizado. doveconf -a muestra todos los parametros incluyendo los valores por defecto.