viernes, 7 de marzo de 2014

Algo de teoría de SMTP

Postfix

Postfix

¿Cuáles son las diferencias entre un MUA, DA, AA, MTA, MSA? MUA: Permite que los usuarios compongan y lean correos. DA: Acepta el correo de un MTA, y almacena los mensajes en los mailbox apropiados de los destinatarios.
  • Los MTA incluyen usualmente un DA.
  • El almacenamiento puede ser en formato mbox, o maildir.
AA: (Opcional), permite conectar los MUA con el DA a través de los protocolos IMAP o POP3. MSA: Acepta mensajes desde el MUA, y los transporta al MTA. MTA: Enruta mensajes entre MTA's usando el protocolo SMTP.
  • Recibe correos desde otros servidores de correo.
  • Reescribe cabeceras a una forma para poder ser enviadas.
  • Reenvia los mensajes al siguiente servidor de correo responsable.
¿Qué es un registro MX, y por qué son importante en envio de correo? Específica como debe ser encaminado un correo electrónico en Internet. Los registros MX apuntan a los servidores a los cuales envían un correo electrónico, y a cuál de ellos debería ser enviado en primer lugar, por prioridad. Cuando un mensaje de correo electrónico es enviado a través de internet, el remitente (el agente de transferencia de correo - MTA Mail Transfer Agent) hace una petición al DNS solicitando el registro MX para los nombres de dominio de destino. Esta consulta devuelve una lista de nombres de dominios de servidores de intercambio de correo que aceptan correo entrante para dicho dominio, junto con un número de preferencia. Entonces el agente emisor (o remitente) intenta establecer una conexión SMTP (Simple Mail Transfer Protocol - Protocolo Simple de Transferencia de Correo) hacia uno de estos servidores, comenzando con el que tiene el número de preferencia más pequeño, y enviando el mensaje al primer servidor con el cual puede establecer una conexión. Si no hay registros MX disponibles, una segunda petición es solicitada al registro A (A Record) del dominio en su lugar. El mecanismo MX permite usar múltiples servidores de correo para un solo dominio y establece el orden en el cual deberían ser interrogados, aumentando la probabilidad que el correo pueda ser entregado y proporcionando la capacidad de distribuir el procesamiento del correo entrante a través de múltiples servidores físicos. Prioridad MX Un punto principal de confusión es el funcionamiento del sistema de selección de prioridad MX. La prioridad relativa de un servidor MX viene determinada por el número de preferencia presente en el registro MX del DNS. Cuando un cliente remoto (habitualmente otro servidor de correo) hace un MX lookup (operación de búsqueda) para el nombre de dominio, este consigue una lista de servidores y sus números de preferencias. El registro MX con un número de preferencia más pequeño tiene la mayor prioridad y será el primero en ser probado. El cliente remoto continuará recorriendo, de mayor a menor prioridad, la lista de servidores hasta que logre entregar con éxito el mensaje, o éste sea permanentemente rechazado debido a un mensaje de servidor inalcanzable o a que la cuenta de correo no existe en ese servidor. Si hay más de una sola entrada con el mismo número de preferencia, todos ellos deben ser probados antes de desplazarse a una entrada con menor prioridad. Una técnica habitual de los spammers es conectarse al servidor de menor prioridad MX de un dominio (los que poseen el valor numérico más grande) como intento de evitar los filtros anti-spam que pueden ser ejecutados en el servidor MX primario (de más alta prioridad). Los virus informáticos también han sido conocidos por emplear esta técnica en un esfuerzo por evitar los programas antivirus. ¿Cuáles son los elementos de un correo? Tiene 3 partes:
  • Envelope: Determina a donde será enviado el mensaje, y si no se envia, a quién se le debe devolver el mensaje. Es invisible para el usuario.
  • Headers: Colección clave/vaor que mantiene información de fecha de envio, MTA's transitados, y de donde viene y a donde va el mensaje.
  • The body of the message: El contenido del mensaje enviado.
¿Dónde monitorear los correros que llegan al servidor y verificar sus cabeceras? En CentOS: /var/log/maillog ¿Qué es el protocolo SMTP y en qué consiste? Protocolo para el envio de correos. Se utiliza en:
  • UA -to-MSA or -MTA.
  • MSA-to-MTA.
  • MTA- or MSA-to-antivirus or -antispam.
  • MTA-to-MTA.
  • MTA-to-DA.
Un MTA se conecta a otro MTA y dice: "Aqui hay un mensaje, por favor envielo a user@your.domain", y el otro MTA dice "OK". Comandos SMTP: EHLO hostname Identifica el host que se quiere conectar si habla ESMTP. MAIL FROM: revpath Define al recipiente. RCPT TO: fwdpath Define el destinatario. Pueden existir varios comandos RCPT. VRFY address Verifica que la dirección es válida. EXPN address Muestra la expansión de los aliases y mapeos de .forward DATA Cuerpo del mensaje. QUIT Finaliza la conexión. Códigos de error SMTP: 250 es el código de estado que se ha despachado correctamente. 450 es un error temporal y el mensaje pasa a la cola de diferidos. 550 es un error permanente y el correo es removido de la cola y no se despacha. ¿Cuáles son las características de un buen diseño de un sistema de correo?
  • Jerarquía de servidores para correo entrante y saliente.
  • Filtrar spam y viruses antes de admitir mensajes a la red.
  • Filtrar spam, viruses, y filtración de datos antes de enviar mensajes.
  • Un MTA de backup para correos salientes que fallan en el primer intento.
  • Un sistema de logs para cosas legales.
  • Un mailbox para cada usuario.
  • IMAP o POP integrado a las PC's.
¿Que cosas se deben obtener al diseñar un sistema de servidores de correo de salida?
  • Fallback MTA para mensajes que fallaron al primer envio.
Cada mensaje debería asegurar:
  • Que el emisor no se encuentra en una lista negra.
  • Que el registro SPF sea OK.
  • Que los emisores sean válidos.
  • No exista malware embebido en el mensaje.
  • El mensaje no sea spam.
¿Qué son los aliases, para que sirven, y que tipos de aliases existen? Permiten que el correo sea reenrutado por el sysadmin o por usuarios comunes a listas de correo, a otras máquinas, o permitir que un usuario por más de un solo nombre. Son soportador por:
  • Mapas en archivos planos generados por el archivo /etc/aliases
  • Cada MTA puede definir sus propias DB aliases
  • LDAP DB
Además:
  • Los MTA definen sus aliases en /etc/alises, y solo se aplican a los correos que se consideran locales
  • Los MUA definen sus aliases en .forward, y se aplican a todo el correo de un usuario en particular.
Su formato es: local-name: destinatario1, destinatario2,... donde, local-name es la dirección original que debe ser igual a los mensajes de entrada, y la lista de destinatarios contiene cada dirección de los destinatarios u otros aliases. También, los aliases pueden referirse a:
  • Un archivo conteniendo una lista de direcciones.
    • Debe ser configurado en /etc/aliases o .forward(en el caso de un usuario), crear el archivo y darle permisos al usuario que va a manejar esa lista de destinatarios.
    • Se usa la directiva :include:
      • sa-book: :include:/usr/local/mail/ulsah.authors
  • Un archivo en los cuales los mensajes deberían ser agregados.
    • Si el archivo es una ruta absoluta, los mensajes serán agregados al archivo especificado.
    • Debe ser configurado en /etc/aliases o .forward(en el caso de un usuario).
      • Si referenciado en /etc/aliases, setuid pero no ejecutable, y propietario el usuario por defecto del MTA>
      • Si es referenciado en .forward, debe tener permisos de escritura y propietario por el destinatario, y debe tener una entrada en /etc/passwd y tener una shell habilitada.
  • Un comando en el cual el mensaje debería ser el input.
    • autoftp: "|/usr/local/bin/ftpserver"
Desde el punto de vista de los agentes de correo, los aliases reemplazan a /etc/passwd. Por tanto: david: david@unsitio.com previene que el usuario local david reciba correo alguno porque se reenvia a david@unsitio.com en vez del usuario local david. ¿Qué es el SPAM, como se origina? El spam es correo masivo no solicitado por el destinatario, o dueño de la cuenta de correo. ¿Técnicas para evitar el SPAM, cuando filtrar ?
  • Asegurarse que se utilice los comandos SMTP de manera correcta.
    • Los spammers no utilizan los comandos SMTP de manera correcta.
  • Utilizar listas negras públicas.
  • Utilizar autenticación en la red interna para enviar correo.
  • SpamAssasin
  • Utilizar listas blancas para validar direcciones seguras.
  • SPF.
    • Permite verificar la dirección del emisor y comparar si es correcta.
    • No funciona cuando se utilizan relays.
  • Listas grises.
    • Bloquean un remitente por un tiempo determinado para que reintente y aceptar sus mensajes.
¿Cuál es la implicancia de estar en una lista negra? Estas listas son consultadas por los servidores de Internet para aceptar o denegar la recepción de un mensaje de correo electrónico. De esta forma se reduce bastante la entrada de ‘correo no deseado‘ en los servidores que tengan activado este filtro de listas negras. Las organizaciones que administran y mantienen estas listas negras no pueden adivinar si el envío de ese correo no solicitado se está efectuando de forma voluntaria o si se está enviando el correo sin que lo sepa el usuario que tiene asignada esa IP al conectarse a Internet. ¿Qué se debe hacer en caso de entrar en una lita negra, listar técnicas?
  • Evitar que los mensajes parezcan de spam:
    • No insertar una imagen grande.
    • Un correcto 'character set'.
    • No insertar enlaces con direcciones IP. Deben tener un dominio asociado.
    • Utilizar métodos de autenticación.
    • Verificar que tu nombre de dominio de emisor y el servidor correo tengan la misma dirección IP asociado en el registro MX.
Postfix: ¿ Cómo es la arquitectura de Postfix? Es compuesto por varios pequeños programas, que cooperativamente envian, reciben y despachan localmente correos.
  • smtpd:
    • Recibe correo entrante a través de SMTP.
    • Verifica que los clients se encuentren autorizados a enviar por el MTA.
  • pickup:
    • Recibe correo entrante que tiene origen local.
  • cleanup:
    • Recibe el correo de smtpd y pickup.
    • Añade cabeceras faltantes y reescribre las direcciones de acuerdo al 'canonical name'.
  • qmgr:
    • Mantiene 5 colas que contiene correo esperando ser enviado utilizando una estrategia FIFO:
      • incoming
      • active
      • deferred
      • hold
      • corrupt
  • bounce:
    • Correo que no se pudo enviar.
  • smtp:
    • Envia el correo.
¿Cuáles son las colas de postfix y como se relacionan? Del cleanup pasa a la cola de incoming, luego entra a la cola de active, y si el envio se da avanza a smtp; de otra manera pasa a la cola deferred que reintenta el envio un número de veces, y si no se logra entra a bounce. ¿Cuáles son los comandos más comunes de postfix? postfix – inicia y para el sistema de correo. postalias – construye, modifica y consulta la tabla de aliases. postcat – muestra el contenido de las colas. postconf – muestra y edita el main.cf.
  • postconf -d, muestra los valores por defecto.
  • postconf -n, muestra los parámetros que varian de la configuración por defecto.
postmap – construye, modifica y consulta la tabla de búsqueda. postsuper – administra las colas de correo. ¿Cuáles son los parámetros básicos de un postfix y en que consiste? mydomain = {domain_name}, define la parte de dominio del hostname. myorigin = $mydomain, define el dominio de correo que se asocia a los correos sin 'canonical name' mydestination = $myhostname, localhost.$mydomain, localhost, especifica los dominios de correo que son locales. Si la dirección del destinatario de un mensaje tiene mydestination como su dominio de correo, el mensaje se entrega a través del programa local para el usuario correspondiente. myhostname = {hostname.domain_name}, especifica el 'canonical name' del host.