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? :)
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?
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
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
Introduccin DNS
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.
Registros DNS
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
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?
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
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"
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
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
Registro SOA
14
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
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
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
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
Protocolo SMTP
19
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
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
Protocolo SMTP
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
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
Protocolo SMTP
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
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
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>
Protocolo SMTP
27
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
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
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
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
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
33
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
35
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
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
38
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
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
Introduccin Mailbox
41
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:
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
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
Mailbox Maildir
Implementados inicialmente por el servidor Qmail para mejorar los mbox. Cada mensaje en un archivo individual. Mensaje en formato RFC 822.
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)
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
Mailbox Maildir
Sintaxis
$maildirmake[opciones]maildir
46
1
maildirmakeqquota
Mailbox Maildir
Ejemplo Indicamos la quota a aplicar sobre el maildir. Crea un maildir compartible. Diferentes permisos.
maildirmakeS
47
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)
Postfix
http://www.postfix.org
49
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
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
Postfix
Postfix
52
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
Postfix
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
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
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
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
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
Arquitectura
Squirrelmail
59
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
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
61
2
main.cf postconf -n
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
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
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
64
Comandos
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
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]
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.
67
6
Pflogsumm (Visor de Logs)
Pflogsumm
http://jimsun.linxnet.com/postfix_contrib.html
68
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
Instalacin
70
6
# /usr/sbin/pflogsumm [opciones] [archivo] # pflogsumm -d yesterday /var/log/mail.log # pflogsumm -d today /var/log/mail.log
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
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
PostfixAdmin
73
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:
74
PostfixAdmin
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
PostfixAdmin
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
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
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
PostfixAdmin
Se crea un usuario de sistema, que ser el que usen todos los procesos que necesiten acceder a los mailboxes.
79
Postfix
Postfix
Tendremos que crear una serie de ficheros y referenciarlos en main.cf para que Postfix sepa donde se guardan los datos.
81
Postfix
relay_domains_maps.cf
82
Postfix
virtual_alias_maps.cf
83
Postfix
virtual_domains_maps.cf
84
Postfix
virtual_mailbox_maps.cf
85
Postfix
virtual_mailbox_limit_maps.cf
86
Postfix
87
2
Postfix-SASL
Postfix-SASL
88
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
Instalacin
90
Instalacin - main.cf
91
Instalacin - pwcheck
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
Instalacin - pwcheck
93
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
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
Postfix-TLS
96
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
Instalacin
El soporte TSL ya viene incluido en Postfix Instalamos soporte para SSL (Secure Socket Layer)
# apt-get install openssl
98
Instalacin - main.cf
99
3
Courier IMAP (IMAP Server)
Courier IMAP
http://www.courier-mta.org/imap/
100
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
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
Arquitectura
103
Instalacin
104
105
Certificado Digital
106
Configuracin SSL
Parmetros DH
107
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)
Courier POP
http://www.courier-mta.org/imap/
109
Instalacin
Instalamos los demonios y libreras genricas de courier (en caso de no tenerlas ya)
# apt-get install courier-authdaemon courier-base courier-ssl
110
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
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
Spam
El Spam de correo electrnico continua en primer lugar A medida que las protecciones evolucionan, tambin lo hace el Spam
113
Spam
114
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
Spam
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
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
SPAM
118
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
SPAM
120
SpamAssassin
SpamAssassin (Anti-spam)
http://spamassassin.apache.org/
121
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
Instalacin
123
Ejemplo GTUBE
124
Aprendizaje
125
4
sa-learn -mbox sa-learn -dump [all|data|magic]
Aprendizaje Los correos entrantes estn en formato mbox. Muestra el contenido de las BD bayesianas.
126
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
Spam
Amavis
128
Spam
MailScanner
129
8
SquirrelMail (Web Mail)
Squirrelmail
http://www.squirrelmail.org
130
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
Opciones Bsicas
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
Instalacin
Instalamos el webmail
# apt-get install squirrelmail squirrelmail-locales
133
Archivos de Configuracin
Include /etc/squirrelmail/apache.conf
134
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
Main Menu
Server Settings
136
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
137
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
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
Mail2Fax
# faxsetup
# faxaddmodem
140
Mail2Fax
141
Monitorizacin
Monitorizacin
142
MyTOP
143
Mailgraph
144
Queuegraph
145
Couriergraph
146
Bindgraph
147
Mailwatch
148
Se acab
149
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