Curso SMTP

  • 4,395 views
Uploaded on

Curso básico del protocolo SMTP (Postfix) y su integración con Mailscanner y Amavis

Curso básico del protocolo SMTP (Postfix) y su integración con Mailscanner y Amavis

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
4,395
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
428
Comments
1
Likes
3

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. SMTP Miguel Ángel Nieto <miguelangel@irontec.com> Irontec – Internet y Sistemas sobre GNU/Linux
  • 2. Irontec – Curso SMTP Introducción DNS ● El DNS evita que tengamos que aprender cientos de IP. ● También nos ayuda a encontrar los servidores de correo. ● Los servidores DNS escuchan en el puerto 53 UDP. ● Técnicamente es posible imaginar Internet sin servidores DNS. ● ¿Alguno se sabe la IP de google.com de memoria? :) 2
  • 3. Irontec – Curso SMTP Introducción DNS ● Los dominios pueden incluir letras, número y “-” como único simbolo ● No pueden empezar por “-” y deben tener al menos un caracter www.irontec.com www es un subdominio irontec es un subdominio com es un dominio de nivel superior (TDL) ● www.irontec.com Es conocido como FQDN (también llamado Fully Qualified Domain Name) ● ¿Cuál es el FQDN de nuestro host? 3
  • 4. Irontec – Curso SMTP Introducción DNS ● Existen 13 servidores en todo el mundo conocidos como DNS Raíz ● Estos conocen dónde están los servidores de nombres autoritarios para cada zona de alto nivel ● Su nombre es letra.root-servers.org, donde letra va de A – M http://es.wikipedia.org/wiki/Servidor_Ra%C3%ADz ● Suelen recibir bastantes ataques con intención de tirarlos abajo 4
  • 5. Irontec – Curso SMTP Introducción DNS ● En un primer lugar se hacia uso del fichero /etc/hosts almacenando todos los dominios conocidos ● Con el crecimiento que ha tenido Internet dicho fichero dejó de ser práctico ● Es posible desactivar el uso de hosts o de los DNS en nuestro equipo ● 5
  • 6. Irontec – Curso SMTP Introducción DNS ● Existen 3 elementos fundamentales – Clientes DNS, que funcionan de forma transparente al usuario – Servidores DNS (BIND, PowerDNS, djbdns, etc.) – Zonas de autoridad. Cada zona abarca al menos un dominio. ● Montaremos un servidor DNS y haremos uso de el a lo largo del curso. 6
  • 7. Irontec – Curso SMTP Registros DNS ● Existen varios tipos de registros DNS a consultar, los más imporantes son: – A – MX – CNAME – TXT – NS – LOC – SOA – PTR 7
  • 8. Irontec – Curso SMTP Registro A ● El registro A es el que más utilizamos a lo largo del día ● Nos ayuada a saber la IP que corresponde a un dominio ● Es necesario para navegar, si no deseamos terminar memorizando miles de Ips en nuestra cabeza ● Para un dominio, pueden existir varias Ips. ¿Cuál puede ser la razón para este comportamiento? $ host -t a google.es google.es has address 72.14.221.104 google.es has address 66.249.93.104 google.es has address 216.239.59.104 8
  • 9. Irontec – Curso SMTP Registro MX ● Gracias a este registro sabemos a que servidor entregar el correo ● El registro MX nos devuelve un nombre de dominio ● Para un registro MX también podemos tener distintas respuestas ● El registro A y el registro MX no tiene porque tener la misma máquina destino. Podemos tener la web en un servidor y el correo en otro. ¿Con que IP debemos comunicarnos para entregar un correo a gmail.com? 9
  • 10. Irontec – Curso SMTP Registro CNAME ● Cname es un Alias ● Una máquina puede ser accedida desde distintos nombres. Por ejemplo los VirtualHost de Apache. ● Un Cname apunta a otro dominio, por ejemplo – miguelangelnieto.net es un dominio FQDN – wiki.miguelangelnieto.net es un CNAME que nos enlaza a miguelangelnieto.net – Por esa razón, tanto uno como otro tienen la misma ip $ host -t a wiki.miguelangelnieto.net wiki.miguelangelnieto.net is an alias for miguelangelnieto.net. miguelangelnieto.net has address 209.40.204.98 10
  • 11. Irontec – Curso SMTP Registro TXT ● El registro TXT nos permite incluir texto ● Se suele usar para indicar datos extra del dominio que no tengan cabida los registros DNS ● Gracias a SPF el registro TXT se utiliza también para evitar el SPAM y la posible suplantación de identidad al enviar un correo $ host -t txt spf.irontec.com spf.irontec.com descriptive text quot;v=spf1 a mx a:vpncore.irontec.com a:miri.irontec.com -allquot; $host -t txt miguelangelnieto.net miguelangelnieto.net descriptive text quot;v=spf1 a mx ~allquot; miguelangelnieto.net descriptive text quot;Miguel Angel Nieto - http://miguelangelnieto.netquot; ● ¿Qué nos dicen esos registros SPF? Googlead :P 11
  • 12. Irontec – Curso SMTP Registro NS ● NS = Name Server ● Con NS asociamos un servidor de nombres con un dominio en concreto ● Un dominio puede tener una cantidad cualquiera de servidores de nombres $ host -t ns miguelangelnieto.net miguelangelnieto.net name server ns1.vpslink.com. miguelangelnieto.net name server ns2.vpslink.com. ● Es recomendable que sean como mínimo dos y que estos estén fisicamente separados 12
  • 13. Irontec – Curso SMTP Registro LOC ● Sirve para indicar las coordenadas del dominio, que suele corresponder con la localización de la empresa o del servidor que aloja el contenido host -t loc irontec.com irontec.com location 27 53 36.240 N 82 31 10.920 W 7.00m 100m 100m 2m 13
  • 14. Irontec – Curso SMTP Registro SOA ● Proporciona información sobre la zona $ host -t soa irontec.com irontec.com has SOA record ns.irontec.com. sistemas.irontec.com. 2009022502 10800 7200 604800 172800 ● Veremos el significado de cada valor con la configuración de nuestro propio DNS 14
  • 15. Irontec – Curso SMTP Registro PTR ● PTR es un registro inverso ● Sabemos la IP, pero queremos conocer el dominio ● Se suele usar mucho en servidores de correo. Hay algunos servidores que si tu dominio no dispone de PTR, se rechazan los correos host -t ptr 209.40.204.98 98.204.40.209.in-addr.arpa domain name pointer miguelangelnieto.net. 15
  • 16. Irontec – Curso SMTP Cacheo de DNS ● Casi todos los servidores DNS que consultamos cachean las respuestas ● Gracias a esto las respuestas son más rapidas y los servidores soportan menos carga ● Pero si realizamos un cambio DNS de nuestros dominios, estos tardarán en llegar a los usuarios hasta que los cacheos desaparezcan y los cambios se repliquen 16
  • 17. Irontec – Curso SMTP Cacheo de DNS ● Se puede comprobar el tiempo que tarda en resolver una consulta mediante el comando dig ● Primera resolución a esdebian.org ;; Query time: 188 msec ● Seguna resolución a esdebian.org ;; Query time: 8 msec ● Se nota una ligera diferencia. Comprobad si nuestro DNS actual cachea resultados. 17
  • 18. Irontec – Curso SMTP Elegir un servidor DNS ● Existen algunas utilidades en Internet que hacen comparativas del tiempo de respuesta de los DNS ● Nos podemos aprovechar de dichas utilidades para usar en cada momento el DNS que mejor resultados nos de http://bandaancha.eu/analizador-dns ● Los servidores DNS se añaden a resolv.conf ● Cambiad de dns y resolved dominios, para notar las posibles diferencias 18
  • 19. Irontec – Curso SMTP Protocolo SMTP ● SMTP (simple mail transfer protocolo) ● RFC 2821 ● Puerto TCP 25 por defecto. Es posible cambiarlo, pero nadie excepto nosotros sabría el puerto de escucha ● Es un protocolo sencillo y simple, creado para ser agil y sin tener en cuenta la seguridad ● Esto ha provocado el crecimiento de ataques a través del correo ● Spam/Virus las mayores amenazas 19
  • 20. Irontec – Curso SMTP Protocolo SMTP ● Existen varios elementos que intervienen en el envio y entrega de un correo – MTA: es un servidor de correo. Puede ser intermedio o destino final. Existen muchos, Postfix, Qmail, Sendmail y... tengo que decirlo... Exchange. – MUA: mail user agent. Es el cliente de correo utilizado por el cliente. Evolution, Thunderbird... Outlook. – MDA: mail delivery agent. Es una aplicación, generalmente instalada junto al MTA, que se encarga de entregar el correo en el buzón del usuario 20
  • 21. Irontec – Curso SMTP Protocolo SMTP ● Cuando un MTA no es el destinatario de un correo, este se lo debe entregar a otro y así hasta llegar a su destino. ● Este comportamiento es conocido como Relay. ● A la hora de configurar el Relay de nuestro servidor hay que tener especial cuidado en no convertirnos en un OpenRelay o terminaremos siendo fuente de Spam. 21
  • 22. Irontec – Curso SMTP Protocolo SMTP ● Contenido del Mensage (RFC 822): – Está formado por cabeceras, una línea en blanco y el cuerpo. – Hay un conjunto de cabeceras predefinidas. Ejemplos: ● From: Dice quien escribió el mensaje. ● Sender: Dice quien envió realmente el mensaje. ● Reply-To: Dice a quien se debe responder. – La sintaxis es: Nombre: valor – Si el valor debe ocupar varias líneas basta con empezar con un espacio a partir de la segunda. – Las definidas por el usuario deben empezar con X-. 22
  • 23. Irontec – Curso SMTP Protocolo SMTP punisher:~$ telnet irontec.com 25 Trying 82.194.71.224... Connected to irontec.com. Escape character is '^]'. 220 ironmail.irontec.com ESMTP Postfix (Debian/GNU) helo irontec.com 250 ironmail.irontec.com mail from: iker@irontec.com 250 2.1.0 Ok rcpt to: miguelangel@irontec.com 250 2.1.5 Ok data 354 End data with <CR><LF>.<CR><LF> Subject: Esto es una prueba From: iker@irontec.com To: elamo@irontec.com Hola, Este mensaje es una prueba. . 250 2.0.0 Ok: queued as EE7E717D3E1 quit 221 2.0.0 Bye Connection closed by foreign host. 23
  • 24. Irontec – Curso SMTP Protocolo SMTP Return-Path: <iker@irontec.com> X-Original-To: miguelangel@irontec.com Delivered-To: miguelangel@irontec.com Received: from irontec.com (106.85-87-85.dynamic.clientes.euskaltel.es [85.87.85.106]) by ironmail.irontec.com (Postfix) with SMTP id EE7E717D3E1 for <miguelangel@irontec.com>; Sun, 8 Mar 2009 13:33:24 +0100 (CET) Subject: {Spam?} Esto es una prueba From: iker@irontec.com To: elamo@irontec.com Message-Id: <20090308123330.EE7E717D3E1@ironmail.irontec.com> Date: Sun, 8 Mar 2009 13:33:24 +0100 (CET) X-MailScanner-ID: EE7E717D3E1.E1FC5 X-Irontec-MailScanner: Not scanned: please contact your Internet E-Mail Service Provider for details X-Irontec-MailScanner-SpamCheck: spam, SpamAssassin (no almacenado, puntaje=4.103, requerido 4, BAYES_50 0.00, RDNS_DYNAMIC 0.10, RELAYCOUNTRY_ES 0.00, SPF_FAIL 4.00, SPF_HELO_FAIL 0.00) X-Irontec-MailScanner-SpamScore: ssss X-Irontec-MailScanner-From: iker@irontec.com X-Irontec-MailScanner-To: miguelangel@irontec.com X-Spam-Status: Yes X-Evolution-Source: imap://miguelangel@ironmail.irontec.com/ Mime-Version: 1.0 24
  • 25. Irontec – Curso SMTP Protocolo SMTP ● http://www.septeto.com/documentos/smtp.html – 2xx todo funciona correctamente – 3xx se acetó el comando pero se esperaban mas datos – 4xx error temporal, el cliente tendrá que reintentarlo – 5xx el comando se rechazo, no habrá reintento ● Los mensajes se suelen reintentar una media de 4 días. Por lo que si el servidor se cae, hay tiempo suficiente para ponerlo en marcha y no perder ningún mensaje. ● Es un valor modificable en el servidor de correo 25
  • 26. Irontec – Curso SMTP Postfix ● Postfix – Incoming: El correo que entra de internet o viene de forma local (pickup) se queda en incoming. – Active: Los mensajes que se están intentando enviar en este mismo instante – Deferred: Mensajes que no pueden enviar – Hold: Los mensajes que dejamos en Hold se quedan ahí hasta que alguien los saque – Corrupt: Mensajes que no se pueden leer o que estén dañados se mueven a esta cola 26
  • 27. Irontec – Curso SMTP Postfix ● Postfix 27
  • 28. Irontec – Curso SMTP Spam ● El Spam se extá extendiendo a otros medios – Dispositivos móviles – Blogs – Foros – Usenet – IRC ● El Spam de correo electrónico continua en primer lugar ● A medida que las protecciones evolucionan, también lo hace el Spam 28
  • 29. Irontec – Curso SMTP Spam 29
  • 30. Irontec – Curso SMTP Spam ● Las medidas de protección contra el Spam se pueden activar a dos niveles. En el propio MTA o en una aplicación externa que analice los mensajes ● Generalmente en el MTA se aplican las medidas rápidas y faciles, de forma que la gestión de correos no se vuelva lenta ● El trabajo duro se deja a una aplicación externa 30
  • 31. Irontec – Curso SMTP Spam ● Algunas comprobaciones de Spam a nivel MTA son: – RBL (Real Time Block List). Las más famosas son spamhaus y spamcop. Hay que tener especial cuidado con cuales elegimos – Helo checks. Se comprueba si los dominios existen o no. – Rcpt to: Comprobamos si la dirección de destino existe. Si esta comprobación no se realiza seremos origen de Spam. 31
  • 32. Irontec – Curso SMTP Spam ● La herramienta externa más utilizada para detectar Spam es SpamAssassin ● El antivirus Clamav ● Para unir estas herramientas con nuestro MTA existen varias soluciones – Mailscanner – Amavis 32
  • 33. Irontec – Curso SMTP Spam ● Amavis 33
  • 34. Irontec – Curso SMTP Spam ● MailScanner 34