SlideShare ist ein Scribd-Unternehmen logo
1 von 150
Downloaden Sie, um offline zu lesen
SMTP




Miguel Ángel Nieto <miguelangel@irontec.com>
 Irontec – Internet y Sistemas sobre GNU/Linux
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
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
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
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
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
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
Irontec – Curso SMTP

                                                Registro A

●   El registro A es el que más utilizamos a lo largo del
    día
●   Nos ayuda 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
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
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
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 "v=spf1 a mx a:vpncore.irontec.com
    a:miri.irontec.com -all"

    $host -t txt miguelangelnieto.net
    miguelangelnieto.net descriptive text "v=spf1 a mx ~all"
    miguelangelnieto.net descriptive text "Miguel Angel Nieto -
    http://miguelangelnieto.net"
●   ¿Qué nos dicen esos registros SPF? Googlead :P
                                                                            11
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
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
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




                                                                         14
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
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
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
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
Irontec – Curso SMTP



1   Protocolo SMTP




                        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




                                                            20
Irontec – Curso SMTP



1                                       Protocolo SMTP


    ●   ESMTP: extensión del protocolo SMTP
        para adaptarse a las nuevas necesidades.
    ●   Varias extensiones: 8BITMIME, DSN,
        STARTTLS, AUTH ...
    ●   Permiten características adicionales como:
        reducir ancho de banda, reducir la latencia,
        recuperación mejorada de errores.
    ●   Para iniciar una conexión ESMTP se utiliza
        el comando EHLO.
    ●   RFC 1869.



                                                            21
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




                                                                   22
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.




                                                             23
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-.




                                                                          24
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.
                                                                          25
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
                                                                                            26
Irontec – Curso SMTP



1                                         Protocolo SMTP

    $ telnet aktornet.ath.cx 25
    Trying 80.35.230.140...
    Connected to AsteriX.
    Escape character is '^]'.
    220 aktornet.ath.cx ESMTP Postfix
    ehlo mail.irontec.com
    250­aktornet.ath.cx
       250­PIPELINING
       250­SIZE 10240000
       250­VRFY
       250­ETRN
       250­STARTTLS
       250 8BITMIME
    mail from: <iker@irontec.com>
    250 Ok
    rcpt to: <aktor@aktornet.ath.cx>
    250 Ok
    data
    354 End data with <CR><LF>.<CR><LF>

                                                               27
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



                                                                  28
Irontec – Curso SMTP



1                                    Protocolo SMTP


    ●   Diversos servidores SMTP: Postfix, Qmail,
        Exim, Sendmail, Microsoft Exchange...
    ●   Puertos well-known definidos: SMTP 25/tcp
        y SSMTP 465/tcp.
    ●   Creado en 1982. RFC 821. Múltiples
        RFC's.




                                                          29
Irontec – Curso SMTP



1             MIME (Multiple Internet Mail Extensions)

    ●   Extensiones del Correo de Internet para
        Multiples propósitos. Caracteres ascii de 8
        bits.
    ●   Define la representación estándar para
        cuerpos de correos complejos.
    ●   Aparece como solución a:
        –   Codificación de caracteres en diferentes
            idiomas. ñ (0xf1), Ñ (0xd1).
        –   Contenido binario de 8 bits como: imágenes,
            sonidos, programas...




                                                                  30
Irontec – Curso SMTP



1           MIME (Multiple Internet Mail Extensions)

    ●   La transformación de 7 a 8 bits la realiza el
        MUA habitualmente.
    ●   Para codificar datos binarios se utiliza el
        formato base64. ≈ 33% más de tamaño.
    ●   Cabeceras para definir el tipo de contenido
        MIME.




                                                             31
Irontec – Curso SMTP



1                                              MIME - Ejemplo

    Mime­Version: 1.0
    Content­Type: multipart/mixed;
     
    boundary="Multipart=_Tue__27_Jul_2004_01_26_41_+0200_G2cYEnhBTt8g
    whnt"

    ­­Multipart=_Tue__27_Jul_2004_01_26_41_+0200_G2cYEnhBTt8gwhnt
    Content­Type: application/x­gtar;
     name="scripts.iptables.tgz"
    Content­Disposition: attachment;
     filename="scripts.iptables.tgz"
    Content­Transfer­Encoding: base64

    H4sIAB2TBUEAA+1cX0/bSBDnlUh8hwGqNkiE2E5MrlQ9yQVzRBdILgG16qmqlngBU
    8freh3anvpl
    +3gP9x1u1n+C49hJCCGQ1oOE7d31zOzO7sxvZw2865qOx8srD0gSUk1VxVWuqVL8G
    tGKLOFPRZYr
    [...]
    Dm8Lz7RVKMQ+OR+87LjsgnLh0q2phCvnd38/FD+a8RZcBmgH/Vg32PSkSS8k98tTv
    Ssk/wxOI6ec
    csopp5xyWmr6H+b3+QoAUAAA

    ­­Multipart=_Tue__27_Jul_2004_01_26_41_+0200_G2cYEnhBTt8gwhnt­­


                                                                        32
Irontec – Curso SMTP



1      Introducción – Recepcion Correo




      Introducción
    Recepcion Correo



                                            33
Irontec – Curso SMTP



1                         POP (Post Office Protocol)

    ●   Protocolo de recepción de correo.
    ●   Diseñado para acceder a los correos de
        modo off-line. Clientes estáticos y sin
        conexión.
    ●   Poco pesado para la máquina servidora.
        Conexión, descarga y desconexión.
    ●   Protocolo simple: 13 comandos que
        pueden responder con +OK o -ERR.
    ●   Comportamiento defecto: descargar los
        mensajes y borrarlos del servidor.
    ●   Puertos well-known definidos: POP3
        110/tcp y POP3S 995/tcp.
                                                          34
Irontec – Curso SMTP



1            POP – Secuencia Comando Protocolo

    $ telnet mail.irontec.com 110
    Trying 82.194.66.125...
    Connected to mail.irontec.com.
    Escape character is '^]'.
    +OK POP3 mail [cppop 16.2] at [82.194.66.125]
    user iker@irontec.com
    +OK Need a password
    pass ********
    +OK You have 509 messages totaling 34295635 octets 
    from /home/ironwebs/mail/irontec.com/iker/inbox 
    (full load ­ partial cache outdated/corrupted v0)
    stat
    +OK 509 34295053
    Tralara
    ­ERR Command not implemented




                                                             35
Irontec – Curso SMTP



1         IMAP (Internet Message Access Protocol)

    ●   Protocolo de recepción de correos.
    ●   Método acceso correo almacenados en
        almacén de correo remoto como si fuese
        local.
    ●   Mensajes almacenados pueden ser
        accedidos de múltiples puntos sin
        moverlos.
    ●   Protocolo soporta crear, modificar y/o
        eliminar buzones.




                                                         36
Irontec – Curso SMTP



1         IMAP (Internet Message Access Protocol)

    ●   Ofrece soporte para diferentes modos de
        acceso: online, offline, desconectado.
    ●   Protocolo complejo: 24 comandos, 5
        respuestas(OK, NO, BAD, PREAUTH,
        BYE)
    ●   Puertos well-known definidos: IMAP
        143/tcp y IMAPS 993/tcp.
    ●   Creado en 1986. Univ. Stanford. Múltiples
        RFC's. Actual: RFC 3501. Version 4.




                                                           37
Irontec – Curso SMTP



1            IMAP – Secuencia Comandos Protocolo

    $ telnet mail.irontec.com 143
    Trying 82.194.66.125...
    Connected to mail.irontec.com.
    Escape character is '^]'.
    * OK [CAPABILITY IMAP4REV1 LOGIN­REFERRALS AUTH=LOGIN] 
    mail.irontec.com I MAP4rev1 2003.339­cpanel at Tue, 27 Jul 2004 
    03:38:14 +0200 (CEST)
    1 CAPABILITY
    * CAPABILITY IMAP4REV1 IDLE NAMESPACE MAILBOX­REFERRALS BINARY 
    UNSELECT SCAN SOR         T THREAD=REFERENCES 
    THREAD=ORDEREDSUBJECT MULTIAPPEND LOGIN­REFERRALS AUTH=LOGIN
    1 OK CAPABILITY completed
    2 LOGIN iker@irontec.com ********
    2 OK [CAPABILITY IMAP4REV1 IDLE NAMESPACE MAILBOX­REFERRALS 
    BINARY UNSELECT SCAN          SORT THREAD=REFERENCES 
    THREAD=ORDEREDSUBJECT MULTIAPPEND] User iker@irontec.com          
    authenticated
    3 NAMESPACE
    * NAMESPACE (("" "/")("#mhinbox" NIL)("#mh/" "/")) (("~" "/")) 
    (("#shared/" "/")         ("#ftp/" "/")("#news." ".")("#public/" 
    "/"))
    3 OK NAMESPACE completed
    SELECT INBOX.Sent
    SELECT BAD Command unrecognized: INBOX.SENT
    4 SELECT INBOX.Sent
    * 1 EXISTS
    * 0 RECENT
                                                                         38
Irontec – Curso SMTP



1                                     IMAP vs POP

    Ventajas POP
    ● Protocolo muy simple. Fácil implementación.

    ● Actualmente hay más clientes que lo

      soportan.
    ● Consume menos recursos de la máquina

      servidora.




                                                        39
Irontec – Curso SMTP



1                                     IMAP vs POP

    Ventajas IMAP
    ● Puede manipular correos con distintos flags.

      Definibles por usuario.
    ● Puede acceder y manipular múltiples

      buzones.
    ● Puede almacenar correos tan bien como los

      recoge.
    ● Permite actualizaciones concurrentes y

      acceso a buzones compartidos.
    ● Diseñado para optimizar el acceso online,

      especialmente en accesos de baja velocidad.


                                                         40
Irontec – Curso SMTP



1            Introducción – Mailbox




      Introducción
    Buzones (Mailbox)



                                         41
Irontec – Curso SMTP



1                                                               Mailbox – mbox

    ●   Es el método tradicional de almacenar correos
        en servidores tipo UNIX.
    ●   Los correos según van llegando se van
        concatenando en un único archivo.
    ●   Para indicar fin y comienzo de mail:
        –   Cada correo empieza por From:
        From aktor@aktornet.ath.cx Fri Feb 27 09:27:55 2004
        –   Y acaba por línea en blanco
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA                      # fin de archivo adjunto
        ------=NEOMAIL_ATT_0.0743188935603065--      # fin de indicador adjunto
                                # Línea en blanco
        From gorka@irontec.com Fri Feb 27 11:56:54 2004 # From: sig. mail




                                                                                                42
Irontec – Curso SMTP



1                                     Mailbox – mbox

    ●   Solo un proceso puede abrir el archivo
        mbox en modo lectura/escritura.
    ●   Acceso concurrente requiere mecanismo
        de bloqueo.
    ●   Durante la actualización del archivo mbox,
        todo el resto deben esperar.
    ●   Por defecto el archivo es:
        –   /var/spool/mail/usuario




                                                           43
Irontec – Curso SMTP



1                                              Mailbox – Maildir

    ●   Implementados inicialmente por el servidor
        Qmail para mejorar los mbox.
    ●   Cada mensaje en un archivo individual.
    ●   Mensaje en formato RFC 822.
        –   Comienza con la cabecera Return-Path:
        –   Seguido de la cabecera Delivered-To:
        Return-Path: <irontec-bounces@aktornet.ath.cx>
        Delivered-To: aktor@aktornet.ath.cx
        Received: from aktornet.ath.cx (localhost [127.0.0.1])
         by AsteriX (Postfix) with ESMTP
         id 9D81A2EAAD; Mon, 12 Jan 2004 21:48:47 +0100 (CET)
        –   No puede acabar con línea en blanco.
    ●   No es necesario bloquear los correos.

                                                                        44
Irontec – Curso SMTP



1                                                              Mailbox – Maildir

     ●   Hay un procedimiento definido de añadir
         nuevos correos al maildir.
     ●   Un maildir se compone por 3 subdirectorios:
         tmp, cur, new.
     ●   Existe una manera definida para nombrar a
         cada archivo.
    1090878520.M967905P7992V0000000000000803I0001806F_0.AsteriX,S=2541
    1090878520.M967905P7992V0000000000000803I0001806F_0.AsteriX,S=2541:2,FS

    new: time.MusecPpidVdevIino.host,S=cnt
    cur: time.MusecPpidVdevIino.host,S=cnt:2,info

    cnt: tamaño de archivo. Sirve para optimizar el trabajo con quotas.
    info: estado del mail. 0 ó + flags. Orden alfabético.
    F: marcado, R: Replied-To, T: Trashed, D: Draft, S: Seen

     ●   Multiples procesos pueden acceder al mismo
         tiempo a los maildirs
                                                                                            45
Irontec – Curso SMTP



1                                           Mailbox – Maildir

    Maildirmake
    ● Comando para crear maildirs.

    ● Crea automáticamente los 3 directorios:

        –   new
        –   cur
        –   tmp
    ●   Sintaxis
                  $ maildirmake [opciones] maildir




                                                                       46
Irontec – Curso SMTP



1                                         Mailbox – Maildir

    Ejemplo
    ● Indicamos la quota a aplicar sobre el maildir.



        maildirmake ­q quota
    ●   Crea un maildir “compartible”. Diferentes
        permisos.
        maildirmake ­S
    ●   No crea un maildir, sino una carpeta dentro del
        maildir.
        maildirmake ­f folder: 

        ~$ maildirmake ­q 5000000S,1000C ./Maildir/


                                                                 47
Irontec – Curso SMTP



1                          Mailbox – mbox vs Maildir

    ●   Maildir lo soportan menos MUA's que
        mbox.
    ●   Mbox muy poco eficiente para mailboxes
        grandes.
    ●   Maildir, al ser múltiples archivos, suele
        ocupar más espacio en disco. Cluster Size.
    ●   Maildir trabaja muy bien con NFS, que
        tiene grandes problemas históricos con
        bloqueos.
    ●   apt-get install mb2md ;-P
    ●   Todo lo anterior mencionado ;-)

                                                           48
Irontec – Curso SMTP



2                                    Postfix




       Postfix
    (SMTP Server)


     http://www.postfix.org



                                                49
Irontec – Curso SMTP



2                                                     Postfix

    ●   Servidor de correo que funciona sobre sistemas tipo
        UNIX.
    ●   Su intención fue la de sustituir a sendmail. Compatible
        para el resto de aplicaciones.
    ●   Arquitectura y diseño muy modular.
    ●   Fácil de administrar y configurar.
    ●   Muy rápido. Fué diseñado pensando en el rendimiento.
        Evita saturar otros sistemas.
    ●   Repartir correo de forma local puede repartir a
        almacen de correo o pasarlo a un MDA.
    ●   Escrito en C. Wietse Zweitze Venema, IBM hacker.




                                                                 50
Irontec – Curso SMTP



2                                                    Postfix

    ●   Arquitectura modular: Cada proceso se ejecuta con
        privilegios mínimos para su tarea.
    ●   Procesos que no se necesitan se deshabilitan: no se
        pueden explotar. Postfix GW.
    ●   Los procesos se aislan unos de otros. Muy poca
        comunicación entre procesos (IPC).
    ●   Evita utilizar buffers de tamaño fijo, evitando que
        tengan éxito ataques buffer overflow
    ●   Puede ejecutarse chrootado (/var/spool/postfix).
    ●   Preparado para ataques DoS. Cantidad de memoria
        controlada.




                                                                51
Irontec – Curso SMTP

                       Postfix

●   Postfix




                                52
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




                                                                  53
Irontec – Curso SMTP



2                                                     Postfix

    ●   Postfix gestiona las colas mediante
        procesos independientes.
        –   Pickup: Recoge los correos que provienen de la
            cola maildrop y los pasa a cleanup.
        –   Smtpd: Este proceso atiende, mediante
            protocolo SMTP, los correos de otros sistemas.
        –   Cleanup: Analiza las cabeceras de los correos.
            Si ok, los deposita en la cola incoming.
        –   Qmgr: Proceso encagargado de tratar los
            correos que llegan a incoming, depositarlos en
            active y lanzar el proceso adecuado para su
            encaminamiento: local, smtp o pipe.



                                                                 54
Irontec – Curso SMTP



2                                                  Postfix

    –   Local: Proceso encargado de depositar el
        correo en el buzón.
    –   Smtp: Proceso encargado de enviar el correo al
        host destino mediante protocolo SMTP.




                                                              55
Irontec – Curso SMTP



2                                                      Postfix

    ●   Las tablas, creadas por el administrador,
        sirven a los procesos para saber que
        tratamiento hay que dar a cada correo. Son
        6 tablas aunque no son obligatorias.
        –   Access: Sistemas a los que se acepta o
            rechaza los correos. La utiliza proceso smtpd.
        –   Aliases: Define nombres alternativos a usuarios
            locales. Consulta el proceso local.
        –   Canonical: Relación entre nombres alternativos
            y reales, locales o no. Proceso cleanup.




                                                                  56
Irontec – Curso SMTP



2                                                   Postfix

    –   Relocated: Devolver los mensajes que han
        cambiado de dirección. Proceso qmgr.
    –   Transport: Política de encaminamiento por
        dominios. Proceso trivial-rewrite.
    –   Virtual: Relación entre usuarios virtuales y
        reales. Proceso cleanup.




                                                               57
Irontec – Curso SMTP



2                                                     Postfix

    ●   Postfix soporta muy diversos soportes de
        backend para las tablas. Algunos de ellos:
        –   Hash: El archivo generado es un hash.
            Disponible para sistemas con soporte BD db.
        –   MySQL: Mapeo de las tablas de postfix a
            MySQL.
        –   PostgreSQL: Mapeo de las tablas de postfix a
            PostgreSQL.
        –   LDAP: Mapeo de las tablas de postfix a LDAP.
            Actualmente es la mejor solución aunque la más
            complicada de implementar, sobre todo contra
            Active Directory. No hay esquemas propios para
            LDAP.


                                                                 58
Irontec – Curso SMTP

                                             Arquitectura

●   La arquitectura de correo a instalar es la siguiente:
      –   Postfix
      –   Courier Imap
      –   PostfixAdmin
      –   MailScanner
            ●   SpamAssassin
            ●   Clamav
            ●   MailWatch
      –   Squirrelmail




                                                              59
Irontec – Curso SMTP

                                                   Postfix

●   Instalación
●   Gracias al gestor de paquetes es sencillo instalar
    Postfix en pocos minutos.
    apt­get install postfix postfix­mysql
●   Los ficheros de configuración se encuentran en
    /etc/postfix
●   Parar Postfix: /etc/init.d/postfix stop
●   Arrancar Postfix: /etc/init.d/postfix start
●   Reiniciar Postfix: /etc/init.d/postfix restart




                                                            60
Irontec – Curso SMTP



2                                 Archivos de Configuración

    main.cf [ Debian: /etc/postfix/main.cf ]
    –   Archivo de configuración principal de postfix. La
        mayoría de los cambios aquí.
    master.cf [ Debian: /etc/postfix/master.cf ]
    –   Archivo de configuración del demonio master.
        Servicios o transporte.
    aliases [ Debian: /etc/aliases ]
    –   Archivo de alias. Equivalencia entre una
        dirección local ficticia y una dirección local real




                                                                     61
Irontec – Curso SMTP



2                           Archivos de Configuración

    main.cf
    –   Contiene unos pocos de todos los parámetros
        que controlan el comportamiento de Postfix.
              postconf -n

    –   Los parámetros no especificados cogen su valor
        por defecto.
              postconf -d

    –   Si no sabemos para que sirve un parámetro,
        mejor dejarlo con su valor por defecto.




                                                              62
Irontec – Curso SMTP



2                                 Archivos de Configuración

    main.cf
    –   Formato
              parámetro = valor

    –   Linea en blanco, # comentario y espacios antes
        y despues del = no importan.
    –   Cada parámetro 1 línea. Si siguiente línea
        empieza por ESPACIO, es que continúa.
              smtpd_recipient_restrictions =
                  permit_mynetworks
                  permit_sasl_authenticated
                  reject_unauth_destination

    –   $variable recibe el valor de otro parámetro.
              (mydestination = $myhostname)


                                                                 63
Irontec – Curso SMTP



2                                                 Proceso de filtrado

    ●   Posftix permite realizar una serie de tareas de
        filtrado de acuerdo al siguiente orden:
        –   Restricciones SMTPD
            ●   Estados de Restricción
                   smtpd_client_restrictions
                   smtpd_helo_restrictions
                   smtpd_sender_restrictions
                   smtpd_recipient_restrictions
                   smtpd_data_restrictions
            ●   Restricciones
            ●   Listas de acceso (mapas)
        –   Comprobaciones de Cabeceras/Cuerpo del mail
        –   Filtros de Contenidos


                                                                          64
Irontec – Curso SMTP



2                                                   Comandos

    ●   Algunos de los comandos más interesantes
        de Postfix:
        –   mailq: lista el contenido de la cola de correo.
            Muestra el ID de cola, tamaño del correo, hora
            llegada, remitente y destinatario/s. Si no se ha
            podido entregar, muestra la razón. Enlace
            simbólico a sendmail (compatibilidad).
        –   newaliases: actualiza la base de datos de los
            alias (/etc/aliases). Enlace simbólico a sendmail
            (compatibilidad).
        –   postsuper: se encarga de realizar operaciones
            de mantenimiento



                                                                    65
Irontec – Curso SMTP



2                                            Comandos

    –   postqueue: comando que sirve de interfaz para
        la gestión de las colas.
    –   postmap: crea, actualiza o consulta una o más
        tablas de postfix.
    –   postconf: muestra los valores actuales de los
        parámetros de postfix.




                                                             66
Irontec – Curso SMTP



2                                               Registros

    mail.log [Debian: /var/log/mail.log]
    –   Fichero donde se registran todas las acciones
        del servidor postfix.
    mail.err [Debian: /var/log/mail.err]
    –   Fichero donde se registran los errores que se
        producen en postfix.
    mail.info [Debian: /var/log/mail.info]
    –   Fichero donde se registran todas las acciones
        del servidor postfix.




                                                               67
Irontec – Curso SMTP



6                                           Pflogsumm




             Pflogsumm
           (Visor de Logs)
    http://jimsun.linxnet.com/postfix_contrib.html




                                                             68
Irontec – Curso SMTP



6                                           Características

    ●   Es una herramienta para generar informes del
        correo que gestiona un MTA tipo Postfix.
    ●   Genera informes muy completos sobre la cantidad
        de correos enviados y recibidos, por día, por hora,
        por remitente, por destinatario, errores... ordenados
        según diferentes criterios.
    ●   Escrito en Perl 5.0




                                                                   69
Irontec – Curso SMTP



6                                       Instalación

    ●   Instalamos el visor de logs.
        # apt-get install pflogsumm




                                                         70
Irontec – Curso SMTP



6                                                Modo de Uso

    # /usr/sbin/pflogsumm [opciones] [archivo]

    –   Mostrar el histórico de los correos enviados ayer
    # pflogsumm -d yesterday /var/log/mail.log

    –   Mostrar el histórico de los correos enviados hoy
    # pflogsumm -d today /var/log/mail.log

    –   Mostrar el histórico de los correos enviados durante
        esta semana (por defecto los log rotan cada semana)
    # pflogsumm /var/log/mail.log




                                                                   71
Irontec – Curso SMTP



6                Automatizar la generación de informes

    ●   A menudo puede resultar interesante la
        generación de informes de forma automática.
        Si encima los recibimos por email todavía
        mejor ;-)
    ●   Utilizaremos la herramienta cron
    ●   Envio de informe diario
                   ●   # Script que enviará diariamente a las 7:00 am
                   ●   # a la cuenta de postmaster un correo con el
                       asunto:
                   ●   # “estadísticas diarias de <nombre_host>” y con el
                   ●   # resumen generado por pflogsumm como cuerpo
                       del mismo
        0 7 * * * /usr/sbin/pflogsumm -d yesterday
        /var/log/mail.log 2>&1 | /usr/bin/mailx -s "estadísticas diarias de $
        (uname -n)" postmaster

                                                                                72
Irontec – Curso SMTP



6                   PostfixAdmin




    Postfix Admin




                                       73
Irontec – Curso SMTP

                                                   PostfixAdmin

●   La configuración de Postfix la dejamos para el final.
    Vamos a instalar PostfixAdmin
●   Es una web de administración de usuarios y
    dominios virtuales para nuestro servidor de correo
●   Necesita para funcionar:
        –   PHP
        –   Apache
        –   Mysql
    apt-get install php5 php5-mysql php5-imap mysql-server apache2




                                                                     74
Irontec – Curso SMTP

                                                             PostfixAdmin

 ●   Creamos la Base de Datos y el usuario con
     privilegios de acceso a ella:
debian­smtp:~# mysql ­u root ­p 
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or g. 
Your MySQL connection id is 33 
Server version: 5.0.51a­24+lenny2 (Debian) 


Type 'help;' or 'h' for help. Type 'c' to clear the buffer. 


mysql> CREATE DATABASE postfix; 
Query OK, 1 row affected (0.01 sec) 


mysql> CREATE USER 'postfix'@'localhost' IDENTIFIED BY 'password'; 
Query OK, 0 rows affected (0.00 sec) 


mysql> GRANT ALL PRIVILEGES ON 'postfix'.* TO 'postfix'@'localhost'; 
Query OK, 0 rows affected (0.00 sec) 


mysql> quit
                                                                               75
Irontec – Curso SMTP

                                                 PostfixAdmin

●   PostfixAdmin se descarga desde:
      –   http://postfixadmin.sourceforge.net/
●   La instalación es tan sencilla como descomprimir el
    tar.gz y moverlo a /var/www
●   El fichero de configuración es config.inc.php
●   Hasta que no editemos ese fichero no funcionará
    nada.




                                                                   76
Irontec – Curso SMTP

                                            PostfixAdmin

●   http://localhost/postfixadmin/setup.php
●   En esta web nos indicará si cumplimos todos los
    requisitos para el correcto funcionamiento de la
    aplicación
●   Será necesario generar un HASH que debemos
    introducir en el fichero de configuración. Será la
    setup password
●   Cualquier problema o error de funcionamiento
    quedará reflejado en los logs de Apache




                                                             77
Irontec – Curso SMTP

                                               PostfixAdmin

$CONF['configured'] = true;
$CONF['setup_password'] = 
'4aa35a18f0f59b6f3a0c2c402f3ee931:016cf5f10aaa3c69511bf11f847c5
seaec20add8';
$CONF['postfix_admin_url'] = 'http://localhost/postfixadmin/';
$CONF['default_language'] = 'es';
$CONF['database_type'] = 'mysql';
$CONF['database_host'] = 'localhost';
$CONF['database_user'] = 'postfix';
$CONF['database_password'] = 'password';
$CONF['database_name'] = 'postfix';
$CONF['database_prefix'] = '';
$CONF['admin_email'] = 'administrador@dominio.com';
$CONF['encrypt'] = 'cleartext';
.......




                                                                 78
Irontec – Curso SMTP

                                         PostfixAdmin

●   Se crea un usuario de sistema, que será el que usen
    todos los procesos que necesiten acceder a los
    mailboxes.

debian­smtp:~# useradd vmail
debian­smtp:~# id vmail
uid=1001(vmail) gid=1001(vmail) 
grupos=1001(vmail)
debian­smtp:~# mkdir /var/vmail
debian­smtp:~# chown ­R vmail:vmail /var/vmail




                                                           79
Irontec – Curso SMTP

                                                 Postfix

La Base de Datos tiene una serie de tablas:
+­­­­­­­­­­­­­­­­­­­­­­­+
| Tables_in_postfix     |
+­­­­­­­­­­­­­­­­­­­­­­­+
| admin                 | 
| alias                 | 
| alias_domain          | 
| config                | 
| domain                | 
| domain_admins         | 
| fetchmail             | 
| log                   | 
| mailbox               | 
| quota                 | 
| quota2                | 
| vacation              | 
| vacation_notification | 
                                                          80
Irontec – Curso SMTP

                                                   Postfix

●   Tendremos que crear una serie de ficheros y
    referenciarlos en main.cf para que Postfix sepa
    donde se guardan los datos.
      –   relay_domains_maps.cf
      –   virtual_alias_maps.cf
      –   virtual_domains_maps.cf
      –   virtual_mailbox_maps.cf
      –   virtual_mailbox_limit_maps.cf




                                                            81
Irontec – Curso SMTP

                                       Postfix

●   relay_domains_maps.cf

user = postfix
password = password
hosts = localhost
dbname = postfix
query = SELECT domain FROM domain WHERE 
domain='%s' and backupmx = '1'




                                                82
Irontec – Curso SMTP

                                       Postfix

●   virtual_alias_maps.cf

user = postfix
password = password
hosts = localhost
dbname = postfix
query = SELECT goto FROM alias WHERE 
address='%s' AND active = 1




                                                83
Irontec – Curso SMTP

                                       Postfix

●   virtual_domains_maps.cf

user = postfix
password = password
hosts = localhost
dbname = postfix
query = SELECT domain FROM domain WHERE 
domain='%s'




                                                84
Irontec – Curso SMTP

                                       Postfix

virtual_mailbox_maps.cf

user = postfix
password = password
hosts = localhost
dbname = postfix
query = SELECT maildir FROM mailbox WHERE 
username='%s' AND active = 1




                                                85
Irontec – Curso SMTP

                                             Postfix

●   virtual_mailbox_limit_maps.cf

user = postfix
password = password
hosts = localhost
dbname = postfix
query = SELECT quota FROM mailbox WHERE 
username='%s'




                                                      86
Irontec – Curso SMTP

                                                              Postfix

Referenciamos los ficheros en el main.cf
virtual_alias_maps = proxy:mysql:/etc/postfix/virtual_alias_maps.cf
virtual_mailbox_domains = 
proxy:mysql:/etc/postfix/virtual_domains_maps.cf
virtual_mailbox_maps = proxy:mysql:/etc/postfix/virtual_mailbox_maps.cf
virtual_relay_domains = proxy:mysql:/etc/postfix/relay_domains_maps.cf
virtual_mailbox_base = /var/vmail
virtual_minimum_uid = 1001
virtual_transport = virtual
virtual_uid_maps = static:1001
virtual_gid_maps = static:1001
local_transport = virtual




                                                                       87
Irontec – Curso SMTP



2                  Postfix-SASL




    Postfix-SASL




                                     88
Irontec – Curso SMTP



2                                              Postfix-SASL

    ●   Simple Authentication and Security Layer.
    ●   Método de autenticación para protocolos
        orientados a la conexión.
    ●   En sistemas de correo se utiliza para permitir
        hacer relay.
    ●   Integrado en postfix. No es necesario utilizar
        librerías externas (Cyrus SASL Library).
    ●   Permite distintos tipos de autenticación:
        ANONYMOUS, CRAM-MD5, DIGEST-MD5,
        GSSAPI, KERBEROS_V4, OTP, PLAIN, or
        LOGIN.
    ●   RFC 2222 y 2554. AUTH.



                                                                  89
Irontec – Curso SMTP



2                                                             Instalación

    ●   Instalamos librerías para implementar la API
        de SASL
        # apt-get install libsasl2-2

    ●   Instalamos herramientas para administración
        de usuarios
        # apt-get install sasl2-bin

    ●   Comprobamos que el demonio smtpd soporta
        sasl.
        $ ldd /usr/lib/postfix/smtpd
                   libsasl2.so.2 => /usr/lib/libsasl2.so.2 (0x401a6000)




                                                                               90
Irontec – Curso SMTP



2                                    Instalación - main.cf

    ●   Añadimos las siguientes líneas al main.cf
        smtpd_sasl_auth_enable = yes
        smtpd_sasl2_auth_enable = yes
        broken_sasl_auth_clients = yes
        smtpd_sasl_local_domain = $myhostname
        smtpd_recipient_restrictions =
          permit_mynetworks,
          permit_sasl_authenticated,
          reject_unauth_destination
        smtpd_sasl_security_options = noanonymous




                                                                 91
Irontec – Curso SMTP



2                                 Instalación - pwcheck

    ●   Existen varios métodos gestionar las
        contraseñas.
        –   saslauth: Demonio Cyrus SASL contra cuentas UNIX.
        –   auxprop: Archivo independiente de usuarios y
            contraseñas.
    ●   Escogemos auxprop en archivo smtpd.conf
        [/etc/postfix/sasl/smtpd.conf]
    ●   Escogemos los métodos de autenticación que
        queremos permitir.
        pwcheck_method: auxprop
        mech_list: plain login




                                                                92
Irontec – Curso SMTP



2                            Instalación - pwcheck

    ●   Paramos el demonio de Cyrus saslauthd
        (/etc/default/saslauthd).
        START=no




                                                         93
Irontec – Curso SMTP



2                                             Instalación - mysql

    ●   Configuramos SASL para hacer uso de la
        Base de Datos MySQL. Será donde
        consultará los usuarios y contraseñas:

    debian-smtp:/etc/postfix/sasl# cat smtpd.conf
    pwcheck_method: auxprop
    mech_list: PLAIN LOGIN
    auxprop_plugin: sql
    sql_verbose: yes
    sql_engine: mysql
    sql_hostnames: 127.0.0.1
    sql_user: postfix
    sql_passwd: password
    sql_database: postfix
    sql_select: select password from mailbox where username = '%u@%r'
    log_level: 7
                                                                           94
Irontec – Curso SMTP

                                                Chroot Postfix

●   La conexión con la BBDD se hará mediante socket
    mysql, /var/run/mysqld/mysqld.sock
●   Postfix por defecto funciona enjaulado (chroot), lo
    que da más seguridad, pero también algún
    problema en la configuración
●   Como el socket está fuera de su chroot, no puede
    conectarse a mysql.
●   ¿Solución? Enlace simbólico

debian­smtp:~# cd /var/spool/postfix/var/run/
Debian­smtp:~# ln ­s /var/run/mysqld/mysqld.sock mysqld.sock




                                                                  95
Irontec – Curso SMTP



2                 Postfix-TLS




    Postfix-TLS




                                    96
Irontec – Curso SMTP



2                                              Postfix-TLS

    ●   Transport Security Layer.
    ●   Se construye a partir de SSL 3.0. Muy similar. A
        veces se le llama SSL 3.1
    ●   Mejora la comunicación TCP añadiendo cifrado e
        integridad en los correos.
    ●   No protege el contenido de los mails. Para ello
        PGP o S/MIME.
    ●   Necesita un par de claves pública y privada.
        Autoridad Certificadora (CA).
    ●   RFC 2487 y 3207. STARTTLS.
    ●   En Postfix el parche lo hizo Kutz Jänicke.




                                                                 97
Irontec – Curso SMTP



2                                                        Instalación

    ●   El soporte TSL ya viene incluido en Postfix

    ●   Instalamos soporte para SSL (Secure
        Socket Layer)
        # apt-get install openssl

    ●   Creamos los certificados ssl.
        # openssl req -new -x509 -nodes -out smtpd.pem -keyout
        smtpd.pem -days 3650




                                                                         98
Irontec – Curso SMTP



2                                    Instalación - main.cf

    ●   Añadimos las siguientes líneas al main.cf

        smtpd_use_tls = yes
        smtp_tls_note_starttls_offer = yes
        smtpd_tls_key_file = /etc/postfix/ssl/smtpd.pem
        smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.pem
        smtpd_tls_CAfile = /etc/postfix/ssl/smtpd.pem
        smtpd_tls_loglevel = 1
        smtpd_tls_received_header = yes
        smtpd_tls_session_cache_timeout = 3600s
        tls_random_source = dev:/dev/urandom




                                                                 99
Irontec – Curso SMTP



3                                 Courier IMAP




      Courier IMAP
     (IMAP Server)


    http://www.courier-mta.org/imap/



                                                     100
Irontec – Curso SMTP



3                                         Características

    ●   Es un servidor que da acceso IMAP a los Maildirs.
        Está diseñado para ello.
    ●   Servidor IMAP incluido en Courier Mail Server.
        Configurado en solitario puede trabajar con otros
        MTA's que reparten a Maildirs.
    ●   Soporta varias extensiones al formato Maildir
        básico como carpetas y quotas por soft.
    ●   Incluye módulos de autenticación abstractos.
        Passwd, PAM, MySQL, PostreSQL, LDAP...
    ●   Ofrece IMAP sobre SSL. Soporte IPv6.




                                                                 101
Irontec – Curso SMTP



3                                         Características

    ●   Soporta carpetas compartidas entre grupos de
        usuarios.
    ●   Permite limitar el nº de accesos de IMAP y numero
        máximo de accesos desde la misma IP.
    ●   Escrito en C.




                                                                102
Irontec – Curso SMTP



3   Arquitectura




                      103
Irontec – Curso SMTP



3                                                          Instalación

    ●   Instalamos los demonios para imap e imap-
        ssl de la suite de courier.
        # apt-get install courier-imap courier-imap-ssl

    ●   Instalamos los demonios y librerías
        genéricas de courier.
        # apt-get install courier-authdaemon courier-base courier-ssl




                                                                            104
Irontec – Curso SMTP



3                          Archivo de Configuración SSL

    imapd.cnf [ Debian: /etc/courier/imapd.cnf ]

    [ req ]
    default_bits = 1024
    encrypt_key = yes
    distinguished_name = req_dn
    x509_extensions = cert_type
    prompt = no

    [ req_dn ]
    C=ES
    ST=Bizkaia
    L=Bilbao
    O=Irontec - Internet y Sistemas sobre GNU/LinuX
    OU=Sistemas
    CN=mail.irontec.com
    emailAddress=sistemas@irontec.com




                                                                        105
Irontec – Curso SMTP



3                                                Certificado Digital

    ●   Generamos la clave privada
        # openssl genrsa -out mail.irontec.com.key 1024

    ●   Generamos la solicitud de certificado firmado
        # openssl req -new -key mail.irontec.com.key -config imapd.cnf -out
        mail.irontec.com.csr

    ●   Generamos un certificado firmado mediante
        una CA
        # openssl ca -out mail.irontec.com.crt -in mail.irontec.com.csr




                                                                              106
Irontec – Curso SMTP



3                                                 Configuración SSL

    ●   El certificado de Courier tiene que estar
        formado por:
        –   Clave privada del servidor
        –   Certificado firmado por una CA
            ●   Unicamente desde -----BEGIN CERTIFICATE----
                 –   Editamos y eliminamos el resto
        –   Parámetros DH
        # cat mail.irontec.com.key mail.irontec.com.crt >
        mail.irontec.com.pem
        # openssl gendh >> mail.irontec.com.pem




                                                                              107
Irontec – Curso SMTP



3                                            Configuración SSL

    # cat www.irontec.com.pem 
    ­­­­­BEGIN RSA PRIVATE KEY­­­­­
    MIICXAIBAAKBgQDWP7WzRg7DNpXgF94YsqPr84p08sAWcM6jXdG1QQZhuWBtyoWU
    0DnpLndcjV5At6IdQ7ZqSi6XbE1jEONyIZ3Ruimrd2+gks8a9NkQoI2YLjTTR5dL
    EAZxasb3AkEA3dsqgh7cBItGaC7PYve0vcH4gMYTiOR1NHzQHv4uojdAxvCGxdRV
    qEYEUBnNGcYyltbSzLFKt7Npz6RORpB4lwJBAL7eSyORtWJ1RT4WnceIOWf6Kkaa
    a4NEJttVYYBw+8muVQgnnM/MbjlzRUcDm9HL82sd9rZXAvh2dj30oWTTUYUCQQCh
    OiQTOe/00W5SSipmptNPz8YTd1887aILieUJkPk84+CMcsHOxPeW+YMq3wVBhNrA
    6c95+CHvjFAKGULVXypzAj9VpUkgGwDmCFayOs4zwa5MN6B2G4NN6EsNDu/SWcY/
    E/skSXjRI7RhcR3cle7KDqaQJJAI/TOFhV43OWC1q1Q=
    ­­­­­END RSA PRIVATE KEY­­­­­
    ­­­­­BEGIN CERTIFICATE­­­­­
    MIIDrDCCAxWgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBkDELMAkGA1UEBhMCRVMx
    EDAOBgNVBAgTB0JpemthaWExDzANBgNVBAcTBkJpbGJhbzEQMA4GA1UEChMHSXJv
    hvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYE
    w6tWudMrm8QFoYGWpIGTMIGQMQswCQYDVQQGEwJFUzEQMA4GA1UECBMHQml6a2Fp
    YTEPMA0GA1UEBxMGQmlsYmFvMRAwDgYDVQQKEwdJcm9udGVjMREwDwYDVQQLEwhT
    aXN0ZW1hczEUMBIGA1UEAxMLaXJvbnRlYy5jb20xIzAhBgkqhkiG9w0BCQEWFHNp
    c3RlbWFzQGlyb250ZWMuY29tggkAhSHOIQtatpswDQYJKoZIhvcNAQEEBQADgYEA
    M1S8cMkUC/nE5gnpiEWg+lYcHuJsNs6uBTNn7PdUiRqZOTCcucqIpIV1iwe6OxsX
    Yz3DQe3JCXcF+3BsGTt9hrrTTNOgoEZLEPlTHUV3dVZnm0wNlMuobfM0p6BhS+m2
    NWFMQKpE79rWcgShkLeJfzlIzDWRchzj4205Fpe+VMo=
    ­­­­­END CERTIFICATE­­­­­
    ­­­­­BEGIN DH PARAMETERS­­­­­
    MEYCQQDTT1zESN4Dzbp9mL0bIdbbS/CafrR2Q0RvWumpPYQX4jjwKk3mEttinZ4H
    wzMDbuS8a5EgRTRk67TPq0H/uBIDAgEC
    ­­­­­END DH PARAMETERS­­­­­                                          108
Irontec – Curso SMTP



3                                  Courier POP




       Courier POP
      (POP Server)
    http://www.courier-mta.org/imap/




                                                     109
Irontec – Curso SMTP



3                                                          Instalación

    ●   Instalamos los demonios para pop e pop-
        ssl de la suite de courier.
        # apt-get install courier-pop courier-pop-ssl

    ●   Instalamos los demonios y librerías
        genéricas de courier (en caso de no
        tenerlas ya)
        # apt-get install courier-authdaemon courier-base courier-ssl




                                                                            110
Irontec – Curso SMTP

                                          Autenticación

●   La autenticación en courier se realiza mediante el
    authdaemon.
●   Al igual que con el resto de servicios, debemos
    configurarlo para hacer uso de los datos
    almacenados en MySQL.
●   Creamos el fichero /etc/courier/authmysqlrc




                                                            111
Irontec – Curso SMTP

                                       Autenticación

MYSQL_SERVER     localhost
MYSQL_USERNAME      postfix
MYSQL_PASSWORD      password
MYSQL_DATABASE      postfix
MYSQL_USER_TABLE    mailbox
MYSQL_CLEAR_PWFIELD  password
MYSQL_UID_FIELD     1001
MYSQL_GID_FIELD     1001
MYSQL_LOGIN_FIELD username
MYSQL_HOME_FIELD'/var/vmail'
MYSQL_NAME_FIELDname
MYSQL_MAILDIR_FIELD maildir
MYSQL_QUOTA_FIELD quota
MYSQL_SOCKET     /var/run/mysqld/mysqld.sock

                                                         112
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




                                                          113
Irontec – Curso SMTP

           Spam




                  114
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




                                                             115
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.




                                                                   116
Irontec – Curso SMTP

                                                   SPAM

●   Las medidas anti spam a nivel de MTA son más
    rápidas y producen menos impacto en el servidor
●   Son menos fléxibles
●   Son un todo o nada, o el correo se acepta o se
    rechaza
●   A nivel de MTA se deben poner aquellas
    comprobaciones que sabemos que identifican un
    spam con un 99% de fiabilidad ;)




                                                          117
Irontec – Curso SMTP

                                         SPAM

●   Listas negras (RBL)

smtpd_client_restrictions =
  permit_mynetworks
  permit_sasl_authenticated
  reject_unknown_client
  reject_rbl_client sbl­xbl.spamhaus.org
  reject_rbl_client bl.spamcop.net
  reject_rbl_client rbl.dns­servicios.com




                                                118
Irontec – Curso SMTP

                                                    SPAM

SPF, direcciones desconocidas...

smtpd_recipient_restrictions =
 permit_mynetworks
 permit_sasl_authenticated
 reject_unauth_destination
 reject_non_fqdn_recipient
 reject_unknown_recipient_domain
 check_policy_service unix:private/policyd-spf
 check_policy_service inet:127.0.0.1:10031



                                                           119
Irontec – Curso SMTP

                                       SPAM

●   Comprobación del HELO

smtpd_helo_restrictions =
 reject_invalid_hostname
 reject_unknown_hostname
 reject_non_fqdn_hostname




                                              120
Irontec – Curso SMTP



4                              SpamAssassin




     SpamAssassin
      (Anti-spam)


    http://spamassassin.apache.org/



                                                    121
Irontec – Curso SMTP



4                                         Características

    ●   Es un filtro para correos que se utiliza para
        identificar el SPAM (UBE o UCE).
    ●   Realiza una serie de pruebas sobre el correo para
        comprobar si es spam o no.
    ●   Utiliza análisis bayesianos. Los usuarios pueden
        entrenarle para que aprenda.
    ●   Soporta gran cantidad de listas negras (mail-
        abuse.org, ordb.org, ...)
    ●   Diseñado para ser llamado por los archivos
        .mailfilter o .forward del MDA de un usuario,
        aunque puede ser integrado junto al MTA.
    ●   Resulta muy pesado para la máquina en el que
        está instalado.
    ●   Escrito en Perl.
                                                                 122
Irontec – Curso SMTP



4                                               Instalación

    ●   Instalamos el software demonio y cliente
        anti spam.
        # apt-get install spamassassin spamc




                                                                 123
Irontec – Curso SMTP



4                                            Ejemplo – GTUBE

    ●   Mail de prueba. SpamAssassin le otorga
        1000.0 puntos.
        Subject: Test spam mail (GTUBE)
        Message-ID: <GTUBE1.1010101@example.net>
        Date: Wed, 23 Jul 2003 23:30:00 +0200
        From: Sender <sender@example.net>
        To: Recipient <recipient@example.net>
        Precedence: junk
        MIME-Version: 1.0
        Content-Type: text/plain; charset=us-ascii
        Content-Transfer-Encoding: 7bit

        This is the GTUBE, the
         Generic
         Test for
         Unsolicited
         Bulk
         Email


                                                                       124
Irontec – Curso SMTP



4                                                   Aprendizaje

    ●   Comando para el aprendizaje del
        SpamAssassin.
        $ sa-learn [opciones] archivo/s

        –   Aprende los correos del directorio ham como NO
            spam.
                 sa-learn --ham ham

        –   Aprende el correo X como spam.
                 sa-learn --spam ~/Maildir/spam/X

        –   Olvida el correo archivo que le hicimos aprender.
                 sa-learn –-forget archivo



                                                                      125
Irontec – Curso SMTP



4                                               Aprendizaje

    –   Los correos entrantes están en formato mbox.
             sa-learn –-mbox

    –   Muestra el contenido de las BD bayesianas.
             sa-learn –-dump [all|data|magic]




                                                                  126
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




                                                           127
Irontec – Curso SMTP

                        Spam

●   Amavis




                               128
Irontec – Curso SMTP

                             Spam

●   MailScanner




                                    129
Irontec – Curso SMTP



8                                 Squirrelmail




     SquirrelMail
     (Web Mail)


    http://www.squirrelmail.org



                                                    130
Irontec – Curso SMTP



8                                           Características

    ●   Es un software que permite leer el correo
        mediante un navegador web.
    ●   Utiliza los protocolos IMAP y SMTP embebidos.
    ●   Dispone de una gran variedad de plugins.
    ●   No requiere de Javascript.
    ●   No requiere de MySQL.
    ●   Cliente de correo altamente estable.
    ●   Muy sencillo de configurar e instalar. Script PERL.
    ●   Soporte multi-lenguage.
    ●   Escrito en HTML y PHP. Estándares.




                                                                  131
Irontec – Curso SMTP



8                                                Opciones Básicas

    ●   La interfaz web dispone de los siguientes
        menús:
        –   Componer
            ●   Redactar y enviar mensajes con adjuntos
        –   Direcciones
            ●   Libreta de direcciones.
        –   Carpetas
            ●   Permite manipular las carpetas
        –   Opciones
            ●   Ajustar las opciones de Squirrelmail
        –   Buscar
            ●   Realizar un filtrado de los correos en base a un
                patron.

                                                                          132
Irontec – Curso SMTP



8                                                              Instalación

    ●   Instalamos el webmail
        # apt-get install squirrelmail squirrelmail-locales

    ●   Squirrelmail necesita un servidor web con
        soporte para php4
        # apt-get install apache2 php5 libapache2-mod-php5




                                                                                133
Irontec – Curso SMTP



8                                     Archivos de Configuración

    ●   Incluimos las directivas para integrarlo con
        apache.
        –   Insertamos la siguiente línea en el archivo
            httpd.conf de apache:
                  ●   httpd.conf [ Debian: /etc/apache2/httpd.conf]

        Include /etc/squirrelmail/apache.conf




                                                                              134
Irontec – Curso SMTP



8                              Archivos de Configuración

    # /usr/sbin/squirrelmail­configure


    SquirrelMail Configuration : Read: config.php (1.4.0)
    ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
    Main Menu ­­
    1.  Organization Preferences
    2.  Server Settings
    3.  Folder Defaults
    4.  General Options
    5.  Themes
    6.  Address Books
    7.  Message of the Day (MOTD)
    8.  Plugins
    9.  Database
    10. Languages

    D.  Set pre­defined settings for specific IMAP servers

    C   Turn color on
    S   Save data
    Q   Quit

    Command >>

                                                                     135
Irontec – Curso SMTP



8               Archivos de Configuración – Courier IMAP

    ●   Configuramos squirrelmail para integrarlo con
        courier-imap
        –   Main Menu
            ●   Server Settings
                 –   Update IMAP Settings

        8. Server software : courier




                                                              136
Irontec – Curso SMTP



8                                                         Plugins

    ●   A fecha de hoy hay 223 plugins disponibles
        agrupados en 14 categorías.
    ●   Disponibles en:
        –   http://www.squirrelmail.org/plugins.php
    ●   Descargar y descomprimir en:
                 /usr/share/squirrelmail/plugins




                                                                     137
Irontec – Curso SMTP



8                                                               Plugins

    ●   A destacar:
        –   View As HTML
            ●   Permite ver un email como HTML o como texto plano
        –   Autocomplete
            ●   Busca en la agenda para autocompletar el destinatario
        –   Calendars
            ●   Creación de calendarios publicos o limitados.
        –   Dictionary
            ●   Comprueba la ortografía del texto redactado.
        –   GPG
            ●   Soporte para firmas/cifrado GPG



                                                                         138
Irontec – Curso SMTP

                                               Mail2FAX

●   Es posible enviar un Fax mediante correo
    electrónico.
●   Solo son necesarias dos herramientas, Postfix +
    Hylafax.
●   Una vez hecho, podremos envíar fax con solo
    redactar un correo para:

              66666666@fax.dominio.com




                                                           139
Irontec – Curso SMTP

                                               Mail2Fax

●   Lo instalamos fácilmente con apt:

# apt-get install hylafax-server

●   Tras la instalación ejecutamos el siguiente comando
    y configuramos los parámetros generales.

# faxsetup

●   Si queremos añadir otro módem al sistema,
    ejecutamos:

# faxaddmodem
                                                           140
Irontec – Curso SMTP

                                                             Mail2Fax

●   Ahora nos toca configurar Postfix:
    /etc/postfix/master.cf:
        fax       unix  ­       n       n       ­       1       pipe
            flags= user=fax argv=/usr/bin/faxmail ­d ­n ${user}


    /etc/postfix/transport:
        fax.your.domain   fax:localhost


    /etc/postfix/main.cf:
        transport_maps = hash:/etc/postfix/transport
        fax_destination_recipient_limit = 1




                                                                         141
Irontec – Curso SMTP

             Monitorización



Monitorización




                                142
Irontec – Curso SMTP

                                   MyTOP

●   El TOP de MySQL :-)




                                            143
Irontec – Curso SMTP

     Mailgraph




                  144
Irontec – Curso SMTP

  Queuegraph




                  145
Irontec – Curso SMTP

Couriergraph




                  146
Irontec – Curso SMTP

    Bindgraph




                  147
Irontec – Curso SMTP

    Mailwatch




                  148
Irontec – Curso SMTP

                                Se acabó




miguelangel@irontec.com


      miguel2angel


http://miguelangelnieto.net



                                            149
Irontec – Curso SMTP



X                                                    Licencia Copyleft
    Este documento está protegido bajo la licencia Attribution-ShareAlike
    2.0 de Creative Commons (http://creativecommons.org/licenses/by-
    sa/2.0/)

    2010 Miguel Angel Nieto <miguelangel@irontec.com>
    2004 Iker Sagasti Markina <iker@irontec.com>

    Se permite la copia, modificación, distribución, uso comercial y
    realización de la obra, siempre y cuando se reconozca la autoría de la
    misma, a no sea ser que se obtenga permiso expreso del autor. El
    autor permite distribuir obras derivadas a esta sólo si mantienen la
    misma licencia que esta obra.

    Esta nota no es la licencia completa de la obra, sino una traducción de
    la nota orientativa de la licencia original completa (jurídicamente
    válida).



                                                                               150

Weitere ähnliche Inhalte

Was ist angesagt?

Point to-point protocol (ppp), PAP & CHAP
Point to-point protocol (ppp), PAP & CHAPPoint to-point protocol (ppp), PAP & CHAP
Point to-point protocol (ppp), PAP & CHAPNetProtocol Xpert
 
HSRP (hot standby router protocol)
HSRP (hot standby router protocol)HSRP (hot standby router protocol)
HSRP (hot standby router protocol)Netwax Lab
 
Routing Information Protocol
Routing Information ProtocolRouting Information Protocol
Routing Information ProtocolKashif Latif
 
EIGRP (enhanced interior gateway routing protocol)
EIGRP (enhanced interior gateway routing protocol)EIGRP (enhanced interior gateway routing protocol)
EIGRP (enhanced interior gateway routing protocol)Netwax Lab
 
RARP, BOOTP, DHCP and PXE Protocols
RARP, BOOTP, DHCP and PXE ProtocolsRARP, BOOTP, DHCP and PXE Protocols
RARP, BOOTP, DHCP and PXE ProtocolsPeter R. Egli
 
EIGRP (Enhanced Interior Gateway Routing Protocol)
EIGRP (Enhanced Interior Gateway Routing Protocol)EIGRP (Enhanced Interior Gateway Routing Protocol)
EIGRP (Enhanced Interior Gateway Routing Protocol)NetProtocol Xpert
 
Computer Networks Module 1 - part 2.pdf
Computer Networks Module 1 - part 2.pdfComputer Networks Module 1 - part 2.pdf
Computer Networks Module 1 - part 2.pdfShanthalaKV
 

Was ist angesagt? (16)

Application layer
Application layerApplication layer
Application layer
 
Point to-point protocol (ppp), PAP & CHAP
Point to-point protocol (ppp), PAP & CHAPPoint to-point protocol (ppp), PAP & CHAP
Point to-point protocol (ppp), PAP & CHAP
 
#RIPv1 vs #RIPv2
#RIPv1 vs #RIPv2#RIPv1 vs #RIPv2
#RIPv1 vs #RIPv2
 
HSRP (hot standby router protocol)
HSRP (hot standby router protocol)HSRP (hot standby router protocol)
HSRP (hot standby router protocol)
 
Arp
ArpArp
Arp
 
802 1ad
802 1ad802 1ad
802 1ad
 
Routing Information Protocol
Routing Information ProtocolRouting Information Protocol
Routing Information Protocol
 
MPLS Layer 3 VPN
MPLS Layer 3 VPN MPLS Layer 3 VPN
MPLS Layer 3 VPN
 
Icmp
IcmpIcmp
Icmp
 
EIGRP (enhanced interior gateway routing protocol)
EIGRP (enhanced interior gateway routing protocol)EIGRP (enhanced interior gateway routing protocol)
EIGRP (enhanced interior gateway routing protocol)
 
7 slaac-rick graziani
7 slaac-rick graziani7 slaac-rick graziani
7 slaac-rick graziani
 
RARP, BOOTP, DHCP and PXE Protocols
RARP, BOOTP, DHCP and PXE ProtocolsRARP, BOOTP, DHCP and PXE Protocols
RARP, BOOTP, DHCP and PXE Protocols
 
ICMP
ICMPICMP
ICMP
 
Border Gatway Protocol
Border Gatway ProtocolBorder Gatway Protocol
Border Gatway Protocol
 
EIGRP (Enhanced Interior Gateway Routing Protocol)
EIGRP (Enhanced Interior Gateway Routing Protocol)EIGRP (Enhanced Interior Gateway Routing Protocol)
EIGRP (Enhanced Interior Gateway Routing Protocol)
 
Computer Networks Module 1 - part 2.pdf
Computer Networks Module 1 - part 2.pdfComputer Networks Module 1 - part 2.pdf
Computer Networks Module 1 - part 2.pdf
 

Andere mochten auch

Seguridad en sistemas de correo electrónico
Seguridad en sistemas de correo electrónicoSeguridad en sistemas de correo electrónico
Seguridad en sistemas de correo electrónicoAlvaro Marin
 
Configuración del servidor smtp centos
Configuración del servidor smtp centosConfiguración del servidor smtp centos
Configuración del servidor smtp centosHumano Terricola
 
Semillas Que Germinan
Semillas Que GerminanSemillas Que Germinan
Semillas Que Germinanchucho1943
 
LA CIUDAD MODERNA EN LA POÉTICA DE OLIVERIO GIRONDO
LA CIUDAD MODERNA EN LA POÉTICA DE OLIVERIO GIRONDOLA CIUDAD MODERNA EN LA POÉTICA DE OLIVERIO GIRONDO
LA CIUDAD MODERNA EN LA POÉTICA DE OLIVERIO GIRONDOAcadémica USACH, UCSH y UNAB
 
GreenTrac
GreenTracGreenTrac
GreenTracalfer0
 
INTERACTIVE INTELLIGENCE Expocontact11
INTERACTIVE INTELLIGENCE Expocontact11INTERACTIVE INTELLIGENCE Expocontact11
INTERACTIVE INTELLIGENCE Expocontact11expocontact
 
Edificio Oficinas de Peyber
Edificio Oficinas de PeyberEdificio Oficinas de Peyber
Edificio Oficinas de Peybergrupo Peyber
 
Michael Levin - MatrixNet Applications at Yandex
Michael Levin - MatrixNet Applications at YandexMichael Levin - MatrixNet Applications at Yandex
Michael Levin - MatrixNet Applications at YandexMachine Learning Prague
 
Persönliches Wissensmanagement mit Semantischen Technologien
Persönliches Wissensmanagement mit Semantischen TechnologienPersönliches Wissensmanagement mit Semantischen Technologien
Persönliches Wissensmanagement mit Semantischen TechnologienMax Völkel
 
Nec2011 cap.7-construccion con madera-021412
Nec2011 cap.7-construccion con madera-021412Nec2011 cap.7-construccion con madera-021412
Nec2011 cap.7-construccion con madera-021412maupq
 
Презентация для персонала компаний "Коммерческая тайна"
Презентация для персонала компаний "Коммерческая тайна"Презентация для персонала компаний "Коммерческая тайна"
Презентация для персонала компаний "Коммерческая тайна"Дмитрий Красников
 
Mi coltivo orto-a-scuola_fondazione-catella
Mi coltivo orto-a-scuola_fondazione-catellaMi coltivo orto-a-scuola_fondazione-catella
Mi coltivo orto-a-scuola_fondazione-catellaMDF Milano
 

Andere mochten auch (20)

Seguridad en sistemas de correo electrónico
Seguridad en sistemas de correo electrónicoSeguridad en sistemas de correo electrónico
Seguridad en sistemas de correo electrónico
 
Configuración del servidor smtp centos
Configuración del servidor smtp centosConfiguración del servidor smtp centos
Configuración del servidor smtp centos
 
Semillas Que Germinan
Semillas Que GerminanSemillas Que Germinan
Semillas Que Germinan
 
ESTUDIO DE MERCADO - PARTE III
ESTUDIO DE MERCADO - PARTE IIIESTUDIO DE MERCADO - PARTE III
ESTUDIO DE MERCADO - PARTE III
 
LA CIUDAD MODERNA EN LA POÉTICA DE OLIVERIO GIRONDO
LA CIUDAD MODERNA EN LA POÉTICA DE OLIVERIO GIRONDOLA CIUDAD MODERNA EN LA POÉTICA DE OLIVERIO GIRONDO
LA CIUDAD MODERNA EN LA POÉTICA DE OLIVERIO GIRONDO
 
GreenTrac
GreenTracGreenTrac
GreenTrac
 
English10 bestcommu
English10 bestcommuEnglish10 bestcommu
English10 bestcommu
 
Mie kocok cirebon
Mie kocok cirebonMie kocok cirebon
Mie kocok cirebon
 
09 (2008)
09 (2008)09 (2008)
09 (2008)
 
INTERACTIVE INTELLIGENCE Expocontact11
INTERACTIVE INTELLIGENCE Expocontact11INTERACTIVE INTELLIGENCE Expocontact11
INTERACTIVE INTELLIGENCE Expocontact11
 
Intro ch 01_a
Intro ch 01_aIntro ch 01_a
Intro ch 01_a
 
Edificio Oficinas de Peyber
Edificio Oficinas de PeyberEdificio Oficinas de Peyber
Edificio Oficinas de Peyber
 
Michael Levin - MatrixNet Applications at Yandex
Michael Levin - MatrixNet Applications at YandexMichael Levin - MatrixNet Applications at Yandex
Michael Levin - MatrixNet Applications at Yandex
 
Decor arte
Decor arteDecor arte
Decor arte
 
Persönliches Wissensmanagement mit Semantischen Technologien
Persönliches Wissensmanagement mit Semantischen TechnologienPersönliches Wissensmanagement mit Semantischen Technologien
Persönliches Wissensmanagement mit Semantischen Technologien
 
Nec2011 cap.7-construccion con madera-021412
Nec2011 cap.7-construccion con madera-021412Nec2011 cap.7-construccion con madera-021412
Nec2011 cap.7-construccion con madera-021412
 
Nightsbridge 2012
Nightsbridge 2012Nightsbridge 2012
Nightsbridge 2012
 
¿Existen empresas siniestras?
¿Existen empresas siniestras?¿Existen empresas siniestras?
¿Existen empresas siniestras?
 
Презентация для персонала компаний "Коммерческая тайна"
Презентация для персонала компаний "Коммерческая тайна"Презентация для персонала компаний "Коммерческая тайна"
Презентация для персонала компаний "Коммерческая тайна"
 
Mi coltivo orto-a-scuola_fondazione-catella
Mi coltivo orto-a-scuola_fondazione-catellaMi coltivo orto-a-scuola_fondazione-catella
Mi coltivo orto-a-scuola_fondazione-catella
 

Ähnlich wie Curso SMTP avanzado

Ähnlich wie Curso SMTP avanzado (20)

Curso SMTP
Curso SMTPCurso SMTP
Curso SMTP
 
Herramientas bind
Herramientas bindHerramientas bind
Herramientas bind
 
Configuraracion basica de windows server 2008
Configuraracion basica de windows server 2008Configuraracion basica de windows server 2008
Configuraracion basica de windows server 2008
 
Dns anita vaca
Dns anita vacaDns anita vaca
Dns anita vaca
 
Protocolo dns
Protocolo dnsProtocolo dns
Protocolo dns
 
20120926 web perf-dns_v1
20120926 web perf-dns_v120120926 web perf-dns_v1
20120926 web perf-dns_v1
 
Dns en linux debían squeeze 6
Dns  en linux debían squeeze 6Dns  en linux debían squeeze 6
Dns en linux debían squeeze 6
 
Administracion Zimbra
Administracion ZimbraAdministracion Zimbra
Administracion Zimbra
 
Protolos De Internet Y Aplicaciones De Acceso
Protolos De Internet Y Aplicaciones De AccesoProtolos De Internet Y Aplicaciones De Acceso
Protolos De Internet Y Aplicaciones De Acceso
 
DNS
DNSDNS
DNS
 
Telnet y dns
Telnet y dnsTelnet y dns
Telnet y dns
 
Configuracion del servidor dns en linux
Configuracion del servidor dns en linuxConfiguracion del servidor dns en linux
Configuracion del servidor dns en linux
 
Dns(jorgemoya)
Dns(jorgemoya)Dns(jorgemoya)
Dns(jorgemoya)
 
Capa de aplicación (dns y ftp)
Capa de aplicación (dns y ftp)Capa de aplicación (dns y ftp)
Capa de aplicación (dns y ftp)
 
Actividad 6
Actividad 6Actividad 6
Actividad 6
 
Cuestionario 3-1.docx
Cuestionario 3-1.docxCuestionario 3-1.docx
Cuestionario 3-1.docx
 
romano
romanoromano
romano
 
Servidores DNS
Servidores DNSServidores DNS
Servidores DNS
 
Servidor presentacion
Servidor presentacionServidor presentacion
Servidor presentacion
 
Dns
DnsDns
Dns
 

Mehr von Miguel Angel Nieto (13)

Query planner
Query plannerQuery planner
Query planner
 
MySQL 5.6 GTID in a nutshell
MySQL 5.6 GTID in a nutshellMySQL 5.6 GTID in a nutshell
MySQL 5.6 GTID in a nutshell
 
MySQL - High Availability - Load Balacing - Cluster
MySQL - High Availability - Load Balacing - ClusterMySQL - High Availability - Load Balacing - Cluster
MySQL - High Availability - Load Balacing - Cluster
 
Apache avanzado
Apache avanzadoApache avanzado
Apache avanzado
 
Mysql Administracion
Mysql AdministracionMysql Administracion
Mysql Administracion
 
Replicación Mysql
Replicación MysqlReplicación Mysql
Replicación Mysql
 
Tomcat y Jboss
Tomcat y JbossTomcat y Jboss
Tomcat y Jboss
 
Curso básico Linux
Curso básico LinuxCurso básico Linux
Curso básico Linux
 
Curso Squid avanzado
Curso Squid avanzadoCurso Squid avanzado
Curso Squid avanzado
 
Apache
ApacheApache
Apache
 
Nfs, Nis, DHCP
Nfs, Nis, DHCPNfs, Nis, DHCP
Nfs, Nis, DHCP
 
Monitorización
MonitorizaciónMonitorización
Monitorización
 
Administración Zimbra
Administración ZimbraAdministración Zimbra
Administración Zimbra
 

Kürzlich hochgeladen

Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 

Kürzlich hochgeladen (13)

Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 

Curso SMTP avanzado

  • 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 ayuda 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 "v=spf1 a mx a:vpncore.irontec.com a:miri.irontec.com -all" $host -t txt miguelangelnieto.net miguelangelnieto.net descriptive text "v=spf1 a mx ~all" miguelangelnieto.net descriptive text "Miguel Angel Nieto - http://miguelangelnieto.net" ● ¿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 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 1 Protocolo SMTP 19
  • 20. 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 20
  • 21. Irontec – Curso SMTP 1 Protocolo SMTP ● ESMTP: extensión del protocolo SMTP para adaptarse a las nuevas necesidades. ● Varias extensiones: 8BITMIME, DSN, STARTTLS, AUTH ... ● Permiten características adicionales como: reducir ancho de banda, reducir la latencia, recuperación mejorada de errores. ● Para iniciar una conexión ESMTP se utiliza el comando EHLO. ● RFC 1869. 21
  • 22. 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 22
  • 23. 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. 23
  • 24. 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-. 24
  • 25. 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. 25
  • 26. 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 26
  • 27. Irontec – Curso SMTP 1 Protocolo SMTP $ telnet aktornet.ath.cx 25 Trying 80.35.230.140... Connected to AsteriX. Escape character is '^]'. 220 aktornet.ath.cx ESMTP Postfix ehlo mail.irontec.com 250­aktornet.ath.cx 250­PIPELINING 250­SIZE 10240000 250­VRFY 250­ETRN 250­STARTTLS 250 8BITMIME mail from: <iker@irontec.com> 250 Ok rcpt to: <aktor@aktornet.ath.cx> 250 Ok data 354 End data with <CR><LF>.<CR><LF> 27
  • 28. 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 28
  • 29. Irontec – Curso SMTP 1 Protocolo SMTP ● Diversos servidores SMTP: Postfix, Qmail, Exim, Sendmail, Microsoft Exchange... ● Puertos well-known definidos: SMTP 25/tcp y SSMTP 465/tcp. ● Creado en 1982. RFC 821. Múltiples RFC's. 29
  • 30. Irontec – Curso SMTP 1 MIME (Multiple Internet Mail Extensions) ● Extensiones del Correo de Internet para Multiples propósitos. Caracteres ascii de 8 bits. ● Define la representación estándar para cuerpos de correos complejos. ● Aparece como solución a: – Codificación de caracteres en diferentes idiomas. ñ (0xf1), Ñ (0xd1). – Contenido binario de 8 bits como: imágenes, sonidos, programas... 30
  • 31. Irontec – Curso SMTP 1 MIME (Multiple Internet Mail Extensions) ● La transformación de 7 a 8 bits la realiza el MUA habitualmente. ● Para codificar datos binarios se utiliza el formato base64. ≈ 33% más de tamaño. ● Cabeceras para definir el tipo de contenido MIME. 31
  • 32. Irontec – Curso SMTP 1 MIME - Ejemplo Mime­Version: 1.0 Content­Type: multipart/mixed;   boundary="Multipart=_Tue__27_Jul_2004_01_26_41_+0200_G2cYEnhBTt8g whnt" ­­Multipart=_Tue__27_Jul_2004_01_26_41_+0200_G2cYEnhBTt8gwhnt Content­Type: application/x­gtar;  name="scripts.iptables.tgz" Content­Disposition: attachment;  filename="scripts.iptables.tgz" Content­Transfer­Encoding: base64 H4sIAB2TBUEAA+1cX0/bSBDnlUh8hwGqNkiE2E5MrlQ9yQVzRBdILgG16qmqlngBU 8freh3anvpl +3gP9x1u1n+C49hJCCGQ1oOE7d31zOzO7sxvZw2865qOx8srD0gSUk1VxVWuqVL8G tGKLOFPRZYr [...] Dm8Lz7RVKMQ+OR+87LjsgnLh0q2phCvnd38/FD+a8RZcBmgH/Vg32PSkSS8k98tTv Ssk/wxOI6ec csopp5xyWmr6H+b3+QoAUAAA ­­Multipart=_Tue__27_Jul_2004_01_26_41_+0200_G2cYEnhBTt8gwhnt­­ 32
  • 33. Irontec – Curso SMTP 1 Introducción – Recepcion Correo Introducción Recepcion Correo 33
  • 34. Irontec – Curso SMTP 1 POP (Post Office Protocol) ● Protocolo de recepción de correo. ● Diseñado para acceder a los correos de modo off-line. Clientes estáticos y sin conexión. ● Poco pesado para la máquina servidora. Conexión, descarga y desconexión. ● Protocolo simple: 13 comandos que pueden responder con +OK o -ERR. ● Comportamiento defecto: descargar los mensajes y borrarlos del servidor. ● Puertos well-known definidos: POP3 110/tcp y POP3S 995/tcp. 34
  • 35. Irontec – Curso SMTP 1 POP – Secuencia Comando Protocolo $ telnet mail.irontec.com 110 Trying 82.194.66.125... Connected to mail.irontec.com. Escape character is '^]'. +OK POP3 mail [cppop 16.2] at [82.194.66.125] user iker@irontec.com +OK Need a password pass ******** +OK You have 509 messages totaling 34295635 octets  from /home/ironwebs/mail/irontec.com/iker/inbox  (full load ­ partial cache outdated/corrupted v0) stat +OK 509 34295053 Tralara ­ERR Command not implemented 35
  • 36. Irontec – Curso SMTP 1 IMAP (Internet Message Access Protocol) ● Protocolo de recepción de correos. ● Método acceso correo almacenados en almacén de correo remoto como si fuese local. ● Mensajes almacenados pueden ser accedidos de múltiples puntos sin moverlos. ● Protocolo soporta crear, modificar y/o eliminar buzones. 36
  • 37. Irontec – Curso SMTP 1 IMAP (Internet Message Access Protocol) ● Ofrece soporte para diferentes modos de acceso: online, offline, desconectado. ● Protocolo complejo: 24 comandos, 5 respuestas(OK, NO, BAD, PREAUTH, BYE) ● Puertos well-known definidos: IMAP 143/tcp y IMAPS 993/tcp. ● Creado en 1986. Univ. Stanford. Múltiples RFC's. Actual: RFC 3501. Version 4. 37
  • 38. Irontec – Curso SMTP 1 IMAP – Secuencia Comandos Protocolo $ telnet mail.irontec.com 143 Trying 82.194.66.125... Connected to mail.irontec.com. Escape character is '^]'. * OK [CAPABILITY IMAP4REV1 LOGIN­REFERRALS AUTH=LOGIN]  mail.irontec.com I MAP4rev1 2003.339­cpanel at Tue, 27 Jul 2004  03:38:14 +0200 (CEST) 1 CAPABILITY * CAPABILITY IMAP4REV1 IDLE NAMESPACE MAILBOX­REFERRALS BINARY  UNSELECT SCAN SOR         T THREAD=REFERENCES  THREAD=ORDEREDSUBJECT MULTIAPPEND LOGIN­REFERRALS AUTH=LOGIN 1 OK CAPABILITY completed 2 LOGIN iker@irontec.com ******** 2 OK [CAPABILITY IMAP4REV1 IDLE NAMESPACE MAILBOX­REFERRALS  BINARY UNSELECT SCAN          SORT THREAD=REFERENCES  THREAD=ORDEREDSUBJECT MULTIAPPEND] User iker@irontec.com           authenticated 3 NAMESPACE * NAMESPACE (("" "/")("#mhinbox" NIL)("#mh/" "/")) (("~" "/"))  (("#shared/" "/")         ("#ftp/" "/")("#news." ".")("#public/"  "/")) 3 OK NAMESPACE completed SELECT INBOX.Sent SELECT BAD Command unrecognized: INBOX.SENT 4 SELECT INBOX.Sent * 1 EXISTS * 0 RECENT 38
  • 39. Irontec – Curso SMTP 1 IMAP vs POP Ventajas POP ● Protocolo muy simple. Fácil implementación. ● Actualmente hay más clientes que lo soportan. ● Consume menos recursos de la máquina servidora. 39
  • 40. Irontec – Curso SMTP 1 IMAP vs POP Ventajas IMAP ● Puede manipular correos con distintos flags. Definibles por usuario. ● Puede acceder y manipular múltiples buzones. ● Puede almacenar correos tan bien como los recoge. ● Permite actualizaciones concurrentes y acceso a buzones compartidos. ● Diseñado para optimizar el acceso online, especialmente en accesos de baja velocidad. 40
  • 41. Irontec – Curso SMTP 1 Introducción – Mailbox Introducción Buzones (Mailbox) 41
  • 42. Irontec – Curso SMTP 1 Mailbox – mbox ● Es el método tradicional de almacenar correos en servidores tipo UNIX. ● Los correos según van llegando se van concatenando en un único archivo. ● Para indicar fin y comienzo de mail: – Cada correo empieza por From: From aktor@aktornet.ath.cx Fri Feb 27 09:27:55 2004 – Y acaba por línea en blanco AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # fin de archivo adjunto ------=NEOMAIL_ATT_0.0743188935603065-- # fin de indicador adjunto # Línea en blanco From gorka@irontec.com Fri Feb 27 11:56:54 2004 # From: sig. mail 42
  • 43. Irontec – Curso SMTP 1 Mailbox – mbox ● Solo un proceso puede abrir el archivo mbox en modo lectura/escritura. ● Acceso concurrente requiere mecanismo de bloqueo. ● Durante la actualización del archivo mbox, todo el resto deben esperar. ● Por defecto el archivo es: – /var/spool/mail/usuario 43
  • 44. Irontec – Curso SMTP 1 Mailbox – Maildir ● Implementados inicialmente por el servidor Qmail para mejorar los mbox. ● Cada mensaje en un archivo individual. ● Mensaje en formato RFC 822. – Comienza con la cabecera Return-Path: – Seguido de la cabecera Delivered-To: Return-Path: <irontec-bounces@aktornet.ath.cx> Delivered-To: aktor@aktornet.ath.cx Received: from aktornet.ath.cx (localhost [127.0.0.1]) by AsteriX (Postfix) with ESMTP id 9D81A2EAAD; Mon, 12 Jan 2004 21:48:47 +0100 (CET) – No puede acabar con línea en blanco. ● No es necesario bloquear los correos. 44
  • 45. Irontec – Curso SMTP 1 Mailbox – Maildir ● Hay un procedimiento definido de añadir nuevos correos al maildir. ● Un maildir se compone por 3 subdirectorios: tmp, cur, new. ● Existe una manera definida para nombrar a cada archivo. 1090878520.M967905P7992V0000000000000803I0001806F_0.AsteriX,S=2541 1090878520.M967905P7992V0000000000000803I0001806F_0.AsteriX,S=2541:2,FS new: time.MusecPpidVdevIino.host,S=cnt cur: time.MusecPpidVdevIino.host,S=cnt:2,info cnt: tamaño de archivo. Sirve para optimizar el trabajo con quotas. info: estado del mail. 0 ó + flags. Orden alfabético. F: marcado, R: Replied-To, T: Trashed, D: Draft, S: Seen ● Multiples procesos pueden acceder al mismo tiempo a los maildirs 45
  • 46. Irontec – Curso SMTP 1 Mailbox – Maildir Maildirmake ● Comando para crear maildirs. ● Crea automáticamente los 3 directorios: – new – cur – tmp ● Sintaxis $ maildirmake [opciones] maildir 46
  • 47. Irontec – Curso SMTP 1 Mailbox – Maildir Ejemplo ● Indicamos la quota a aplicar sobre el maildir. maildirmake ­q quota ● Crea un maildir “compartible”. Diferentes permisos. maildirmake ­S ● No crea un maildir, sino una carpeta dentro del maildir. maildirmake ­f folder:  ~$ maildirmake ­q 5000000S,1000C ./Maildir/ 47
  • 48. Irontec – Curso SMTP 1 Mailbox – mbox vs Maildir ● Maildir lo soportan menos MUA's que mbox. ● Mbox muy poco eficiente para mailboxes grandes. ● Maildir, al ser múltiples archivos, suele ocupar más espacio en disco. Cluster Size. ● Maildir trabaja muy bien con NFS, que tiene grandes problemas históricos con bloqueos. ● apt-get install mb2md ;-P ● Todo lo anterior mencionado ;-) 48
  • 49. Irontec – Curso SMTP 2 Postfix Postfix (SMTP Server) http://www.postfix.org 49
  • 50. Irontec – Curso SMTP 2 Postfix ● Servidor de correo que funciona sobre sistemas tipo UNIX. ● Su intención fue la de sustituir a sendmail. Compatible para el resto de aplicaciones. ● Arquitectura y diseño muy modular. ● Fácil de administrar y configurar. ● Muy rápido. Fué diseñado pensando en el rendimiento. Evita saturar otros sistemas. ● Repartir correo de forma local puede repartir a almacen de correo o pasarlo a un MDA. ● Escrito en C. Wietse Zweitze Venema, IBM hacker. 50
  • 51. Irontec – Curso SMTP 2 Postfix ● Arquitectura modular: Cada proceso se ejecuta con privilegios mínimos para su tarea. ● Procesos que no se necesitan se deshabilitan: no se pueden explotar. Postfix GW. ● Los procesos se aislan unos de otros. Muy poca comunicación entre procesos (IPC). ● Evita utilizar buffers de tamaño fijo, evitando que tengan éxito ataques buffer overflow ● Puede ejecutarse chrootado (/var/spool/postfix). ● Preparado para ataques DoS. Cantidad de memoria controlada. 51
  • 52. Irontec – Curso SMTP Postfix ● Postfix 52
  • 53. 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 53
  • 54. Irontec – Curso SMTP 2 Postfix ● Postfix gestiona las colas mediante procesos independientes. – Pickup: Recoge los correos que provienen de la cola maildrop y los pasa a cleanup. – Smtpd: Este proceso atiende, mediante protocolo SMTP, los correos de otros sistemas. – Cleanup: Analiza las cabeceras de los correos. Si ok, los deposita en la cola incoming. – Qmgr: Proceso encagargado de tratar los correos que llegan a incoming, depositarlos en active y lanzar el proceso adecuado para su encaminamiento: local, smtp o pipe. 54
  • 55. Irontec – Curso SMTP 2 Postfix – Local: Proceso encargado de depositar el correo en el buzón. – Smtp: Proceso encargado de enviar el correo al host destino mediante protocolo SMTP. 55
  • 56. Irontec – Curso SMTP 2 Postfix ● Las tablas, creadas por el administrador, sirven a los procesos para saber que tratamiento hay que dar a cada correo. Son 6 tablas aunque no son obligatorias. – Access: Sistemas a los que se acepta o rechaza los correos. La utiliza proceso smtpd. – Aliases: Define nombres alternativos a usuarios locales. Consulta el proceso local. – Canonical: Relación entre nombres alternativos y reales, locales o no. Proceso cleanup. 56
  • 57. Irontec – Curso SMTP 2 Postfix – Relocated: Devolver los mensajes que han cambiado de dirección. Proceso qmgr. – Transport: Política de encaminamiento por dominios. Proceso trivial-rewrite. – Virtual: Relación entre usuarios virtuales y reales. Proceso cleanup. 57
  • 58. Irontec – Curso SMTP 2 Postfix ● Postfix soporta muy diversos soportes de backend para las tablas. Algunos de ellos: – Hash: El archivo generado es un hash. Disponible para sistemas con soporte BD db. – MySQL: Mapeo de las tablas de postfix a MySQL. – PostgreSQL: Mapeo de las tablas de postfix a PostgreSQL. – LDAP: Mapeo de las tablas de postfix a LDAP. Actualmente es la mejor solución aunque la más complicada de implementar, sobre todo contra Active Directory. No hay esquemas propios para LDAP. 58
  • 59. Irontec – Curso SMTP Arquitectura ● La arquitectura de correo a instalar es la siguiente: – Postfix – Courier Imap – PostfixAdmin – MailScanner ● SpamAssassin ● Clamav ● MailWatch – Squirrelmail 59
  • 60. Irontec – Curso SMTP Postfix ● Instalación ● Gracias al gestor de paquetes es sencillo instalar Postfix en pocos minutos. apt­get install postfix postfix­mysql ● Los ficheros de configuración se encuentran en /etc/postfix ● Parar Postfix: /etc/init.d/postfix stop ● Arrancar Postfix: /etc/init.d/postfix start ● Reiniciar Postfix: /etc/init.d/postfix restart 60
  • 61. Irontec – Curso SMTP 2 Archivos de Configuración main.cf [ Debian: /etc/postfix/main.cf ] – Archivo de configuración principal de postfix. La mayoría de los cambios aquí. master.cf [ Debian: /etc/postfix/master.cf ] – Archivo de configuración del demonio master. Servicios o transporte. aliases [ Debian: /etc/aliases ] – Archivo de alias. Equivalencia entre una dirección local ficticia y una dirección local real 61
  • 62. Irontec – Curso SMTP 2 Archivos de Configuración main.cf – Contiene unos pocos de todos los parámetros que controlan el comportamiento de Postfix. postconf -n – Los parámetros no especificados cogen su valor por defecto. postconf -d – Si no sabemos para que sirve un parámetro, mejor dejarlo con su valor por defecto. 62
  • 63. Irontec – Curso SMTP 2 Archivos de Configuración main.cf – Formato parámetro = valor – Linea en blanco, # comentario y espacios antes y despues del = no importan. – Cada parámetro 1 línea. Si siguiente línea empieza por ESPACIO, es que continúa. smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination – $variable recibe el valor de otro parámetro. (mydestination = $myhostname) 63
  • 64. Irontec – Curso SMTP 2 Proceso de filtrado ● Posftix permite realizar una serie de tareas de filtrado de acuerdo al siguiente orden: – Restricciones SMTPD ● Estados de Restricción smtpd_client_restrictions smtpd_helo_restrictions smtpd_sender_restrictions smtpd_recipient_restrictions smtpd_data_restrictions ● Restricciones ● Listas de acceso (mapas) – Comprobaciones de Cabeceras/Cuerpo del mail – Filtros de Contenidos 64
  • 65. Irontec – Curso SMTP 2 Comandos ● Algunos de los comandos más interesantes de Postfix: – mailq: lista el contenido de la cola de correo. Muestra el ID de cola, tamaño del correo, hora llegada, remitente y destinatario/s. Si no se ha podido entregar, muestra la razón. Enlace simbólico a sendmail (compatibilidad). – newaliases: actualiza la base de datos de los alias (/etc/aliases). Enlace simbólico a sendmail (compatibilidad). – postsuper: se encarga de realizar operaciones de mantenimiento 65
  • 66. Irontec – Curso SMTP 2 Comandos – postqueue: comando que sirve de interfaz para la gestión de las colas. – postmap: crea, actualiza o consulta una o más tablas de postfix. – postconf: muestra los valores actuales de los parámetros de postfix. 66
  • 67. Irontec – Curso SMTP 2 Registros mail.log [Debian: /var/log/mail.log] – Fichero donde se registran todas las acciones del servidor postfix. mail.err [Debian: /var/log/mail.err] – Fichero donde se registran los errores que se producen en postfix. mail.info [Debian: /var/log/mail.info] – Fichero donde se registran todas las acciones del servidor postfix. 67
  • 68. Irontec – Curso SMTP 6 Pflogsumm Pflogsumm (Visor de Logs) http://jimsun.linxnet.com/postfix_contrib.html 68
  • 69. Irontec – Curso SMTP 6 Características ● Es una herramienta para generar informes del correo que gestiona un MTA tipo Postfix. ● Genera informes muy completos sobre la cantidad de correos enviados y recibidos, por día, por hora, por remitente, por destinatario, errores... ordenados según diferentes criterios. ● Escrito en Perl 5.0 69
  • 70. Irontec – Curso SMTP 6 Instalación ● Instalamos el visor de logs. # apt-get install pflogsumm 70
  • 71. Irontec – Curso SMTP 6 Modo de Uso # /usr/sbin/pflogsumm [opciones] [archivo] – Mostrar el histórico de los correos enviados ayer # pflogsumm -d yesterday /var/log/mail.log – Mostrar el histórico de los correos enviados hoy # pflogsumm -d today /var/log/mail.log – Mostrar el histórico de los correos enviados durante esta semana (por defecto los log rotan cada semana) # pflogsumm /var/log/mail.log 71
  • 72. Irontec – Curso SMTP 6 Automatizar la generación de informes ● A menudo puede resultar interesante la generación de informes de forma automática. Si encima los recibimos por email todavía mejor ;-) ● Utilizaremos la herramienta cron ● Envio de informe diario ● # Script que enviará diariamente a las 7:00 am ● # a la cuenta de postmaster un correo con el asunto: ● # “estadísticas diarias de <nombre_host>” y con el ● # resumen generado por pflogsumm como cuerpo del mismo 0 7 * * * /usr/sbin/pflogsumm -d yesterday /var/log/mail.log 2>&1 | /usr/bin/mailx -s "estadísticas diarias de $ (uname -n)" postmaster 72
  • 73. Irontec – Curso SMTP 6 PostfixAdmin Postfix Admin 73
  • 74. Irontec – Curso SMTP PostfixAdmin ● La configuración de Postfix la dejamos para el final. Vamos a instalar PostfixAdmin ● Es una web de administración de usuarios y dominios virtuales para nuestro servidor de correo ● Necesita para funcionar: – PHP – Apache – Mysql apt-get install php5 php5-mysql php5-imap mysql-server apache2 74
  • 75. Irontec – Curso SMTP PostfixAdmin ● Creamos la Base de Datos y el usuario con privilegios de acceso a ella: debian­smtp:~# mysql ­u root ­p  Enter password:  Welcome to the MySQL monitor.  Commands end with ; or g.  Your MySQL connection id is 33  Server version: 5.0.51a­24+lenny2 (Debian)  Type 'help;' or 'h' for help. Type 'c' to clear the buffer.  mysql> CREATE DATABASE postfix;  Query OK, 1 row affected (0.01 sec)  mysql> CREATE USER 'postfix'@'localhost' IDENTIFIED BY 'password';  Query OK, 0 rows affected (0.00 sec)  mysql> GRANT ALL PRIVILEGES ON 'postfix'.* TO 'postfix'@'localhost';  Query OK, 0 rows affected (0.00 sec)  mysql> quit 75
  • 76. Irontec – Curso SMTP PostfixAdmin ● PostfixAdmin se descarga desde: – http://postfixadmin.sourceforge.net/ ● La instalación es tan sencilla como descomprimir el tar.gz y moverlo a /var/www ● El fichero de configuración es config.inc.php ● Hasta que no editemos ese fichero no funcionará nada. 76
  • 77. Irontec – Curso SMTP PostfixAdmin ● http://localhost/postfixadmin/setup.php ● En esta web nos indicará si cumplimos todos los requisitos para el correcto funcionamiento de la aplicación ● Será necesario generar un HASH que debemos introducir en el fichero de configuración. Será la setup password ● Cualquier problema o error de funcionamiento quedará reflejado en los logs de Apache 77
  • 78. Irontec – Curso SMTP PostfixAdmin $CONF['configured'] = true; $CONF['setup_password'] =  '4aa35a18f0f59b6f3a0c2c402f3ee931:016cf5f10aaa3c69511bf11f847c5 seaec20add8'; $CONF['postfix_admin_url'] = 'http://localhost/postfixadmin/'; $CONF['default_language'] = 'es'; $CONF['database_type'] = 'mysql'; $CONF['database_host'] = 'localhost'; $CONF['database_user'] = 'postfix'; $CONF['database_password'] = 'password'; $CONF['database_name'] = 'postfix'; $CONF['database_prefix'] = ''; $CONF['admin_email'] = 'administrador@dominio.com'; $CONF['encrypt'] = 'cleartext'; ....... 78
  • 79. Irontec – Curso SMTP PostfixAdmin ● Se crea un usuario de sistema, que será el que usen todos los procesos que necesiten acceder a los mailboxes. debian­smtp:~# useradd vmail debian­smtp:~# id vmail uid=1001(vmail) gid=1001(vmail)  grupos=1001(vmail) debian­smtp:~# mkdir /var/vmail debian­smtp:~# chown ­R vmail:vmail /var/vmail 79
  • 80. Irontec – Curso SMTP Postfix La Base de Datos tiene una serie de tablas: +­­­­­­­­­­­­­­­­­­­­­­­+ | Tables_in_postfix     | +­­­­­­­­­­­­­­­­­­­­­­­+ | admin                 |  | alias                 |  | alias_domain          |  | config                |  | domain                |  | domain_admins         |  | fetchmail             |  | log                   |  | mailbox               |  | quota                 |  | quota2                |  | vacation              |  | vacation_notification |  80
  • 81. Irontec – Curso SMTP Postfix ● Tendremos que crear una serie de ficheros y referenciarlos en main.cf para que Postfix sepa donde se guardan los datos. – relay_domains_maps.cf – virtual_alias_maps.cf – virtual_domains_maps.cf – virtual_mailbox_maps.cf – virtual_mailbox_limit_maps.cf 81
  • 82. Irontec – Curso SMTP Postfix ● relay_domains_maps.cf user = postfix password = password hosts = localhost dbname = postfix query = SELECT domain FROM domain WHERE  domain='%s' and backupmx = '1' 82
  • 83. Irontec – Curso SMTP Postfix ● virtual_alias_maps.cf user = postfix password = password hosts = localhost dbname = postfix query = SELECT goto FROM alias WHERE  address='%s' AND active = 1 83
  • 84. Irontec – Curso SMTP Postfix ● virtual_domains_maps.cf user = postfix password = password hosts = localhost dbname = postfix query = SELECT domain FROM domain WHERE  domain='%s' 84
  • 85. Irontec – Curso SMTP Postfix virtual_mailbox_maps.cf user = postfix password = password hosts = localhost dbname = postfix query = SELECT maildir FROM mailbox WHERE  username='%s' AND active = 1 85
  • 86. Irontec – Curso SMTP Postfix ● virtual_mailbox_limit_maps.cf user = postfix password = password hosts = localhost dbname = postfix query = SELECT quota FROM mailbox WHERE  username='%s' 86
  • 87. Irontec – Curso SMTP Postfix Referenciamos los ficheros en el main.cf virtual_alias_maps = proxy:mysql:/etc/postfix/virtual_alias_maps.cf virtual_mailbox_domains =  proxy:mysql:/etc/postfix/virtual_domains_maps.cf virtual_mailbox_maps = proxy:mysql:/etc/postfix/virtual_mailbox_maps.cf virtual_relay_domains = proxy:mysql:/etc/postfix/relay_domains_maps.cf virtual_mailbox_base = /var/vmail virtual_minimum_uid = 1001 virtual_transport = virtual virtual_uid_maps = static:1001 virtual_gid_maps = static:1001 local_transport = virtual 87
  • 88. Irontec – Curso SMTP 2 Postfix-SASL Postfix-SASL 88
  • 89. Irontec – Curso SMTP 2 Postfix-SASL ● Simple Authentication and Security Layer. ● Método de autenticación para protocolos orientados a la conexión. ● En sistemas de correo se utiliza para permitir hacer relay. ● Integrado en postfix. No es necesario utilizar librerías externas (Cyrus SASL Library). ● Permite distintos tipos de autenticación: ANONYMOUS, CRAM-MD5, DIGEST-MD5, GSSAPI, KERBEROS_V4, OTP, PLAIN, or LOGIN. ● RFC 2222 y 2554. AUTH. 89
  • 90. Irontec – Curso SMTP 2 Instalación ● Instalamos librerías para implementar la API de SASL # apt-get install libsasl2-2 ● Instalamos herramientas para administración de usuarios # apt-get install sasl2-bin ● Comprobamos que el demonio smtpd soporta sasl. $ ldd /usr/lib/postfix/smtpd libsasl2.so.2 => /usr/lib/libsasl2.so.2 (0x401a6000) 90
  • 91. Irontec – Curso SMTP 2 Instalación - main.cf ● Añadimos las siguientes líneas al main.cf smtpd_sasl_auth_enable = yes smtpd_sasl2_auth_enable = yes broken_sasl_auth_clients = yes smtpd_sasl_local_domain = $myhostname smtpd_recipient_restrictions =   permit_mynetworks,   permit_sasl_authenticated,   reject_unauth_destination smtpd_sasl_security_options = noanonymous 91
  • 92. Irontec – Curso SMTP 2 Instalación - pwcheck ● Existen varios métodos gestionar las contraseñas. – saslauth: Demonio Cyrus SASL contra cuentas UNIX. – auxprop: Archivo independiente de usuarios y contraseñas. ● Escogemos auxprop en archivo smtpd.conf [/etc/postfix/sasl/smtpd.conf] ● Escogemos los métodos de autenticación que queremos permitir. pwcheck_method: auxprop mech_list: plain login 92
  • 93. Irontec – Curso SMTP 2 Instalación - pwcheck ● Paramos el demonio de Cyrus saslauthd (/etc/default/saslauthd). START=no 93
  • 94. Irontec – Curso SMTP 2 Instalación - mysql ● Configuramos SASL para hacer uso de la Base de Datos MySQL. Será donde consultará los usuarios y contraseñas: debian-smtp:/etc/postfix/sasl# cat smtpd.conf pwcheck_method: auxprop mech_list: PLAIN LOGIN auxprop_plugin: sql sql_verbose: yes sql_engine: mysql sql_hostnames: 127.0.0.1 sql_user: postfix sql_passwd: password sql_database: postfix sql_select: select password from mailbox where username = '%u@%r' log_level: 7 94
  • 95. Irontec – Curso SMTP Chroot Postfix ● La conexión con la BBDD se hará mediante socket mysql, /var/run/mysqld/mysqld.sock ● Postfix por defecto funciona enjaulado (chroot), lo que da más seguridad, pero también algún problema en la configuración ● Como el socket está fuera de su chroot, no puede conectarse a mysql. ● ¿Solución? Enlace simbólico debian­smtp:~# cd /var/spool/postfix/var/run/ Debian­smtp:~# ln ­s /var/run/mysqld/mysqld.sock mysqld.sock 95
  • 96. Irontec – Curso SMTP 2 Postfix-TLS Postfix-TLS 96
  • 97. Irontec – Curso SMTP 2 Postfix-TLS ● Transport Security Layer. ● Se construye a partir de SSL 3.0. Muy similar. A veces se le llama SSL 3.1 ● Mejora la comunicación TCP añadiendo cifrado e integridad en los correos. ● No protege el contenido de los mails. Para ello PGP o S/MIME. ● Necesita un par de claves pública y privada. Autoridad Certificadora (CA). ● RFC 2487 y 3207. STARTTLS. ● En Postfix el parche lo hizo Kutz Jänicke. 97
  • 98. Irontec – Curso SMTP 2 Instalación ● El soporte TSL ya viene incluido en Postfix ● Instalamos soporte para SSL (Secure Socket Layer) # apt-get install openssl ● Creamos los certificados ssl. # openssl req -new -x509 -nodes -out smtpd.pem -keyout smtpd.pem -days 3650 98
  • 99. Irontec – Curso SMTP 2 Instalación - main.cf ● Añadimos las siguientes líneas al main.cf smtpd_use_tls = yes smtp_tls_note_starttls_offer = yes smtpd_tls_key_file = /etc/postfix/ssl/smtpd.pem smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.pem smtpd_tls_CAfile = /etc/postfix/ssl/smtpd.pem smtpd_tls_loglevel = 1 smtpd_tls_received_header = yes smtpd_tls_session_cache_timeout = 3600s tls_random_source = dev:/dev/urandom 99
  • 100. Irontec – Curso SMTP 3 Courier IMAP Courier IMAP (IMAP Server) http://www.courier-mta.org/imap/ 100
  • 101. Irontec – Curso SMTP 3 Características ● Es un servidor que da acceso IMAP a los Maildirs. Está diseñado para ello. ● Servidor IMAP incluido en Courier Mail Server. Configurado en solitario puede trabajar con otros MTA's que reparten a Maildirs. ● Soporta varias extensiones al formato Maildir básico como carpetas y quotas por soft. ● Incluye módulos de autenticación abstractos. Passwd, PAM, MySQL, PostreSQL, LDAP... ● Ofrece IMAP sobre SSL. Soporte IPv6. 101
  • 102. Irontec – Curso SMTP 3 Características ● Soporta carpetas compartidas entre grupos de usuarios. ● Permite limitar el nº de accesos de IMAP y numero máximo de accesos desde la misma IP. ● Escrito en C. 102
  • 103. Irontec – Curso SMTP 3 Arquitectura 103
  • 104. Irontec – Curso SMTP 3 Instalación ● Instalamos los demonios para imap e imap- ssl de la suite de courier. # apt-get install courier-imap courier-imap-ssl ● Instalamos los demonios y librerías genéricas de courier. # apt-get install courier-authdaemon courier-base courier-ssl 104
  • 105. Irontec – Curso SMTP 3 Archivo de Configuración SSL imapd.cnf [ Debian: /etc/courier/imapd.cnf ] [ req ] default_bits = 1024 encrypt_key = yes distinguished_name = req_dn x509_extensions = cert_type prompt = no [ req_dn ] C=ES ST=Bizkaia L=Bilbao O=Irontec - Internet y Sistemas sobre GNU/LinuX OU=Sistemas CN=mail.irontec.com emailAddress=sistemas@irontec.com 105
  • 106. Irontec – Curso SMTP 3 Certificado Digital ● Generamos la clave privada # openssl genrsa -out mail.irontec.com.key 1024 ● Generamos la solicitud de certificado firmado # openssl req -new -key mail.irontec.com.key -config imapd.cnf -out mail.irontec.com.csr ● Generamos un certificado firmado mediante una CA # openssl ca -out mail.irontec.com.crt -in mail.irontec.com.csr 106
  • 107. Irontec – Curso SMTP 3 Configuración SSL ● El certificado de Courier tiene que estar formado por: – Clave privada del servidor – Certificado firmado por una CA ● Unicamente desde -----BEGIN CERTIFICATE---- – Editamos y eliminamos el resto – Parámetros DH # cat mail.irontec.com.key mail.irontec.com.crt > mail.irontec.com.pem # openssl gendh >> mail.irontec.com.pem 107
  • 108. Irontec – Curso SMTP 3 Configuración SSL # cat www.irontec.com.pem  ­­­­­BEGIN RSA PRIVATE KEY­­­­­ MIICXAIBAAKBgQDWP7WzRg7DNpXgF94YsqPr84p08sAWcM6jXdG1QQZhuWBtyoWU 0DnpLndcjV5At6IdQ7ZqSi6XbE1jEONyIZ3Ruimrd2+gks8a9NkQoI2YLjTTR5dL EAZxasb3AkEA3dsqgh7cBItGaC7PYve0vcH4gMYTiOR1NHzQHv4uojdAxvCGxdRV qEYEUBnNGcYyltbSzLFKt7Npz6RORpB4lwJBAL7eSyORtWJ1RT4WnceIOWf6Kkaa a4NEJttVYYBw+8muVQgnnM/MbjlzRUcDm9HL82sd9rZXAvh2dj30oWTTUYUCQQCh OiQTOe/00W5SSipmptNPz8YTd1887aILieUJkPk84+CMcsHOxPeW+YMq3wVBhNrA 6c95+CHvjFAKGULVXypzAj9VpUkgGwDmCFayOs4zwa5MN6B2G4NN6EsNDu/SWcY/ E/skSXjRI7RhcR3cle7KDqaQJJAI/TOFhV43OWC1q1Q= ­­­­­END RSA PRIVATE KEY­­­­­ ­­­­­BEGIN CERTIFICATE­­­­­ MIIDrDCCAxWgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBkDELMAkGA1UEBhMCRVMx EDAOBgNVBAgTB0JpemthaWExDzANBgNVBAcTBkJpbGJhbzEQMA4GA1UEChMHSXJv hvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYE w6tWudMrm8QFoYGWpIGTMIGQMQswCQYDVQQGEwJFUzEQMA4GA1UECBMHQml6a2Fp YTEPMA0GA1UEBxMGQmlsYmFvMRAwDgYDVQQKEwdJcm9udGVjMREwDwYDVQQLEwhT aXN0ZW1hczEUMBIGA1UEAxMLaXJvbnRlYy5jb20xIzAhBgkqhkiG9w0BCQEWFHNp c3RlbWFzQGlyb250ZWMuY29tggkAhSHOIQtatpswDQYJKoZIhvcNAQEEBQADgYEA M1S8cMkUC/nE5gnpiEWg+lYcHuJsNs6uBTNn7PdUiRqZOTCcucqIpIV1iwe6OxsX Yz3DQe3JCXcF+3BsGTt9hrrTTNOgoEZLEPlTHUV3dVZnm0wNlMuobfM0p6BhS+m2 NWFMQKpE79rWcgShkLeJfzlIzDWRchzj4205Fpe+VMo= ­­­­­END CERTIFICATE­­­­­ ­­­­­BEGIN DH PARAMETERS­­­­­ MEYCQQDTT1zESN4Dzbp9mL0bIdbbS/CafrR2Q0RvWumpPYQX4jjwKk3mEttinZ4H wzMDbuS8a5EgRTRk67TPq0H/uBIDAgEC ­­­­­END DH PARAMETERS­­­­­ 108
  • 109. Irontec – Curso SMTP 3 Courier POP Courier POP (POP Server) http://www.courier-mta.org/imap/ 109
  • 110. Irontec – Curso SMTP 3 Instalación ● Instalamos los demonios para pop e pop- ssl de la suite de courier. # apt-get install courier-pop courier-pop-ssl ● Instalamos los demonios y librerías genéricas de courier (en caso de no tenerlas ya) # apt-get install courier-authdaemon courier-base courier-ssl 110
  • 111. Irontec – Curso SMTP Autenticación ● La autenticación en courier se realiza mediante el authdaemon. ● Al igual que con el resto de servicios, debemos configurarlo para hacer uso de los datos almacenados en MySQL. ● Creamos el fichero /etc/courier/authmysqlrc 111
  • 112. Irontec – Curso SMTP Autenticación MYSQL_SERVER localhost MYSQL_USERNAME postfix MYSQL_PASSWORD password MYSQL_DATABASE postfix MYSQL_USER_TABLE mailbox MYSQL_CLEAR_PWFIELD  password MYSQL_UID_FIELD 1001 MYSQL_GID_FIELD 1001 MYSQL_LOGIN_FIELD username MYSQL_HOME_FIELD'/var/vmail' MYSQL_NAME_FIELDname MYSQL_MAILDIR_FIELD maildir MYSQL_QUOTA_FIELD quota MYSQL_SOCKET /var/run/mysqld/mysqld.sock 112
  • 113. 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 113
  • 114. Irontec – Curso SMTP Spam 114
  • 115. 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 115
  • 116. 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. 116
  • 117. Irontec – Curso SMTP SPAM ● Las medidas anti spam a nivel de MTA son más rápidas y producen menos impacto en el servidor ● Son menos fléxibles ● Son un todo o nada, o el correo se acepta o se rechaza ● A nivel de MTA se deben poner aquellas comprobaciones que sabemos que identifican un spam con un 99% de fiabilidad ;) 117
  • 118. Irontec – Curso SMTP SPAM ● Listas negras (RBL) smtpd_client_restrictions =   permit_mynetworks   permit_sasl_authenticated   reject_unknown_client   reject_rbl_client sbl­xbl.spamhaus.org   reject_rbl_client bl.spamcop.net   reject_rbl_client rbl.dns­servicios.com 118
  • 119. Irontec – Curso SMTP SPAM SPF, direcciones desconocidas... smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination reject_non_fqdn_recipient reject_unknown_recipient_domain check_policy_service unix:private/policyd-spf check_policy_service inet:127.0.0.1:10031 119
  • 120. Irontec – Curso SMTP SPAM ● Comprobación del HELO smtpd_helo_restrictions = reject_invalid_hostname reject_unknown_hostname reject_non_fqdn_hostname 120
  • 121. Irontec – Curso SMTP 4 SpamAssassin SpamAssassin (Anti-spam) http://spamassassin.apache.org/ 121
  • 122. Irontec – Curso SMTP 4 Características ● Es un filtro para correos que se utiliza para identificar el SPAM (UBE o UCE). ● Realiza una serie de pruebas sobre el correo para comprobar si es spam o no. ● Utiliza análisis bayesianos. Los usuarios pueden entrenarle para que aprenda. ● Soporta gran cantidad de listas negras (mail- abuse.org, ordb.org, ...) ● Diseñado para ser llamado por los archivos .mailfilter o .forward del MDA de un usuario, aunque puede ser integrado junto al MTA. ● Resulta muy pesado para la máquina en el que está instalado. ● Escrito en Perl. 122
  • 123. Irontec – Curso SMTP 4 Instalación ● Instalamos el software demonio y cliente anti spam. # apt-get install spamassassin spamc 123
  • 124. Irontec – Curso SMTP 4 Ejemplo – GTUBE ● Mail de prueba. SpamAssassin le otorga 1000.0 puntos. Subject: Test spam mail (GTUBE) Message-ID: <GTUBE1.1010101@example.net> Date: Wed, 23 Jul 2003 23:30:00 +0200 From: Sender <sender@example.net> To: Recipient <recipient@example.net> Precedence: junk MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit This is the GTUBE, the Generic Test for Unsolicited Bulk Email 124
  • 125. Irontec – Curso SMTP 4 Aprendizaje ● Comando para el aprendizaje del SpamAssassin. $ sa-learn [opciones] archivo/s – Aprende los correos del directorio ham como NO spam. sa-learn --ham ham – Aprende el correo X como spam. sa-learn --spam ~/Maildir/spam/X – Olvida el correo archivo que le hicimos aprender. sa-learn –-forget archivo 125
  • 126. Irontec – Curso SMTP 4 Aprendizaje – Los correos entrantes están en formato mbox. sa-learn –-mbox – Muestra el contenido de las BD bayesianas. sa-learn –-dump [all|data|magic] 126
  • 127. 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 127
  • 128. Irontec – Curso SMTP Spam ● Amavis 128
  • 129. Irontec – Curso SMTP Spam ● MailScanner 129
  • 130. Irontec – Curso SMTP 8 Squirrelmail SquirrelMail (Web Mail) http://www.squirrelmail.org 130
  • 131. Irontec – Curso SMTP 8 Características ● Es un software que permite leer el correo mediante un navegador web. ● Utiliza los protocolos IMAP y SMTP embebidos. ● Dispone de una gran variedad de plugins. ● No requiere de Javascript. ● No requiere de MySQL. ● Cliente de correo altamente estable. ● Muy sencillo de configurar e instalar. Script PERL. ● Soporte multi-lenguage. ● Escrito en HTML y PHP. Estándares. 131
  • 132. Irontec – Curso SMTP 8 Opciones Básicas ● La interfaz web dispone de los siguientes menús: – Componer ● Redactar y enviar mensajes con adjuntos – Direcciones ● Libreta de direcciones. – Carpetas ● Permite manipular las carpetas – Opciones ● Ajustar las opciones de Squirrelmail – Buscar ● Realizar un filtrado de los correos en base a un patron. 132
  • 133. Irontec – Curso SMTP 8 Instalación ● Instalamos el webmail # apt-get install squirrelmail squirrelmail-locales ● Squirrelmail necesita un servidor web con soporte para php4 # apt-get install apache2 php5 libapache2-mod-php5 133
  • 134. Irontec – Curso SMTP 8 Archivos de Configuración ● Incluimos las directivas para integrarlo con apache. – Insertamos la siguiente línea en el archivo httpd.conf de apache: ● httpd.conf [ Debian: /etc/apache2/httpd.conf] Include /etc/squirrelmail/apache.conf 134
  • 135. Irontec – Curso SMTP 8 Archivos de Configuración # /usr/sbin/squirrelmail­configure SquirrelMail Configuration : Read: config.php (1.4.0) ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ Main Menu ­­ 1.  Organization Preferences 2.  Server Settings 3.  Folder Defaults 4.  General Options 5.  Themes 6.  Address Books 7.  Message of the Day (MOTD) 8.  Plugins 9.  Database 10. Languages D.  Set pre­defined settings for specific IMAP servers C   Turn color on S   Save data Q   Quit Command >> 135
  • 136. Irontec – Curso SMTP 8 Archivos de Configuración – Courier IMAP ● Configuramos squirrelmail para integrarlo con courier-imap – Main Menu ● Server Settings – Update IMAP Settings 8. Server software : courier 136
  • 137. Irontec – Curso SMTP 8 Plugins ● A fecha de hoy hay 223 plugins disponibles agrupados en 14 categorías. ● Disponibles en: – http://www.squirrelmail.org/plugins.php ● Descargar y descomprimir en: /usr/share/squirrelmail/plugins 137
  • 138. Irontec – Curso SMTP 8 Plugins ● A destacar: – View As HTML ● Permite ver un email como HTML o como texto plano – Autocomplete ● Busca en la agenda para autocompletar el destinatario – Calendars ● Creación de calendarios publicos o limitados. – Dictionary ● Comprueba la ortografía del texto redactado. – GPG ● Soporte para firmas/cifrado GPG 138
  • 139. Irontec – Curso SMTP Mail2FAX ● Es posible enviar un Fax mediante correo electrónico. ● Solo son necesarias dos herramientas, Postfix + Hylafax. ● Una vez hecho, podremos envíar fax con solo redactar un correo para: 66666666@fax.dominio.com 139
  • 140. Irontec – Curso SMTP Mail2Fax ● Lo instalamos fácilmente con apt: # apt-get install hylafax-server ● Tras la instalación ejecutamos el siguiente comando y configuramos los parámetros generales. # faxsetup ● Si queremos añadir otro módem al sistema, ejecutamos: # faxaddmodem 140
  • 141. Irontec – Curso SMTP Mail2Fax ● Ahora nos toca configurar Postfix:     /etc/postfix/master.cf:         fax       unix  ­       n       n       ­       1       pipe             flags= user=fax argv=/usr/bin/faxmail ­d ­n ${user}     /etc/postfix/transport:         fax.your.domain   fax:localhost     /etc/postfix/main.cf:         transport_maps = hash:/etc/postfix/transport         fax_destination_recipient_limit = 1 141
  • 142. Irontec – Curso SMTP Monitorización Monitorización 142
  • 143. Irontec – Curso SMTP MyTOP ● El TOP de MySQL :-) 143
  • 144. Irontec – Curso SMTP Mailgraph 144
  • 145. Irontec – Curso SMTP Queuegraph 145
  • 146. Irontec – Curso SMTP Couriergraph 146
  • 147. Irontec – Curso SMTP Bindgraph 147
  • 148. Irontec – Curso SMTP Mailwatch 148
  • 149. Irontec – Curso SMTP Se acabó miguelangel@irontec.com miguel2angel http://miguelangelnieto.net 149
  • 150. Irontec – Curso SMTP X Licencia Copyleft Este documento está protegido bajo la licencia Attribution-ShareAlike 2.0 de Creative Commons (http://creativecommons.org/licenses/by- sa/2.0/) 2010 Miguel Angel Nieto <miguelangel@irontec.com> 2004 Iker Sagasti Markina <iker@irontec.com> Se permite la copia, modificación, distribución, uso comercial y realización de la obra, siempre y cuando se reconozca la autoría de la misma, a no sea ser que se obtenga permiso expreso del autor. El autor permite distribuir obras derivadas a esta sólo si mantienen la misma licencia que esta obra. Esta nota no es la licencia completa de la obra, sino una traducción de la nota orientativa de la licencia original completa (jurídicamente válida). 150