3. introducción
SMTP
POP
IMAP
pasarelas web
qmail
Contenido
introducción
servicio de correo
Servicio para la transmisión, en sus inicios, de
mensajes de texto.
Arquitectura cliente/servidor
Independencia de la tecnología del dispositivo cliente
Compuesto por un conjunto de protocolos para
comunicar los distintos subsistemas que lo componen:
Protocolos: SMTP, POP e IMAP
Subsistemas o agentes: de usuario, de transporte, de
entrega
introducción
9. introducción
SMTP
POP
IMAP
pasarelas web
qmail
Contenido
smtp
Objetivo: transferencia de archivos y mensajes
Características:
Reenvío de correos
Intercomunicación entre procesos
Protocolo de transporte fiable
Puerto 25
Protocolo para el intercambio de correo RFC 821 (SMTP)
• Reemplazada por RFC 2821
Mensajes de correo RFC 822. Sintaxis e interpretación del grupo de
campos de la cabecera.
• Reemplazado por RFC 2822
RFC 1049 Describe el uso de otros tipos de documentos no ASCII.
introducción
SMTP
10. introducción
SMTP
POP
IMAP
pasarelas web
qmail
Contenido
smtp
Formato de los mensajes definido en RFC 1521 y 1522 (formato MIME).
Método para codificar datos binarios en formato de texto.
Códigos de vuelta:
2XX TODO Bien
4XX Fallo temporal. Vuelve a intentarlo
5XX Fallo Permanente. Detalles:
• X1X Relativo a la dirección de correo, ej., dirección destino incorrecta
• X2X Relativo al buzón: lleno, desactivado,…
• X3X Relativo al host: no acepta msj, lleno
• X4X Relativo a la red: error conexión, ..
• X5X Relativo al protocolo: comando inválido, …
• X6X Relativo al contenido o al formato del mensaje
• X7X Relativo a la seguridad: envío rechazado, error criptográfico,…
formato
SMTP
11. introducción
SMTP
POP
IMAP
pasarelas web
qmail
Contenido
smtp
EHLO Indicamos protocolo extendido (ESMTP: RFC 2821) (HELO: SMTP) Sirve para “abrir
sesión”
NOOP NADA. El receptor envía un Ok de respuesta
VRFY <dir> Para ver si existe un buzón o usuario. Recomendable su desactivación
EXPN <receptor@dominio> Comprobar si existe una lista de correo. Recomendable desactivar
SEND FROM equivalente a mail from. Identifica el remitente del mensaje
AUTH para autenticarse
RCPT TO <receptor@dominio> para indicar el destinatario
DATA Indica que se procede a enviar el mensaje
RSET Transacción actual se aborta
QUIT
comandos
SMTP
17. introducción
SMTP
POP
IMAP
pasarelas web
qmail
Contenido
smtp
Carece, excepto en las últimas versiones, de
autenticación, integridad y confidencialidad
Transmisiones texto plano
SPAM: envíos masivos de correo
PHISHING
Correos falsos: no somos quienes decimos que
somos
Transmisión de virus, troyanos y demás fauna
problemas
SMTP
20. introducción
SMTP
POP
IMAP
pasarelas web
qmail
Contenido
pop
Protocolo de Oficina Postal. Se encarga del reparto de
los correos a los usuarios
POP3 (RFC 1939)
Actualizaciones en RFCs 1957, 2449, 6168
Escucha el puerto 110 (encriptado es el 995)
Protocolo basado en estados:
Conexión
Autenticación para autenticar a los usuarios
Transacción atiende la petición del cliente
Actualización elimina los mensajes con marca de borrado y
cierra la conexión
introducción
POP
22. introducción
SMTP
POP
IMAP
pasarelas web
qmail
Contenido
pop
Transacción, comandos para manejo de mensajes
DELE msj
LIST [num msj] Muestra información de los mensajes no
borrados y su longitud. Se puede especificar uno concreto
NOOP
RETR num Obtiene el mensaje indicado
RSET Recupera los mensajes borrados (sólo conexión
actual)
STAT número de msjs en el buzón y tamaño del buzón
en bytes.
Actualización: NINGUNO
funcionamiento
POP
25. introducción
SMTP
POP
IMAP
pasarelas web
qmail
Contenido
imap
Protocolo de gestión de correos en el servidor
RFC 1730 (versión 4 RFC 2060)
Escucha el puerto 143 (encriptado es el 993)
Autómata basado en estados, pero más complejo que
POP.
A diferencia de POP, la gestión de los mensajes la
realiza en el servidor.
Proporciona una interfaz para la lectura, ordenación
(carpetas) y borrado de correos electrónicos.
introducción
IMAP
26. introducción
SMTP
POP
IMAP
pasarelas web
qmail
Contenido
imap
Comandos
LOGOUT Desconexión del servidor
AUTHENTICATE Indica el mecanismo de autenticación
LOGIN Autenticación del cliente
SELECT Selección del buzón de correo
CREATE Crea un buzón de correo
DELETE Borra el buzón de correo indicado
STATUS Estado del buzón
LIST Lista el contenido de un buzón
…
funcionamiento
IMAP
29. introducción
SMTP
POP
IMAP
pasarelas web
qmail
Contenido
pasarelas web
Interfaz Web para la conexión al servicio de correo
MUA Navegador Web
Puerto 80 y 443 (ssl)
Ventajas
Configuración en el servidor
• Acceso desde cualquier equipo
Evita nuevas instalaciones en el cliente
Evitar firewalls
Implementaciones opensource
roundcube
squirrelmail
introducción
pasarelas web
33. introducción
SMTP
POP
IMAP
pasarelas web
qmail
Contenido
qmail
Agente de transporte de correo para entornos Unix (MTA)
Sustituto de sendmail
Además, de SMTP, habla QMTP (elimina la necesidad de fin de linea cuando se tiene la misma convención
) y QMQP (cola de correos en cluster de hosts)
Libre distribución, aunque no GPL
Características
Modular: alrededor de 10 módulos con funciones diferentes que interactúan entre sí. Mejor
mantenimiento y rendimiento. También varios ficheros de configuración.
Parches especiales como big-concurrency.patch que permite el enviar hasta un millón de
mensajes.
Mayor seguridad. Principio del menor privilegio: No necesita ser root para la mayor parte de
las tareas.
Compatible con sendmail
Envío de mensajes concurrentes
• 20 colas de mensajes simultaneas
introducción
qmail
36. introducción
SMTP
POP
IMAP
pasarelas web
qmail
Contenido
qmail
Mensaje origen local
Qmail-inject: enviará el mensaje al programa de encolamiento de correo
Qmail-queue: almacenará en la cola de mensajes /var/qmail/queue
Qmail-send: intentará enviarlo a su destino mediante
• qmail-lspawn, destinatario local
• qmail-rspawn, destinatario remoto
Mensaje origen remoto
Qmail-smtpd: encargado de enviar el correo al programa de
encolamiento
El resto es similar al caso anterior
funcionamiento
qmail
37. introducción
SMTP
POP
IMAP
pasarelas web
qmail
Contenido
qmail
Mensaje destino local
Qmail-lspawn: procesa los mensajes con destinatario local
Qmail-local: almacena los mensajes en el buzón correspondiente del
destinatario
Mensaje destino remoto
Qmail-lrspawn: procesa los mensajes con destinatario remoto
funcionamiento
qmail
38. introducción
SMTP
POP
IMAP
pasarelas web
qmail
Contenido
qmail
Eliminar otros MTA
Paquetes a instalar
Ucspi-tcp-src
• $build-ucspi-tcp
Qmail-src
• $build-qmail
Apt-get
• $ apt-get install ucspi-tcp-src
• $ build-ucspi-tcp
• $ apt-get install qmail-src
• $ build-qmail
Usuarios generados
alias, qmaild, qmails, qmailr, qmailq, qmaill y qmailp
instalación
qmail
39. introducción
SMTP
POP
IMAP
pasarelas web
qmail
Contenido
qmail
Archivos de configuración
Directorio /var/qmail/control
• Enlace a /etc/qmail
Inicialmente
• Archivo rcpthosts
• Directorio users
Por defecto sólo acepta correo local
Especificar las máquinas o dominios de los que aceptamos
correo en rcpthosts
Especificar máquinas y dominios a los cuales se debe entregar
correo local en /etc/qmail/locals
administración
qmail
40. introducción
SMTP
POP
IMAP
pasarelas web
qmail
Contenido
qmail
Configuración del demonio
Indicar el nombre del sistema en /etc/qmail/me
Establecer el dominio en /etc/qmail/defaultdomain
• micorreo.mired.dtic.ua.es# echo “correo.mired.dtic.ua.es” >
/etc/qmail/me
• micorreo.mired.dtic.ua.es# echo “mired.dtic.ua.es” >
/etc/qmail/defaultdomain
Modo de almacenamiento
Variable alias_empty en /etc/init.d/qmail
• Entrega a un programa
• Mbox (sendmail) archivo mailbox
• Maildir directorio maildir
– New, cur, tmp
– Ejecutar maildirmake para generar la estructura
administración
qmail
41. introducción
SMTP
POP
IMAP
pasarelas web
qmail
Contenido
qmail
Reenvío de mensajes
Cuando un mensaje no es local
Añadir archivo
• /etc/tcp.smtp
• Indicar el nombre o dirección del equipo o subred al que permitimos
el reenvío
– mired.dtic.ua.es:allow,RELAYCLIENT=””
• Refrescar los cambios
– micorreo.mired.dtic.ua.es# tcprules tcp.smtp.cdb tcp.smtp.temp <
tcp.smtp
administración
qmail
45. introducción
SMTP
POP
IMAP
pasarelas web
qmail
Contenido
qmail
Después debemos verificar su funcionamiento:
– ¿Puerto abierto?
– Comprobar mediante telnet/openssl que podemos mandar un correo
– Verificar que funciona la autenticación STMP-AUTH (si la hemos
configurado)
– Comprobar el servicio IMAP/POP
Enviar/recibir correos a/desde diferentes sitios:
Si da error analizar cabecera del mensaje
¿Está bien DNS?
¿Qué camino se sigue?
administración
qmail
49. introducción
SMTP
POP
IMAP
pasarelas web
qmail
Contenido
qmail
Y reiniciamos: /ets/init.d/qmail start
SMTP-SSL:
– apt-get install libssl-dev
– Parche: qmail-1.03-tls*.patch
– Compilación e instalación
– Descarga, compilación e instalación de uscpi-ssl-*
Retocamos guión de inicio para puerto 587 (por política Red Iris) y reiniciamos
Comprobamos: ”openssl s_client -starttls smtp -crlf -connect localhost:25 -quiet
-debug”
seguridad
qmail
50. introducción
SMTP
POP
IMAP
pasarelas web
qmail
Contenido
Protección del servidor
Sistema:
– Acceso al sistema y cómo:
• Cómo ser root: grupo wheel, sudo, su
• pam_securetty → bloquear ttys desde donde acceder root (mejor solo
consola)
• pam_limits → no passwd igual, pero intercambiando mayúsculas por
minúsculas, no repetir x contraseña anteriores,...
• pam_cracklib → longitud de contraseña, #carácteres distintos, no
palíndromos,...
• pam_tally2 → bloquea usuarios con X sesiones erróneas
• /etc/login.defs → máximo reintentos, máximo de login
• /etc/sshd_config → no permitir root, acceso de ciertos usuarios, horario,
wheel,..
hardening
51. introducción
SMTP
POP
IMAP
pasarelas web
qmail
Contenido
Protección del servidor
Sistema:
– sudo: /etc/sudoers → 3 secciones: comportamiento sudo, alias y
reglas
– Cuotas en FS
– Permisos en FS: rwx, especiales, atributos y ACL
Servicios:
port-knocking / SPA
Jaulas
Monitorización → siguiente tema: monit, nagios/incinga, munin,...
hardening