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
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
ReturnPath: <iker@irontec.com>
XOriginalTo: miguelangel@irontec.com
DeliveredTo: miguelangel@irontec.com
Received: from irontec.com (106.858785.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
MessageId: <20090308123330.EE7E717D3E1@ironmail.irontec.com>
Date: Sun, 8 Mar 2009 13:33:24 +0100 (CET)
XMailScannerID: EE7E717D3E1.E1FC5
XIrontecMailScanner: Not scanned: please contact your Internet EMail
Service Provider for details
XIrontecMailScannerSpamCheck: 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)
XIrontecMailScannerSpamScore: ssss
XIrontecMailScannerFrom: iker@irontec.com
XIrontecMailScannerTo: miguelangel@irontec.com
XSpamStatus: Yes
XEvolutionSource: imap://miguelangel@ironmail.irontec.com/
MimeVersion: 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
250aktornet.ath.cx
250PIPELINING
250SIZE 10240000
250VRFY
250ETRN
250STARTTLS
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
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 LOGINREFERRALS AUTH=LOGIN]
mail.irontec.com I MAP4rev1 2003.339cpanel at Tue, 27 Jul 2004
03:38:14 +0200 (CEST)
1 CAPABILITY
* CAPABILITY IMAP4REV1 IDLE NAMESPACE MAILBOXREFERRALS BINARY
UNSELECT SCAN SOR T THREAD=REFERENCES
THREAD=ORDEREDSUBJECT MULTIAPPEND LOGINREFERRALS AUTH=LOGIN
1 OK CAPABILITY completed
2 LOGIN iker@irontec.com ********
2 OK [CAPABILITY IMAP4REV1 IDLE NAMESPACE MAILBOXREFERRALS
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
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
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
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.
aptget install postfix postfixmysql
● 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
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
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:
debiansmtp:~# 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.51a24+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
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.
debiansmtp:~# useradd vmail
debiansmtp:~# id vmail
uid=1001(vmail) gid=1001(vmail)
grupos=1001(vmail)
debiansmtp:~# mkdir /var/vmail
debiansmtp:~# 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
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
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
debiansmtp:~# cd /var/spool/postfix/var/run/
Debiansmtp:~# ln s /var/run/mysqld/mysqld.sock mysqld.sock
95
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
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
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
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
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
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
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
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/squirrelmailconfigure
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 predefined 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
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