Correo electrónico 1 Correo electrónico Notas de transparencia 1: Joaquín Seoane (jsp@dit.upm.es) Mónica Cortés (cortesm@dit.upm.es) 8 de marzo de 2010 Departamento de Ingeniería de Sistemas Telemáticos Universidad Politécnica de Madrid Estas transparencias se distribuyen con una licencia de Creative Commons. y están disponibles en http://code.google.com/p/adminlibre/
Correo electrónico 2 Notas de transparencia 2: Índice Correo electrónico 3 Mensajes 4 Buzones 5 Agentes de usuario 13 Direcciones 15 Agentes de transferencia 16 Transportes o agentes de entrega 19 Ejercicios 19 Agente de transferencia 24 Registros MX 26 Servidores POP e IMAP 27 Agentes de usuario 29 Agente de transferencia 31 Ejercitar servidor de SMTP de intercambiador principal 33
Correo electrónico 3 Correo electrónico Notas de transparencia 3: La aplicación distribuida más importante y ligera. Anterior a internet: uucp, fido, bitnet, x400. Muy complejo si tiene que interconectar redes distintas. Distintos protocolos. Distintos esquemas de direccionamiento. Cada vez más sencillo, porque internet domina. Componentes Notas de transparencia 4: Mensajes. Buzones. Agente de usuario (MUA): relaciona a la persona con los buzones. Agente de transferencia (MTA): encamina. Servidor de buzones: si los usuarios no tienen conexión permanente. Transportes o agentes de entrega: para cada protocolo. Extractores de correo. Clasificadores automáticos. Gestores de listas.
Correo electrónico 4 Mensajes Notas de transparencia 5: Sobre: Destino. Remite. Contenido: Cabecera. Cuerpo. Mensaje Mime 1.0 transferible por ESMTP Notas de transparencia 6: Received: (from joaquin@localhost) by colibri.dit.upm.es... Date: Tue, 1 Jan 2010 12:50:37 +0100 From: Joaquin Seoane <joaquin@dit.upm.es> Message-Id: <199701071150.MAA02005@colibri.dit.upm.es> Subject: =?ISO-8859-1?Q?A=F1o_nuevo=2C_vida_nueva=2E?= MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=iso-8859-1 Content-Transfer-Encoding: 8BIT Feliz año 2010.
Correo electrónico 5 Buzones Notas de transparencia 7: Tipos: De entrada: Auxiliares (para archivo clasificado). De salida (no suelen llamarse buzones): Agente de usuario. Agente de transferencia. Son recursos compartidos: necesitan control de concurrencia. Distribución de buzones Notas de transparencia 8: Máquinas de los usuarios (buzones locales): Tradicional en sistemas multiusuario. Escalable. Fácil de mantener si la máquina entra en la dirección. No apto para estaciones de trabajo que se apagan. Utilizable desde una sóla máquina. Servidores (de cuentas, departamentales, corporativos): Buzones por POP, IMAP, HTTP. o sistema de ficheros remotos. Requiere autentificación. Dificulta la redireción, mensajes automáticos de vacaciones, etc.
Correo electrónico 6 Constitución de los buzones de entrada y auxiliares Notas de transparencia 9: Un fichero por buzón: ej. /var/spool/mail/fulano Formato unix: Separación sintáctica por remite del sobre: From joaquin@dit.upm.es Tue Mar 2 09:40:06 2010 Formato MMDF: ^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A Un fichero por mensaje: Un directorio por buzón (MH). Varios directorios (Maildir): new, tmp, cur Más administrables. Mejor para copias de seguridad. Mejor para sistemas de ficheros con cache. Mejor control de concurrencia. A veces tienen seudocabeceras generadas: Status: RO X-Status: A X-UIDL: cd2f8d162d482453584f04fa5ae04a5c
Correo electrónico 7 Los buzones de entrada en el sistema de ficheros Notas de transparencia 10: En un lugar del sistema: /var/spool/mail/fulano Podría estar en la cuenta: Los auxiliares suelen estarlo. No se entrega si cuenta inaccesible. Puede que la máquina de buzones no tenga cuentas. Acceso remoto a buzones Notas de transparencia 11: Sistema de ficheros distribuido (eg: NFS). Protocolos POP. Protocolos IMAP. Protocolo HTTP. Proxy que cifre. Sistema de ficheros distribuido Notas de transparencia 12: Problemas con cerrojos. Trasiego en sistemas con cache (AFS, DFS, Coda,..). Fija el formato de buzón. Utilizable por agentes de usuario sin protocolo de consulta.
Correo electrónico 8 Protocolos POP Notas de transparencia 13: Protocolos POP, POP2, POP3 (Recomendado: RFC 1039). Minimalistas. Fases de autorización, transacción, actualización. Diseñados para transferir mensajes individuales o conocer su tamaño. Permite conocer el número y la longitud de los mensajes. Actualización al salir. Extensión para OTP RSA-MD5 (APOP: RFC 1039). Extensión para otros mecanismos de autentificación y cifrado (RFC 1734). Extensión para boletines (RFC 1082).
Correo electrónico 9 Sesión de POP3 Notas de transparencia 14: >+OK UCB Pop server (version 1.831beta) at selva starting. <USER joaquin >+OK Password required for joaquin. <PASS ZeKReT000 >+OK joaquin has 2 message(s) (23520 octets). <STAT >+OK 2 23520 <LIST >+OK 2 messages (23520 octets) >1 18008 >2 5512 >. Sesión de POP3 (2) Notas de transparencia 15: <RETR 1 >+OK 18008 octets >From: alguien@sitio.org >... >. <DELE 1 >+OK Message 1 has been deleted. <QUIT >+OK Pop server at selva signing off.
Correo electrónico 10 Protocolos IMAP Notas de transparencia 16: Procolos IMAP, IMAP2, IMAP2bis, IMAP3 (incompatible), IMAP4, IMAP4rev1 (Recomendado: RFC 2060). Varios buzones (para los que acceden desde máquinas distintas). Búsqueda textual (conoce estructura MIME). Fuera de línea para resincronizar buzones. Asíncrono: llegada de mensajes, alteración de estado. Todo intercambio se identifica con etiqueta. Creación, borrado, renombrado de buzones. Suscripción, acceso a noticias. Extensión para otros mecanismos de autentificación y cifrado.
Correo electrónico 11 Sesión de IMAP4 (1) Notas de transparencia 17: > * OK nova.eurosur.org IMAP4 Service 8.3(144) at Tue, 11 May 1999 10:58:00 +0200 (CEST) < A0001 CAPABILITY > * CAPABILITY IMAP4 STATUS SCAN SORT AUTH-LOGIN > A0001 OK CAPABILITY completed < A0002 LOGIN "joaquin" "ZeKReT0000" > A0002 OK LOGIN completed < A0003 SELECT INBOX > * 2 EXISTS > * OK [UIDVALIDITY 895218457] UID validity status > * FLAGS (\Answered \Flagged \Deleted \Draft \Seen) > * OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Draft \Seen)] Permanent flags > * OK [UNSEEN 1] 1 is first unseen > * 2 RECENT > A0003 OK [READ-WRITE] SELECT completed
Correo electrónico 12 Sesión de IMAP4 (2) Notas de transparencia 18: < A0004 FETCH 1:2 RFC822.SIZE > * 1 FETCH (RFC822.SIZE 635) > * 2 FETCH (RFC822.SIZE 635) > A0004 OK FETCH completed < A0005 FETCH 1 FLAGS > * 1 FETCH (FLAGS (\Recent)) > A0005 OK FETCH completed < A0006 FETCH 1 RFC822.HEADER > * 1 FETCH (RFC822.HEADER {635} > From: jeta@vendotodo.com >... > ) > A0006 OK FETCH completed < A0007 FETCH 1 RFC822.TEXT.PEEK > * 1 FETCH (RFC822.TEXT {45} > Estimado cliente... > ) > A0007 OK FETCH completed Sesión de IMAP4 (3) Notas de transparencia 19: < A0008 STORE 1 +FLAGS.SILENT (\Deleted) > A0008 OK STORE completed < A0009 EXPUNGE > * 1 EXPUNGE > * 1 EXISTS > * 1 RECENT < A0016 LOGOUT > * BYE nova.eurosur.org IMAP4 server terminating connection > A0016 OK LOGOUT completed
Correo electrónico 13 Protocolo HTTP Notas de transparencia 20: Protocolo HTTP con formularios. Accesible universalmente. Visión hipertexto. Generalmente pasarelas a POP, IMAP, SMTP. A veces acceso directo al buzón o a transformación a HTML. Agentes de usuario Notas de transparencia 21: Habla con la persona. Extrae mensajes de buzón de entrada (fichero, POP, IMAP). Pone mensajes en Colas de salida (sobretodo si desconectado). Se pasan por SMTP ó ESMTP a agente de transferencia. Se ejecuta agente de transferencia. Ej: mutt, firefox, kmail, evolution. Si el agente de usuario no sabe POP/IMAP, puede colocarse un intermediario, como fetchmail.
Correo electrónico 14 Sesión de ESMTP (RFC 821, 1869, 2821) Notas de transparencia 22: > 220 itaca.dit.upm.es ESMTP Sendmail 8.9.1a/8.9.1; Tue, 11 May 1999 09:50:19 +0200 (MET DST) < EHLO colibri.dit.upm.es > 250-itaca.dit.upm.es Hello joaquin@colibri.dit.upm.es [138.4.4.222], pleased to meet you > 250-EXPN > 250-8BITMIME > 250-SIZE > 250-ETRN > 250 HELP < MAIL From: joaquin@dit.upm.es SIZE=381 > 250 joaquin@dit.upm.es... Sender ok < RCPT To: tomas@dit.upm.es > 250 tomas@dit.upm.es... Recipient ok < DATA > 354 Enter mail, end with "." on a line by itself < From: Joaquin Seoane <joaquin@dit.upm.es> <... <. > 250 JAA13855 Message accepted for delivery < QUIT > 221 itaca.dit.upm.es closing connection
Correo electrónico 15 Direcciones Notas de transparencia 23: No conviene ligar direcciones a máquinas. joaquin@colibri.dit.upm.es es móvil. joaquin@es es enorme. joaquin@upm.es demasiado grande? joaquin@dit.upm.es departamental. Registros MX en DNS Para dit.upm.es: MX=sanson.dit.upm.es,10 MX=yeti.dit.upm.es,20 Puede haber esquemas que no sean por dominios: Ruta: goya!mcsun!uunet!cs.utexas.edu!torn!clewis Seudodominio: 913367333@fax.dit.upm.es Se pueden reescribir en agente de transferencia (enmascarar, etc). no
Correo electrónico 16 Agentes de transferencia Notas de transparencia 24: Análisis de direcciones con posible reescritura. Encaminamiento. Tratamiento de alias y listas. Producción de mensajes de error. Posibles transformaciones del mensaje. Ej: sendmail, postfix, qmail, exim, smail, zmailer, courier, nullmailer, ssmtp,...
Correo electrónico 17 Distribución de agentes de transferencia Notas de transparencia 25: Todo agente solía dar curso a todo mensaje spam. Agentes alternativos de dominio, por tolerancia a fallos (varios MX). Pueden colocarse entre dominios de protección (proxy). En estaciones de trabajo (si agente de usuario no soporta SMTP). Suele utilizarse un agente intermedio como duende en estaciones: Salida más rápida, insiste periódicamente. Conviene inteligencia centralizada: Sólo uno conoce los alias. Sólo sabe encaminar fuera de internet. Sólo uno acepta mensajes externos. Las estaciones pueden mandar todo a un smarthost.
Correo electrónico 18 Alias Notas de transparencia 26: Postmaster (obligatorio) root, news, uucp, webmaster, hostmaster,... Pequeñas listas. Programas. Ejemplo pequeño para sendmail (y casi todos): postmaster: root webmaster: root root: joaquin,tomas prueba-list: :include:/var/lib/majordomo/lists/prueba salseros: " /var/lib/mailman/mail/wrapper post salseros"
Correo electrónico 19 Transportes o agentes de entrega Notas de transparencia 27: Pueden ser programas separados o componentes del agente de transferencia. Local (deliver, mail.local, procmail (filtra y clasifica),...) SMTP o ESMTP (internos a sendmail). BSMTP (SMTP empaquetado) UUCP (uux). Fax (faxmail). News (inews). Programa (sh). Ejemplos de encaminamientos: master.etsit.upm.es local selva.master.etsit.upm.es uucp [0-9]* fax otros smtp Ejercicios Notas de transparencia 28: DNS y correo. Servidores de buzones. Clientes. Agente de transferencia.
Correo electrónico 20 Registros MX Notas de transparencia 29: Ver registros MX para dominio master.etsit.upm.es. Ver registros MX para dominio etsit.upm.es. Ver registros MX para dominio upm.es. Ver registros MX para dominio es. Ver que no hay registros MX para dominios locales: master11.master.etsit.upm.es. Usar host -t mx dominio. Poner registros MX para los departamentos: El servidor de correo principal: el de cuentas. MX auxiliar: el de la empresa: @ IN MX 10 m3 @ IN MX 20 central.acme. Servidores de buzones Notas de transparencia 30: Instalar dovecot
Correo electrónico 21 Ejercitar servidor de POP Notas de transparencia 31: Conectarse con telnet servidor_correo pop-3 o con telnet servidor_correo 110 (ver en /etc/services). Declarar usuario con user usuario. Declarar contraseña con pass contraseña. Ver número de mensajes y tamaño con stat. Listar mensajes con list. Leer alguno, si lo hay, con retr número. Salir con quit.
Correo electrónico 22 Ejercitar servidor de IMAP Notas de transparencia 32: Conectarse con telnet servidor_correo 143 (o imap2). No olvidar etiquetas antes de órdenes. Declarar usuario con etiqueta login usuario contraseña. Seleccionar buzón con etiqueta select inbox. Ver estado de un mensaje con etiqueta fetch número flags. Ver cabecera de un mensaje con etiqueta fetch número rfc822.header. Ver cuerpo de un mensaje con etiqueta fetch número rfc822.text.peek. Salir con etiqueta logout. Mutt Notas de transparencia 33: Instalar mutt. Asegurarse de que la variable EDITOR tiene nuestro editor preferido (y LANG nuestro idioma preferido). Configurar para que use servidor de IMAP departamental en /etc/muttrc o.muttrc:
Correo electrónico 23 Mozilla thunderbird Notas de transparencia 34: Installar thunderbird (si no lo está). En Edit-<Preferences-<Mail&groups-<Identity poner datos de usuario (especalmente campo From: y fichero de firma. En Edit-<Preferences-<Mail&groups-<Mail server elegir servidor, cuenta y protocolo (POP o IMAP) Comprobar.
Correo electrónico 24 Agente de transferencia Notas de transparencia 35: En servidor de correo Instalar postfix. Editar /etc/postfix/main.cf: myorigin=$mydomain. mydestination=$myhostname, $mydomain, localhost.$mydomain. masquerade_domains=$mydomain masquerade_exceptions=root,mail,news,uucp alias_maps=hash:/etc/aliases a. alias_database=hash:/etc/aliases b. relay_domains=acme. a para postalias /etc/aliases. b para newaliases.
Correo electrónico 25 En servidor de correo Notas de transparencia 36: Instalar postfix. Editar /etc/postfix/main.cf: myorigin=$mydomain. mydestination=$myhostname, $mydomain. masquerade_domains=$mydomain masquerade_exceptions=root,mail,news,uucp alias_maps=hash:/etc/aliases a. alias_database=hash:/etc/aliases b. relay_domains=acme. a para postalias /etc/aliases. b para newaliases. Agente de transferencia en estación Notas de transparencia 37: Instalar ssmtp: Muy limitado. Sólo cliente. Editar /etc/ssmtp/ssmtp.conf: mailhub=correo.ventas.acme. RewriteDomain=ventas.acme. root=postmaster@ventas.acme.
Correo electrónico 26 Registros MX Notas de transparencia 38: Consultarlos Ver registros MX para dominio master.etsit.upm.es. Ver registros MX para dominio etsit.upm.es. Ver registros MX para dominio upm.es. Ver registros MX para dominio es. Ver que no hay registros MX para dominios locales: master11.master.etsit.upm.es. Usar para ello nslookup con set type=mx o también host -t mx dominio. Poner registros MX para los departamentos Notas de transparencia 39: El servidor de correo principal: el de cuentas. MX auxiliar: el de la empresa: @ @ IN MX 10 m3 IN MX 20 central.acme.
Correo electrónico 27 Servidores POP e IMAP Notas de transparencia 40: Instalación Instalar dovecot-pop3d : secure POP3 server that supports mbox and maildir mailboxes. Instalar dovecot-imapd : servidor de IMAP seguro que permite usar buzones mbox y maildir. Ejercitar servidor de POP Notas de transparencia 41: Conectarse con telnet servidor pop-3 o con telnet servidor 110 (ver en /etc/services). Declarar usuario con user usuario. Declarar contraseña con pass contraseña. Ver número de mensajes y tamaño con stat. Listar mensajes con list. Leer alguno, si lo hay, con retr número. Salir con quit.
Correo electrónico 28 Ejercitar servidor de IMAP Notas de transparencia 42: Conectarse con telnet servidor 143 (o imap2). No olvidar etiquetas antes de órdenes. Declarar usuario con etiqueta login usuario contraseña. Seleccionar buzón con etiqueta select inbox. Ver estado de un mensaje con etiqueta fetch número flags. Ver cabecera de un mensaje con etiqueta fetch número rfc822.header. Ver cuerpo de un mensaje con etiqueta fetch número rfc822.text.peek. Salir con etiqueta logout.
Correo electrónico 29 Agentes de usuario Notas de transparencia 43: Mutt Instalar mutt. Asegurarse de que la variable EDITOR tiene nuestro editor preferido (y LANG nuestro idioma preferido). Configurar para que use servidor de IMAP departamental en /etc/muttrc o.muttrc: set spoolfile="{correo.ventas.acme}inbox" set folder="{correo.ventas.acme}~/mbox" Configurar para que use servidor de POP departamental: set pop_host=correo.ventas.acme y traer correo POP con G (mejor imap).
Correo electrónico 30 thunderbird Notas de transparencia 44: Installar thunderbird (si se tienen X). En Edit-<Preferences-<Mail&groups-<Identity poner datos de usuario (especalmente campo From: y fichero de firma. En Edit-<Preferences-<Mail&groups-<Mail server elegir servidor, cuenta y protocolo (POP o IMAP) Comprobar. Evolution Notas de transparencia 45: Installar Evolution (si se tienen X)....
Correo electrónico 31 Agente de transferencia Notas de transparencia 46: En servidor de correo Instalar postfix. Editar /etc/postfix/main.cf: myorigin=$mydomain. mydestination=$myhostname, $mydomain, localhost.$mydomain. masquerade_domains=$mydomain masquerade_exceptions=root,mail,news,uucp alias_maps=hash:/etc/aliases a. alias_database=hash:/etc/aliases b. relay_domains=acme. a para postalias /etc/aliases. b para newaliases.
Correo electrónico 32 En servidor de correo Notas de transparencia 47: Instalar postfix. Editar /etc/postfix/main.cf: myorigin=$mydomain. mydestination=$myhostname, $mydomain. masquerade_domains=$mydomain masquerade_exceptions=root,mail,news,uucp alias_maps=hash:/etc/aliases a. alias_database=hash:/etc/aliases b. relay_domains=acme. a para postalias /etc/aliases. b para newaliases. Agente de transferencia en estación Notas de transparencia 48: Instalar ssmtp: Muy limitado. Sólo cliente. Editar /etc/ssmtp/ssmtp.conf: mailhub=correo.ventas.acme. RewriteDomain=ventas.acme. root=postmaster@ventas.acme.
Correo electrónico 33 Ejercitar servidor de SMTP de intercambiador principal Notas de transparencia 49: Conectarse con telnet servidor 25 o (smtp). Pedir ayuda con help. Saludar ayuda con helo máquina. Enviar un mensaje con mail from: remitente, seguido de rcpt to: destinatario y de data y las cabeceras y cuerpo, terminado con una línea con un punto solamente. Salir con quit. Verificar el envío.