8. El Correo Electrónico¶
8.1. ¿De qué va este tema?¶
Se trata de usar un servicio de correo electrónico, conociendo los protocolos, la estructura del mensaje y usando clientes y servidores.
8.2. Clases¶
Le dedicaremos unas 16 sesiones de clase
8.2.1. El correo electrónico¶
- El correo Electrónico - Origen (email vs smail) 
- La Dirección de correo Electrónico: usuario at dominio (registro mx ) 
 
- Funcionamiento del servicio   
- Protocolos: 
- Clientes . - En consola 
- Escritorio / App 
- Webmail 
 
- 
- Transportan información de un equipo a otro (son carteros) 
- A veces son clientes, a veces servidores 
- No siempre se relacionan directamente con el usuario 
 
Actividad. Revisar la documentación
Revisa la documentación de la clase
Actividad. Instala un cliente de correo electrónico
Instala un cliente de correo electrónico de escritorio ( que tenga una buena funcionalidad ) para usar con tu/s proveedor/es ( por ejemplo con gmail ).
Yo uso Mozilla Thunderbird .
8.2.2. El Mensaje de correo¶
- 
- Cabecera 
- Cuerpo 
 
- Cabecera de un email: - Campos ( IANA Message Headers ) 
- Valores 
 
- Cuerpo de un mensaje: - texto 
- y uso de MIME 
 
- Analizar un mensaje de correo: - ¿Cómo veo un mensaje de correo completo?: depende del cliente (hay hay servicios web que lo hacen) 
- Tiene varios campos y valores: Understanding an Email Header 
 
- ¿Cómo es un buzón de correo de un usuario? Formatos de Almacenamiento: 
Actividad. Analizar la estructura de un mensaje
Analizar un mensaje completo  (por ejemplo  este)
- ¿Quién origina el mensaje? 
- ¿Quién es el destino? ¿Hay más de un destino? 
- ¿Cual es el texto del mensaje? 
- ¿Tiene algún archivo adjunto? ¿Cuántos? 
- ¿Por cuantos servidores ha pasado? 
- ¿Cuánto tiempo tardó en entregarse? 
- Si respondo al mensaje, ¿quien lo recibe? 
- ¿En qué RFC puedo buscar el campo DKIM-Signature? 
- ¿Qué tipo de archivo adjunto iba en el mensaje? 
- ¿Qué cliente de correo usa el remitente? 
8.2.3. El cliente de correo electrónico¶
- Clientes WebMail - Muy útiles: desde cualquier parte y dispositivo 
- Con algunas trampas: privacidad y productividad 
 
- Configurar mi cuenta de correo (básico): - Servidor Saliente (SMTP): Proceso de envío de un mensaje 
- Servidor Entrante (IMAP): Proceso de recepción de un mensaje 
- Y datos genéricos: usuario/contraseña, nombre de la cuenta, dirección de correo, etc 
 
- Configurar mi cuenta de correo (avanzado) - Funcionalidad extra en los servidores 
- Almacenamiento: carpetas, disco, archivo, etc 
- Redaccion (citas, firmas, …) y Contactos (local o remoto) 
 
- El cliente mail (en consola): - Ideal para probar el sistema 
- Ideal para programación (scripting) 
- Revisa la variable MAIL (donde se almacena el mensaje) 
 
- ¿ Cual es el mejor ? Depende. 
Actividad. Usa un cliente de correo electrónico (Escritorio)
Revisa toda la funcionalidad que puedas de un cliente de correo (el que quieras, pero que tenga una buena funcionalidad), algunas tareas concretas:
- Configurar varias cuentas de correo (en un sólo cliente) 
- Configurar un filtro que guarde en una carpeta automáticamente (SI es de X dirección guardar en X carpeta) 
- Buscar los mensajes de una dirección concreta entre un rango de fechas 
- Ver la conversación y/o contexto de un mensaje 
- Buscar una extensión (plugin) de una funcionalidad extra que te interese 
Actividad. Usa un cliente de correo electrónico (Consola)
- Envía un mail, con copia, usando sólo la consola 
- Envía un mail con la fecha actual del sistema 
- Envía un mail con todos los paquetes instalados (dpkg -l) 
- Envía un mail, cada 15 minutos, con los procesos que están corriendo en el sistema 
- Envía un correo, cada hora, con las últimas 20 líneas de tu servidor SSH 
8.2.4. Seguridad en el Mensaje¶
- Necesidades: - Firmado: - Autenticación (quien soy) 
- Integridad (no se puede modificar) y 
- no repudio (quien lo envió) 
 
- Cifrado: - Confidencialidad 
- Privacidad 
 
 
- Problemas con el mensaje: - no deseado SPAM . Grave (p.ej spam en España ) 
- falso ( bulo ). Preocupante 
- engaños ( phising ). Preocupante 
 
- Recomendaciones Incibe (básicas) 
- Sistemas: 
- Configuración ( Uso de Certificados FNMT ): - Administrar credenciales (certificados o claves) 
- Añadir firmar y/o cifrado al mensaje 
 
- Ejemplo de servicio seguro: ProtonMail - Correo Seguro (incluso fuera de su ámbito) 
- Equilibrio seguridad vs usabilidad 
 
Actividad. Uso de Firma Electrónica
- Envíame un correo electrónico con una firma electrónica válida. 
- Envíame un correo electrónico, encriptado y firmado ¿Qué nos haría falta? 
8.2.5. Productividad con el Correo Electrónico¶
- Escribir (bien) un correo electrónico 
- Vacía tu Bandeja de Entrada (Inbox Zero): La Técnica BARA: - Borrar 
- Archivar 
- Responder 
- Apuntar 
 
- No engancharse ( Reinforcing Machine ) y Apagarlo 
- Usar el canal adecuado (síncrono o asíncrono y presencial o electrónico) según la necesidad real - Mejor comunicación (la humana, por la información no verbal). Síncrona y Real 
- Menos costosa (la electrónica, por la conectividad). Asíncrona (en general) 
- La intermedia (mensajería instantánea): la peor (pero útil a veces). Síncrona pero no Real 
 
Actividad. Vacía tu bandeja de entrada
Usa la técnica BARA para Vacía tu Bandeja de Entrada o declárate en quiebra (borra todo).
8.2.6. El protocolo SMTP¶
- 
- El protocolo SMTP (RFC 5321) 
 
- Los actores en el proceso (envío y recepción): 
- Ejemplo de una comunicación SMTP   
- Códigos de Estado SMTP ( SMTP Status Codes ) 
Actividad. Entender una sesión SMTP
Analizar una sesión SMTP y entender los códigos de estado (ejemplo de log SMTP)
Analizar un registro de logs (ejemplos postfix/dovecot error / warn / log):
8.2.7. Asegurar SMTP¶
- Problemas con el servicio (complejo) - En el servicio: - Permitir recibir mensajes (no enviar) 
- Ojo con no dejarlo abierto (Open relay) 
- Usar sólo si hay un control del acceso (usando SMTP Auth ) 
 
- En el mensaje: - Complejo: Confidencialidad / Privacidad / Spam / Bulos / Phising 
- Equilibrio Seguridad vs Usabilidad (depende del servicio) 
 
 
- Técnicas: - Configuración: - Auditorías Externas: pruebas 
- Usar listas externas anti spam (p.ej SpamHaus Project ) 
 
- Uso TLS (smtp e imap) 
 
- Legislación - Almacenamiento de Mensajes 
- Contenido 
- Protección de datos 
 
Actividad. Asegurar Servicio SMTP
8.2.8. El protocolo IMAP¶
8.2.9. Instalar un servicio de correo electrónico¶
Fases de Instalación:
- Instalación, Configuración y Pruebas: - en local en una máquina virtual. Añadiendo dominio local (dnsmasq, por ejemplo) 
- en máquina pública, pero en interfaz loopback (127.0.0.1) 
 
- Producción. En máquina pública y en interfaz de red pública. 
- Práctica completa en Instalar un servicio de correo electrónico 
Actividad. Preparar el dominio del correo y la máquina que lo va a gestionar
- ¿En qué dominio está el servicio? 
- ¿Quién es mi gestor de registros DNS? 
- ¿En qué máquina configurarás el servicio? 
- ¿Cual es su nombre de host? Nombre completo (FQDN) 
- ¿Cual es su dominio? 
- ¿Puedo conectarme al equipo? ¿Está disponible? 
- ¿Habrá varios dominios de correo gestionados? (Dominios Virtuales) 
Actividad. Instalar un servicio SMTPs
- ¿Donde vas a almacenar los mensajes y con qué formato? Maildir 
- ¿Qué software vas a utilizar? Postfix (p.ej.) 
- ¿En que puertos e interfaces lo vas a montar? 25 (y 587 -> smtp auth). 
- ¿Quien va a poder enviar y recibir correos? Usuarios para buzones y usuarios para envíos 
- ¿Algún usuario virtual y/o alias? Un buzón = varios usuarios 
- ¿Cuales son los requisitos de instalación (no estándar)? 
- ¿Donde están los logs? 
Actividad. Instalar Servicio IMAPss
Primero en local y luego abierto al público:
- ¿En qué máquina configurarás el servicio? 
- ¿Donde están los mensajes y con qué formato? 
- ¿Qué software vas a utilizar? 
- ¿En que puertos e interfaces lo vas a montar? 
- ¿Quien va a poder recoger sus mensajes? 
- ¿Cómo es el sistema de autenticación? 
- ¿Donde están los logs? 
8.2.10. El servicio Webmail¶
- Es una aplicación web que hace de cliente de correo (IMAP y SMTP) 
- Arquitectura: - Servicio de Correo: - Servidor SMTP (p.ej postfix) 
- Servidor IMAP (p.ej dovecot) 
 
- Servicio de Aplicaciones Web: - Servidor Web (p.ej. Apache) 
- Aplicación Web (p.ej PHP) 
- Base de Datos de Usuarios (p.ej. MariaDB) 
 
- Interfaz de usuario (Web) 
 
- Requisitos ( Ejemplo Roundcube ): - Servidor web Apache, Ngnix, Lighttpd o Cherokee 
- Versión de PHP 5.2.1 o superior 
- PostgreSQL, SQLite o base de datos de MySQL, MariaDB 
- Servidor IMAP con soporte IMAP4 rev1 
- Un servidor SMTP (recomendado) o PHP configurado para la entrega de correo 
 
- Existen diferentes alternativas (ejemplo de Top 10 ) 
Actividad. Instalar un servicio webmail