Anda di halaman 1dari 150

SMTP

Miguel ngel Nieto <miguelangel@irontec.com> Irontec Internet y Sistemas sobre GNU/Linux

Irontec Curso SMTP

Introduccin DNS

El DNS evita que tengamos que aprender cientos de IP. Tambin nos ayuda a encontrar los servidores de correo. Los servidores DNS escuchan en el puerto 53 UDP. Tcnicamente es posible imaginar Internet sin servidores DNS. Alguno se sabe la IP de google.com de memoria? :)

Irontec Curso SMTP

Introduccin DNS

Los dominios pueden incluir letras, nmero 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 (tambin llamado Fully Qualified Domain Name) Cul es el FQDN de nuestro host?

Irontec Curso SMTP

Introduccin DNS

Existen 13 servidores en todo el mundo conocidos como DNS Raz Estos conocen dnde estn 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 intencin de tirarlos abajo

Irontec Curso SMTP

Introduccin 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 prctico Es posible desactivar el uso de hosts o de los DNS en nuestro equipo

Irontec Curso SMTP

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

Irontec Curso SMTP

Registros DNS

Existen varios tipos de registros DNS a consultar, los ms imporantes son:


A MX CNAME TXT NS LOC SOA PTR

Irontec Curso SMTP

Registro A

El registro A es el que ms utilizamos a lo largo del da 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. Cul puede ser la razn 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 tambin podemos tener distintas respuestas El registro A y el registro MX no tiene porque tener la misma mquina 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?

Irontec Curso SMTP

Registro CNAME

Cname es un Alias Una mquina 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 razn, 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 tambin para evitar el SPAM y la posible suplantacin 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 mnimo dos y que estos estn fisicamente separados

12

Irontec Curso SMTP

Registro LOC

Sirve para indicar las coordenadas del dominio, que suele corresponder con la localizacin 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 informacin 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 ms rapidas y los servidores soportan menos carga Pero si realizamos un cambio DNS de nuestros dominios, estos tardarn 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 resolucin a esdebian.org ;; Query time: 188 msec Seguna resolucin 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 aaden a resolv.conf Cambiad de dns y resolved dominios, para notar las posibles diferencias

18

Irontec Curso SMTP

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 sabra 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 travs del correo Spam/Virus las mayores amenazas

20

Irontec Curso SMTP

Protocolo SMTP

ESMTP: extensin del protocolo SMTP para adaptarse a las nuevas necesidades. Varias extensiones: 8BITMIME, DSN, STARTTLS, AUTH ... Permiten caractersticas adicionales como: reducir ancho de banda, reducir la latencia, recuperacin mejorada de errores. Para iniciar una conexin 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 aplicacin, generalmente instalada junto al MTA, que se encarga de entregar el correo en el buzn 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 lnea 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 lneas 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:~$telnetirontec.com25 Trying82.194.71.224... Connectedtoirontec.com. Escapecharacteris'^]'. 220ironmail.irontec.comESMTPPostfix(Debian/GNU) heloirontec.com 250ironmail.irontec.com mailfrom:iker@irontec.com 2502.1.0Ok rcptto:miguelangel@irontec.com 2502.1.5Ok data 354Enddatawith<CR><LF>.<CR><LF> Subject:Estoesunaprueba From:iker@irontec.com To:elamo@irontec.com Hola, Estemensajeesunaprueba. . 2502.0.0Ok:queuedasEE7E717D3E1 quit 2212.0.0Bye Connectionclosedbyforeignhost.

25

Irontec Curso SMTP

Protocolo SMTP
ReturnPath:<iker@irontec.com> XOriginalTo:miguelangel@irontec.com DeliveredTo:miguelangel@irontec.com Received:fromirontec.com(106.858785.dynamic.clientes.euskaltel.es [85.87.85.106])byironmail.irontec.com(Postfix)withSMTPidEE7E717D3E1 for<miguelangel@irontec.com>;Sun,8Mar200913:33:24+0100(CET) Subject:{Spam?}Estoesunaprueba From:iker@irontec.com To:elamo@irontec.com MessageId:<20090308123330.EE7E717D3E1@ironmail.irontec.com> Date:Sun,8Mar200913:33:24+0100(CET) XMailScannerID:EE7E717D3E1.E1FC5 XIrontecMailScanner:Notscanned:pleasecontactyourInternetEMail ServiceProviderfordetails XIrontecMailScannerSpamCheck:spam,SpamAssassin(noalmacenado, puntaje=4.103,requerido4,BAYES_500.00,RDNS_DYNAMIC0.10, RELAYCOUNTRY_ES0.00,SPF_FAIL4.00,SPF_HELO_FAIL0.00) XIrontecMailScannerSpamScore:ssss XIrontecMailScannerFrom:iker@irontec.com XIrontecMailScannerTo:miguelangel@irontec.com XSpamStatus:Yes XEvolutionSource:imap://miguelangel@ironmail.irontec.com/ MimeVersion:1.0

26

1
$telnetaktornet.ath.cx25 Trying80.35.230.140... ConnectedtoAsteriX. Escapecharacteris'^]'. 220aktornet.ath.cxESMTPPostfix ehlomail.irontec.com 250aktornet.ath.cx 250PIPELINING 250SIZE10240000 250VRFY 250ETRN 250STARTTLS 2508BITMIME mailfrom:<iker@irontec.com> 250Ok rcptto:<aktor@aktornet.ath.cx> 250Ok data 354Enddatawith<CR><LF>.<CR><LF>

Irontec Curso SMTP

Protocolo SMTP

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 das. Por lo que si el servidor se cae, hay tiempo suficiente para ponerlo en marcha y no perder ningn mensaje. Es un valor modificable en el servidor de correo

28

Irontec Curso SMTP

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. Mltiples RFC's.

29

Irontec Curso SMTP

MIME (Multiple Internet Mail Extensions)

Extensiones del Correo de Internet para Multiples propsitos. Caracteres ascii de 8 bits. Define la representacin estndar para cuerpos de correos complejos. Aparece como solucin a:

Codificacin de caracteres en diferentes idiomas. (0xf1), (0xd1). Contenido binario de 8 bits como: imgenes, sonidos, programas...

30

Irontec Curso SMTP

MIME (Multiple Internet Mail Extensions)

La transformacin de 7 a 8 bits la realiza el MUA habitualmente. Para codificar datos binarios se utiliza el formato base64. 33% ms de tamao. Cabeceras para definir el tipo de contenido MIME.

31

Irontec Curso SMTP

MIME - Ejemplo
MimeVersion:1.0 ContentType:multipart/mixed; boundary="Multipart=_Tue__27_Jul_2004_01_26_41_+0200_G2cYEnhBTt8g whnt" Multipart=_Tue__27_Jul_2004_01_26_41_+0200_G2cYEnhBTt8gwhnt ContentType:application/xgtar; name="scripts.iptables.tgz" ContentDisposition:attachment; filename="scripts.iptables.tgz" ContentTransferEncoding: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

Introduccin Recepcion Correo

Introduccin Recepcion Correo

33

Irontec Curso SMTP

POP (Post Office Protocol)

Protocolo de recepcin de correo. Diseado para acceder a los correos de modo off-line. Clientes estticos y sin conexin. Poco pesado para la mquina servidora. Conexin, descarga y desconexin. 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

POP Secuencia Comando Protocolo


$telnetmail.irontec.com110 Trying82.194.66.125... Connectedtomail.irontec.com. Escapecharacteris'^]'. +OKPOP3mail[cppop16.2]at[82.194.66.125] useriker@irontec.com +OKNeedapassword pass******** +OKYouhave509messagestotaling34295635octets from/home/ironwebs/mail/irontec.com/iker/inbox (fullloadpartialcacheoutdated/corruptedv0) stat +OK50934295053 Tralara ERRCommandnotimplemented

35

Irontec Curso SMTP

IMAP (Internet Message Access Protocol)

Protocolo de recepcin de correos. Mtodo acceso correo almacenados en almacn de correo remoto como si fuese local. Mensajes almacenados pueden ser accedidos de mltiples puntos sin moverlos. Protocolo soporta crear, modificar y/o eliminar buzones.

36

Irontec Curso SMTP

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. Mltiples RFC's. Actual: RFC 3501. Version 4.

37

Irontec Curso SMTP

IMAP Secuencia Comandos Protocolo


$telnetmail.irontec.com143 Trying82.194.66.125... Connectedtomail.irontec.com. Escapecharacteris'^]'. *OK[CAPABILITYIMAP4REV1LOGINREFERRALSAUTH=LOGIN] mail.irontec.comIMAP4rev12003.339cpanelatTue,27Jul2004 03:38:14+0200(CEST) 1CAPABILITY *CAPABILITYIMAP4REV1IDLENAMESPACEMAILBOXREFERRALSBINARY UNSELECTSCANSORTTHREAD=REFERENCES THREAD=ORDEREDSUBJECTMULTIAPPENDLOGINREFERRALSAUTH=LOGIN 1OKCAPABILITYcompleted 2LOGINiker@irontec.com******** 2OK[CAPABILITYIMAP4REV1IDLENAMESPACEMAILBOXREFERRALS BINARYUNSELECTSCANSORTTHREAD=REFERENCES THREAD=ORDEREDSUBJECTMULTIAPPEND]Useriker@irontec.com authenticated 3NAMESPACE *NAMESPACE(("""/")("#mhinbox"NIL)("#mh/""/"))(("~""/")) (("#shared/""/")("#ftp/""/")("#news."".")("#public/" "/")) 3OKNAMESPACEcompleted SELECTINBOX.Sent SELECTBADCommandunrecognized:INBOX.SENT 4SELECTINBOX.Sent *1EXISTS *0RECENT

38

Irontec Curso SMTP

IMAP vs POP

Ventajas POP Protocolo muy simple. Fcil implementacin. Actualmente hay ms clientes que lo soportan. Consume menos recursos de la mquina servidora.

39

Irontec Curso SMTP

IMAP vs POP

Ventajas IMAP Puede manipular correos con distintos flags. Definibles por usuario. Puede acceder y manipular mltiples buzones. Puede almacenar correos tan bien como los recoge. Permite actualizaciones concurrentes y acceso a buzones compartidos. Diseado para optimizar el acceso online, especialmente en accesos de baja velocidad.
40

Irontec Curso SMTP

Introduccin Mailbox

Introduccin Buzones (Mailbox)

41

Irontec Curso SMTP

Mailbox mbox

Es el mtodo tradicional de almacenar correos en servidores tipo UNIX. Los correos segn van llegando se van concatenando en un nico archivo. Para indicar fin y comienzo de mail:

Cada correo empieza por From: Y acaba por lnea en blanco

From aktor@aktornet.ath.cx Fri Feb 27 09:27:55 2004

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # fin de archivo adjunto ------=NEOMAIL_ATT_0.0743188935603065-# fin de indicador adjunto # Lnea en blanco From gorka@irontec.com Fri Feb 27 11:56:54 2004 # From: sig. mail

42

Irontec Curso SMTP

Mailbox mbox

Solo un proceso puede abrir el archivo mbox en modo lectura/escritura. Acceso concurrente requiere mecanismo de bloqueo. Durante la actualizacin del archivo mbox, todo el resto deben esperar. Por defecto el archivo es:

/var/spool/mail/usuario

43

Irontec Curso SMTP

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 lnea en blanco.

No es necesario bloquear los correos.


44

Irontec Curso SMTP

Mailbox Maildir

Hay un procedimiento definido de aadir 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: tamao de archivo. Sirve para optimizar el trabajo con quotas. info: estado del mail. 0 + flags. Orden alfabtico. 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

Mailbox Maildir

Maildirmake Comando para crear maildirs. Crea automticamente los 3 directorios:


new cur tmp

Sintaxis
$maildirmake[opciones]maildir

46

1
maildirmakeqquota

Irontec Curso SMTP

Mailbox Maildir

Ejemplo Indicamos la quota a aplicar sobre el maildir. Crea un maildir compartible. Diferentes permisos.
maildirmakeS

No crea un maildir, sino una carpeta dentro del maildir.


maildirmakeffolder: ~$maildirmakeq5000000S,1000C./Maildir/

47

Irontec Curso SMTP

Mailbox mbox vs Maildir

Maildir lo soportan menos MUA's que mbox. Mbox muy poco eficiente para mailboxes grandes. Maildir, al ser mltiples archivos, suele ocupar ms espacio en disco. Cluster Size. Maildir trabaja muy bien con NFS, que tiene grandes problemas histricos con bloqueos. apt-get install mb2md ;-P Todo lo anterior mencionado ;-)
48

2
Postfix (SMTP Server)

Irontec Curso SMTP

Postfix

http://www.postfix.org

49

Irontec Curso SMTP

Postfix Servidor de correo que funciona sobre sistemas tipo UNIX. Su intencin fue la de sustituir a sendmail. Compatible para el resto de aplicaciones. Arquitectura y diseo muy modular. Fcil de administrar y configurar. Muy rpido. Fu diseado 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

Postfix Arquitectura modular: Cada proceso se ejecuta con privilegios mnimos 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 comunicacin entre procesos (IPC). Evita utilizar buffers de tamao 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 estn 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 estn daados se mueven a esta cola

53

Irontec Curso SMTP

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

Postfix Local: Proceso encargado de depositar el correo en el buzn. Smtp: Proceso encargado de enviar el correo al host destino mediante protocolo SMTP.

55

Irontec Curso SMTP

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: Relacin entre nombres alternativos y reales, locales o no. Proceso cleanup.

56

Irontec Curso SMTP

Postfix Relocated: Devolver los mensajes que han cambiado de direccin. Proceso qmgr. Transport: Poltica de encaminamiento por dominios. Proceso trivial-rewrite. Virtual: Relacin entre usuarios virtuales y reales. Proceso cleanup.

57

Irontec Curso SMTP

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 solucin aunque la ms 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

Instalacin Gracias al gestor de paquetes es sencillo instalar Postfix en pocos minutos. aptgetinstallpostfixpostfixmysql Los ficheros de configuracin 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

Archivos de Configuracin
main.cf [ Debian: /etc/postfix/main.cf ]

Archivo de configuracin principal de postfix. La mayora de los cambios aqu. Archivo de configuracin del demonio master. Servicios o transporte. Archivo de alias. Equivalencia entre una direccin local ficticia y una direccin local real

master.cf [ Debian: /etc/postfix/master.cf ]

aliases [ Debian: /etc/aliases ]

61

2
main.cf postconf -n

Irontec Curso SMTP

Archivos de Configuracin

Contiene unos pocos de todos los parmetros que controlan el comportamiento de Postfix. Los parmetros no especificados cogen su valor por defecto.
postconf -d

Si no sabemos para que sirve un parmetro, mejor dejarlo con su valor por defecto.

62

2
main.cf

Irontec Curso SMTP

Archivos de Configuracin

Formato
parmetro = valor

Linea en blanco, # comentario y espacios antes y despues del = no importan. Cada parmetro 1 lnea. Si siguiente lnea empieza por ESPACIO, es que contina.
smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination

$variable recibe el valor de otro parmetro.


(mydestination = $myhostname)
63

Irontec Curso SMTP

Proceso de filtrado

Posftix permite realizar una serie de tareas de filtrado de acuerdo al siguiente orden:

Restricciones SMTPD

Estados de Restriccin
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

Comandos

Algunos de los comandos ms interesantes de Postfix:

mailq: lista el contenido de la cola de correo. Muestra el ID de cola, tamao del correo, hora llegada, remitente y destinatario/s. Si no se ha podido entregar, muestra la razn. Enlace simblico a sendmail (compatibilidad). newaliases: actualiza la base de datos de los alias (/etc/aliases). Enlace simblico a sendmail (compatibilidad). postsuper: se encarga de realizar operaciones de mantenimiento

65

Irontec Curso SMTP

Comandos postqueue: comando que sirve de interfaz para la gestin de las colas. postmap: crea, actualiza o consulta una o ms tablas de postfix. postconf: muestra los valores actuales de los parmetros de postfix.

66

2
mail.log [Debian: /var/log/mail.log] mail.err [Debian: /var/log/mail.err]

Irontec Curso SMTP

Registros

Fichero donde se registran todas las acciones del servidor postfix. Fichero donde se registran los errores que se producen en postfix. Fichero donde se registran todas las acciones del servidor postfix.

mail.info [Debian: /var/log/mail.info]

67

6
Pflogsumm (Visor de Logs)

Irontec Curso SMTP

Pflogsumm

http://jimsun.linxnet.com/postfix_contrib.html

68

Irontec Curso SMTP

Caractersticas 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 da, por hora, por remitente, por destinatario, errores... ordenados segn diferentes criterios. Escrito en Perl 5.0

69

Irontec Curso SMTP

Instalacin

Instalamos el visor de logs.


# apt-get install pflogsumm

70

6
# /usr/sbin/pflogsumm [opciones] [archivo] # pflogsumm -d yesterday /var/log/mail.log # pflogsumm -d today /var/log/mail.log

Irontec Curso SMTP

Modo de Uso

Mostrar el histrico de los correos enviados ayer Mostrar el histrico de los correos enviados hoy Mostrar el histrico de los correos enviados durante esta semana (por defecto los log rotan cada semana)

# pflogsumm /var/log/mail.log

71

Irontec Curso SMTP

Automatizar la generacin de informes

A menudo puede resultar interesante la generacin de informes de forma automtica. Si encima los recibimos por email todava 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: # estadsticas 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 "estadsticas diarias de $ (uname -n)" postmaster
72

6
Postfix Admin

Irontec Curso SMTP

PostfixAdmin

73

Irontec Curso SMTP

PostfixAdmin

La configuracin de Postfix la dejamos para el final. Vamos a instalar PostfixAdmin Es una web de administracin 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:

debiansmtp:~#mysqlurootp Enterpassword: WelcometotheMySQLmonitor.Commandsendwith;or\g. YourMySQLconnectionidis33 Serverversion:5.0.51a24+lenny2(Debian) Type'help;'or'\h'forhelp.Type'\c'toclearthebuffer. mysql>CREATEDATABASEpostfix; QueryOK,1rowaffected(0.01sec) mysql>CREATEUSER'postfix'@'localhost'IDENTIFIEDBY'password'; QueryOK,0rowsaffected(0.00sec) mysql>GRANTALLPRIVILEGESON'postfix'.*TO'postfix'@'localhost'; QueryOK,0rowsaffected(0.00sec) mysql> quit

75

Irontec Curso SMTP

PostfixAdmin

PostfixAdmin se descarga desde:

http://postfixadmin.sourceforge.net/

La instalacin es tan sencilla como descomprimir el tar.gz y moverlo a /var/www El fichero de configuracin 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 aplicacin Ser necesario generar un HASH que debemos introducir en el fichero de configuracin. 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.

debiansmtp:~#useraddvmail debiansmtp:~#idvmail uid=1001(vmail)gid=1001(vmail) grupos=1001(vmail) debiansmtp:~#mkdir/var/vmail debiansmtp:~#chownRvmail: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=SELECTdomainFROMdomainWHERE domain='%s'andbackupmx='1'

82

Irontec Curso SMTP

Postfix

virtual_alias_maps.cf

user=postfix password=password hosts=localhost dbname=postfix query=SELECTgotoFROMaliasWHERE address='%s'ANDactive=1

83

Irontec Curso SMTP

Postfix

virtual_domains_maps.cf

user=postfix password=password hosts=localhost dbname=postfix query=SELECTdomainFROMdomainWHERE domain='%s'

84

Irontec Curso SMTP

Postfix

virtual_mailbox_maps.cf

user=postfix password=password hosts=localhost dbname=postfix query=SELECTmaildirFROMmailboxWHERE username='%s'ANDactive=1

85

Irontec Curso SMTP

Postfix

virtual_mailbox_limit_maps.cf

user=postfix password=password hosts=localhost dbname=postfix query=SELECTquotaFROMmailboxWHERE 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

2
Postfix-SASL

Irontec Curso SMTP

Postfix-SASL

88

Irontec Curso SMTP

Postfix-SASL Simple Authentication and Security Layer. Mtodo de autenticacin para protocolos orientados a la conexin. En sistemas de correo se utiliza para permitir hacer relay. Integrado en postfix. No es necesario utilizar libreras externas (Cyrus SASL Library). Permite distintos tipos de autenticacin: ANONYMOUS, CRAM-MD5, DIGEST-MD5, GSSAPI, KERBEROS_V4, OTP, PLAIN, or LOGIN. RFC 2222 y 2554. AUTH.

89

Irontec Curso SMTP

Instalacin

Instalamos libreras para implementar la API de SASL


# apt-get install libsasl2-2

Instalamos herramientas para administracin 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

Instalacin - main.cf

Aadimos las siguientes lneas 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

Instalacin - pwcheck

Existen varios mtodos gestionar las contraseas.


saslauth: Demonio Cyrus SASL contra cuentas UNIX. auxprop: Archivo independiente de usuarios y contraseas.

Escogemos auxprop en archivo smtpd.conf [/etc/postfix/sasl/smtpd.conf] Escogemos los mtodos de autenticacin que queremos permitir.
pwcheck_method: auxprop mech_list: plain login

92

Irontec Curso SMTP

Instalacin - pwcheck

Paramos el demonio de Cyrus saslauthd (/etc/default/saslauthd).


START=no

93

Irontec Curso SMTP

Instalacin - mysql

Configuramos SASL para hacer uso de la Base de Datos MySQL. Ser donde consultar los usuarios y contraseas:

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 conexin con la BBDD se har mediante socket mysql, /var/run/mysqld/mysqld.sock Postfix por defecto funciona enjaulado (chroot), lo que da ms seguridad, pero tambin algn problema en la configuracin Como el socket est fuera de su chroot, no puede conectarse a mysql. Solucin? Enlace simblico

debiansmtp:~#cd/var/spool/postfix/var/run/ Debiansmtp:~#lns/var/run/mysqld/mysqld.sockmysqld.sock

95

2
Postfix-TLS

Irontec Curso SMTP

Postfix-TLS

96

Irontec Curso SMTP

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 comunicacin TCP aadiendo cifrado e integridad en los correos. No protege el contenido de los mails. Para ello PGP o S/MIME. Necesita un par de claves pblica y privada. Autoridad Certificadora (CA). RFC 2487 y 3207. STARTTLS. En Postfix el parche lo hizo Kutz Jnicke.

97

Irontec Curso SMTP

Instalacin

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

Instalacin - main.cf

Aadimos las siguientes lneas 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

3
Courier IMAP (IMAP Server)

Irontec Curso SMTP

Courier IMAP

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

100

Irontec Curso SMTP

Caractersticas Es un servidor que da acceso IMAP a los Maildirs. Est diseado 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 bsico como carpetas y quotas por soft. Incluye mdulos de autenticacin abstractos. Passwd, PAM, MySQL, PostreSQL, LDAP... Ofrece IMAP sobre SSL. Soporte IPv6.

101

Irontec Curso SMTP

Caractersticas Soporta carpetas compartidas entre grupos de usuarios. Permite limitar el n de accesos de IMAP y numero mximo de accesos desde la misma IP. Escrito en C.

102

Irontec Curso SMTP

Arquitectura

103

Irontec Curso SMTP

Instalacin

Instalamos los demonios para imap e imapssl de la suite de courier.


# apt-get install courier-imap courier-imap-ssl

Instalamos los demonios y libreras genricas de courier.


# apt-get install courier-authdaemon courier-base courier-ssl

104

Irontec Curso SMTP

Archivo de Configuracin 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

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

Configuracin 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

Parmetros DH

# cat mail.irontec.com.key mail.irontec.com.crt > mail.irontec.com.pem # openssl gendh >> mail.irontec.com.pem

107

Irontec Curso SMTP

Configuracin SSL
#catwww.irontec.com.pem BEGINRSAPRIVATEKEY MIICXAIBAAKBgQDWP7WzRg7DNpXgF94YsqPr84p08sAWcM6jXdG1QQZhuWBtyoWU 0DnpLndcjV5At6IdQ7ZqSi6XbE1jEONyIZ3Ruimrd2+gks8a9NkQoI2YLjTTR5dL EAZxasb3AkEA3dsqgh7cBItGaC7PYve0vcH4gMYTiOR1NHzQHv4uojdAxvCGxdRV qEYEUBnNGcYyltbSzLFKt7Npz6RORpB4lwJBAL7eSyORtWJ1RT4WnceIOWf6Kkaa a4NEJttVYYBw+8muVQgnnM/MbjlzRUcDm9HL82sd9rZXAvh2dj30oWTTUYUCQQCh OiQTOe/00W5SSipmptNPz8YTd1887aILieUJkPk84+CMcsHOxPeW+YMq3wVBhNrA 6c95+CHvjFAKGULVXypzAj9VpUkgGwDmCFayOs4zwa5MN6B2G4NN6EsNDu/SWcY/ E/skSXjRI7RhcR3cle7KDqaQJJAI/TOFhV43OWC1q1Q= ENDRSAPRIVATEKEY BEGINCERTIFICATE MIIDrDCCAxWgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBkDELMAkGA1UEBhMCRVMx EDAOBgNVBAgTB0JpemthaWExDzANBgNVBAcTBkJpbGJhbzEQMA4GA1UEChMHSXJv hvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYE w6tWudMrm8QFoYGWpIGTMIGQMQswCQYDVQQGEwJFUzEQMA4GA1UECBMHQml6a2Fp YTEPMA0GA1UEBxMGQmlsYmFvMRAwDgYDVQQKEwdJcm9udGVjMREwDwYDVQQLEwhT aXN0ZW1hczEUMBIGA1UEAxMLaXJvbnRlYy5jb20xIzAhBgkqhkiG9w0BCQEWFHNp c3RlbWFzQGlyb250ZWMuY29tggkAhSHOIQtatpswDQYJKoZIhvcNAQEEBQADgYEA M1S8cMkUC/nE5gnpiEWg+lYcHuJsNs6uBTNn7PdUiRqZOTCcucqIpIV1iwe6OxsX Yz3DQe3JCXcF+3BsGTt9hrrTTNOgoEZLEPlTHUV3dVZnm0wNlMuobfM0p6BhS+m2 NWFMQKpE79rWcgShkLeJfzlIzDWRchzj4205Fpe+VMo= ENDCERTIFICATE BEGINDHPARAMETERS MEYCQQDTT1zESN4Dzbp9mL0bIdbbS/CafrR2Q0RvWumpPYQX4jjwKk3mEttinZ4H wzMDbuS8a5EgRTRk67TPq0H/uBIDAgEC ENDDHPARAMETERS

108

3
Courier POP (POP Server)

Irontec Curso SMTP

Courier POP

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

109

Irontec Curso SMTP

Instalacin

Instalamos los demonios para pop e popssl de la suite de courier.


# apt-get install courier-pop courier-pop-ssl

Instalamos los demonios y libreras genricas de courier (en caso de no tenerlas ya)
# apt-get install courier-authdaemon courier-base courier-ssl

110

Irontec Curso SMTP

Autenticacin

La autenticacin 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

Autenticacin
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 mviles Blogs Foros Usenet IRC

El Spam de correo electrnico continua en primer lugar A medida que las protecciones evolucionan, tambin lo hace el Spam

113

Irontec Curso SMTP

Spam

114

Irontec Curso SMTP

Spam

Las medidas de proteccin contra el Spam se pueden activar a dos niveles. En el propio MTA o en una aplicacin externa que analice los mensajes Generalmente en el MTA se aplican las medidas rpidas y faciles, de forma que la gestin de correos no se vuelva lenta El trabajo duro se deja a una aplicacin externa

115

Irontec Curso SMTP

Spam

Algunas comprobaciones de Spam a nivel MTA son:

RBL (Real Time Block List). Las ms 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 direccin de destino existe. Si esta comprobacin no se realiza seremos origen de Spam.

116

Irontec Curso SMTP

SPAM

Las medidas anti spam a nivel de MTA son ms rpidas y producen menos impacto en el servidor Son menos flxibles 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_clientsblxbl.spamhaus.org reject_rbl_clientbl.spamcop.net reject_rbl_clientrbl.dnsservicios.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

Comprobacin del HELO

smtpd_helo_restrictions = reject_invalid_hostname reject_unknown_hostname reject_non_fqdn_hostname

120

Irontec Curso SMTP

SpamAssassin

SpamAssassin (Anti-spam)

http://spamassassin.apache.org/

121

Irontec Curso SMTP

Caractersticas 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 anlisis bayesianos. Los usuarios pueden entrenarle para que aprenda. Soporta gran cantidad de listas negras (mailabuse.org, ordb.org, ...) Diseado 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 mquina en el que est instalado. Escrito en Perl.
122

Irontec Curso SMTP

Instalacin

Instalamos el software demonio y cliente anti spam.


# apt-get install spamassassin spamc

123

Irontec Curso SMTP

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

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

4
sa-learn -mbox sa-learn -dump [all|data|magic]

Irontec Curso SMTP

Aprendizaje Los correos entrantes estn en formato mbox. Muestra el contenido de las BD bayesianas.

126

Irontec Curso SMTP

Spam

La herramienta externa ms 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

8
SquirrelMail (Web Mail)

Irontec Curso SMTP

Squirrelmail

http://www.squirrelmail.org

130

Irontec Curso SMTP

Caractersticas 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. Estndares.

131

Irontec Curso SMTP

Opciones Bsicas

La interfaz web dispone de los siguientes mens:

Componer

Redactar y enviar mensajes con adjuntos Libreta de direcciones. Permite manipular las carpetas Ajustar las opciones de Squirrelmail Realizar un filtrado de los correos en base a un patron.
132

Direcciones

Carpetas

Opciones

Buscar

Irontec Curso SMTP

Instalacin

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

Archivos de Configuracin

Incluimos las directivas para integrarlo con apache.

Insertamos la siguiente lnea en el archivo httpd.conf de apache:

httpd.conf [ Debian: /etc/apache2/httpd.conf]

Include /etc/squirrelmail/apache.conf

134

Irontec Curso SMTP

Archivos de Configuracin
#/usr/sbin/squirrelmailconfigure SquirrelMailConfiguration:Read:config.php(1.4.0) MainMenu 1.OrganizationPreferences 2.ServerSettings 3.FolderDefaults 4.GeneralOptions 5.Themes 6.AddressBooks 7.MessageoftheDay(MOTD) 8.Plugins 9.Database 10.Languages D.SetpredefinedsettingsforspecificIMAPservers CTurncoloron SSavedata QQuit Command>> 135

Irontec Curso SMTP

Archivos de Configuracin Courier IMAP

Configuramos squirrelmail para integrarlo con courier-imap

Main Menu

Server Settings

Update IMAP Settings

8. Server software : courier

136

Irontec Curso SMTP

Plugins

A fecha de hoy hay 223 plugins disponibles agrupados en 14 categoras. Disponibles en:

http://www.squirrelmail.org/plugins.php
/usr/share/squirrelmail/plugins

Descargar y descomprimir en:

137

Irontec Curso SMTP

Plugins

A destacar:

View As HTML

Permite ver un email como HTML o como texto plano Busca en la agenda para autocompletar el destinatario Creacin de calendarios publicos o limitados. Comprueba la ortografa del texto redactado. Soporte para firmas/cifrado GPG

Autocomplete

Calendars

Dictionary

GPG

138

Irontec Curso SMTP

Mail2FAX

Es posible enviar un Fax mediante correo electrnico. Solo son necesarias dos herramientas, Postfix + Hylafax. Una vez hecho, podremos envar fax con solo redactar un correo para: 66666666@fax.dominio.com

139

Irontec Curso SMTP

Mail2Fax

Lo instalamos fcilmente con apt:

# apt-get install hylafax-server

Tras la instalacin ejecutamos el siguiente comando y configuramos los parmetros generales.

# faxsetup

Si queremos aadir otro mdem al sistema, ejecutamos:

# faxaddmodem
140

Irontec Curso SMTP

Mail2Fax

Ahora nos toca configurar Postfix:

/etc/postfix/master.cf: faxunixnn1pipe flags=user=faxargv=/usr/bin/faxmaildn${user} /etc/postfix/transport: fax.your.domainfax:localhost /etc/postfix/main.cf: transport_maps=hash:/etc/postfix/transport fax_destination_recipient_limit=1

141

Irontec Curso SMTP

Monitorizacin

Monitorizacin

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

Licencia Copyleft
Este documento est protegido bajo la licencia Attribution-ShareAlike 2.0 de Creative Commons (http://creativecommons.org/licenses/bysa/2.0/) 2010 Miguel Angel Nieto <miguelangel@irontec.com> 2004 Iker Sagasti Markina <iker@irontec.com> Se permite la copia, modificacin, distribucin, uso comercial y realizacin de la obra, siempre y cuando se reconozca la autora de la misma, a no sea ser que se obtenga permiso expreso del autor. El autor permite distribuir obras derivadas a esta slo si mantienen la misma licencia que esta obra. Esta nota no es la licencia completa de la obra, sino una traduccin de la nota orientativa de la licencia original completa (jurdicamente vlida).

150

Anda mungkin juga menyukai