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