Soluciones Profesionales de Correo con Software Libre

4,758 views

Published on

Cómo montar una solución profesional de correo electrónico con software libre. Esta presentación se utilizó durante los cursos de Marzo del GUL de la Universidad Carlos III de Madrid.

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
4,758
On SlideShare
0
From Embeds
0
Number of Embeds
65
Actions
Shares
0
Downloads
142
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Soluciones Profesionales de Correo con Software Libre

  1. 1. Cómo montar una solución profesional de correo electrónico con Software Libre --------- Cursos GUL Marzo::2009 Javier Turégano Molina
  2. 2. Indice INDICE <ul><ul><li>Introducción
  3. 3. MTAs
  4. 4. Postfix
  5. 5. Buzones
  6. 6. Listas de correo
  7. 7. Solución en cluster
  8. 8. Visión de conjunto
  9. 9. Otras herramientas </li></ul></ul>
  10. 10. Introducción COMO MONTAR SOLUCIONES PROFESIONALES DE CORREO
  11. 11. MTAs ¿Qué es un MTA? MAIL TRANSFER AGENT
  12. 12. Sendmail <ul><li>Muy maduro
  13. 13. Bien documentado
  14. 14. Monolítico
  15. 15. Configuración muy compleja (m4)
  16. 16. Rendimiento bajo
  17. 17. Poco seguro </li></ul>
  18. 18. Postfix <ul><li>Muy flexible
  19. 19. Arquitectura Modular
  20. 20. Fácil de instalar y configurar </li></ul><ul><li>Seguro
  21. 21. Buen rendimiento y estabilidad </li></ul>
  22. 22. Qmail <ul><li>Muy seguro y robusto
  23. 23. DJB
  24. 24. Instalación más compleja
  25. 25. No se distribuyen binarios empaquetados
  26. 26. Funcionalidad limitada
  27. 27. Ampliable mediante parches </li></ul>
  28. 29. Arquitectura de Postfix
  29. 30. Fuentes de datos Mysql Postgres Postmap Openldap Sun Directory Active Directory BDD Ficheros LDAP
  30. 31. Ficheros de configuración Ficheros de configuración de Postfix: <ul><li>main.cf </li></ul><ul><li>master.cf </li></ul>
  31. 32. Dominios @dominio1.com @dominio2.com @sub.dominio1.com @dominio3.net @dominio.es
  32. 33. Dominios [/etc/postfix/main.cf]... virtual_mailbox_domains = hash:/etc/postfix/vmaildomains [/etc/postfix/vmaildomains] barriosesamo.com required nasa.gov required $ posmap vmaildomains
  33. 34. Usuarios virtuales Nombre usuario a usar: <ul><li>blas
  34. 35. epi </li></ul><ul><li>[email_address]
  35. 36. [email_address]
  36. 37. [email_address] </li></ul>
  37. 38. Usuarios virtuales [/etc/postfix/main.cf]... #Usuarios virtuales virtual_transport = virtual virtual_mailbox_base = /home/vmail virtual_mailbox_maps= ldap:ldapvirtualmap ldapvirtualmap_server_host = ldap://ldap.barriosesamo.com ldapvirtualmap_server_port = 389 ldapvirtualmap_search_base = dc=com ldapvirtualmap_query_filter = (&(mail=%s)(objectClass=CourierMailAccount)) ldapvirtualmap_result_attribute = mailbox
  38. 39. Alias [/etc/postfix/main.cf] # ALIAS DATABASE alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases #Alias virtuales virtual_maps = ldap:valiases valiases_server_host = ldap://ldap.barriosesamo.com valiases_search_base = dc=com valiases_query_filter = (&(mail=%s)(objectClass=CourierMailAlias)) valiases_result_attribute = maildrop
  39. 40. Autenticación en el envío
  40. 41. Autenticación en el envío [/etc/postfix/main.cf]... #SASL smtpd_sasl_auth_enable = yes smtpd_sasl_security_options = noanonymous broken_sasl_auth_clients = yes #Restricciones smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
  41. 42. Autenticación en el envío - SASL $ apt-get install libsasl2 sasl2-bin libsasl2-modules [/etc/default/saslauthd] START=yes MECHANISMS=&quot;ldap&quot; PARAMS=&quot;-O /etc/saslauthd.conf&quot; [/etc/saslauthd.conf] ldap_servers: ldap://ldap.barriosesamo.com ldap_search_base: dc=com ldap_filter: mail=%u@%r [/etc/postfix/sasl/smtpd.conf] pwcheck_method: saslauthd mech_list: plain login
  42. 43. Cifrado [/etc/postfix/main.cf]... smtpd_use_tls = yes smtpd_tls_key_file = /etc/ssl/key.pem smtpd_tls_cert_file = /etc/ssl/cert.pem smtpd_tls_CAfile = /etc/ssl/cacert.pem smtpd_tls_session_cache_timeout = 3600s tls_random_source = dev:/dev/urandom [/etc/postfix/master.cf]... smtps inet n - - - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject -o milter_macro_daemon_name=ORIGINATING
  43. 44. Enrutado de correo
  44. 45. Localizar el buzón local [/etc/postfix/main.cf]... virtual_mailbox_base = /home/vmail virtual_minimum_uid = 100 virtual_uid_maps = static:1001 virtual_gid_maps = static:1001 Entrada LDAP para epi: maildrop: barriosesamo.com/epi/ Su buzón estará ubicado en: /home/vmail/barriosesamo.com/epi
  45. 46. Formatos de buzón mailbox maildir
  46. 47. A otros sistemas Transport Mailrelay
  47. 48. Filtrado
  48. 49. Amavis
  49. 50. Flujo de Escaneo epi@barriosesamo.com ----> [email_address] A su destino Cliente 1 2 3 4 5 6 7 8 9 10 Buzon
  50. 51. Amavis [/etc/amavis/amavisd.conf]... $unix_socketname = undef; $inet_socket_port = 10024; $inet_socket_bind = '127.0.0.1'; $final_virus_destiny = D_DISCARD; $final_banned_destiny = D_BOUNCE; $final_spam_destiny = D_PASS; $final_bad_header_destiny = D_PASS; $sa_tag_level_deflt = 0.5; # add spam info headers $sa_tag2_level_deflt = 5.5; # add 'spam detected' $sa_kill_level_deflt = $sa_tag2_level_deflt; $sa_dsn_cutoff_level = 10;
  51. 52. Amavis [/etc/amavis/amavisd.conf]... @decoders = ( ['gz', &do_gunzip], ['gz', &do_uncompress, 'gzip -d'], ['bz2', &do_uncompress, 'bzip2 -d'], ['zip', &do_unzip], ['rar', &do_unrar, ['rar','unrar'] ], ['arj', &do_unarj, ['arj','unarj'] ],); @av_scanners = ( ['ClamAV-clamd', &ask_daemon, [&quot;CONTSCAN {} &quot;, &quot;/var/run/clamav/clamd.sock&quot;], qr/OK$/, qr/FOUND$/, qr/^.*?: (?!Infected Archive)(.*) FOUND$/ ] );
  52. 53. Spamassassin
  53. 54. Spamassasin <ul><li>Chequeo de cabeceras
  54. 55. Test de frases en el cuerpo del mensaje.
  55. 56. Filtros bayesianos.
  56. 57. Listas blancas y negras automáticas
  57. 58. Listas blancas y negras manuales
  58. 59. Uso de base de datos colaborativas de spam (DCC, Pyzor, Razor2)
  59. 60. Bloques de direcciones DNS, también conocidas cómo RBLs (Realtime Blackhole Lists).
  60. 61. Configuraciones regionales y de codificación de caracteres. </li></ul>
  61. 62. clamav Motor antivirus + Base de datos de firmas Soportado por la comunidad /etc/clamav/clamav.conf /etc/clamav/freshclam
  62. 63. Otros antivirus <ul><li>Network Associates Virus Scan
  63. 64. DrSolomon
  64. 65. H+BEDV AntiVir/X
  65. 66. Sophos Sweep
  66. 67. Kaspersky Lab AntiViral Toolkit Pro
  67. 68. CyberSoft VFind
  68. 69. Trend Micro FileScanner
  69. 70. CAI InoculateIT
  70. 71. F-Secure AV </li></ul>
  71. 72. Gestionando la cola
  72. 73. Gestionando la cola Algunas herramientas útiles para gestionar las colas de correo: Mailq Postsuper Qshape
  73. 74. Buzones Protocolos de acceso a los buzones POP3 POP3S IMAP IMAPS Software de Servidor: Courier Cyrus
  74. 75. Courier Authdaemon [ /etc/authlib/authdaemonrc ]... authmodulelist=&quot;authldap&quot; [ /etc/authlib/authldaprc ] LDAP_URI ldap://ldap.barriosesamo.com LDAP_BASEDN c=com LDAP_MAIL mail LDAP_FILTER (objectClass=CourierMailAccount) LDAP_GLOB_UID vmail LDAP_GLOB_GID vmail LDAP_HOMEDIR homeDirectory LDAP_MAILDIR mailbox LDAP_MAILDIRQUOTA quota LDAP_CLEARPW clearPassword LDAP_CRYPTPW userPassword
  75. 76. Courier-imap [/etc/courier/imapd]... ADDRESS=0 PORT=143 MAXDAEMONS=40 MAXPERIP=512 PIDFILE=/var/run/imapd.pid TCPDOPTS=&quot;-nodnslookup -noidentlookup&quot; IMAP_CAPABILITY=&quot;IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE&quot; IMAP_IDLE_TIMEOUT=60 AUTH=PLAIN&quot; IMAP_TRASHFOLDERNAME=Trash IMAPDSTART=YES MAILDIRPATH=Maildir
  76. 77. Courier-imap [/etc/courier/imapd]... ADDRESS=0 PORT=143 MAXDAEMONS=40 MAXPERIP=512 PIDFILE=/var/run/imapd.pid TCPDOPTS=&quot;-nodnslookup -noidentlookup&quot; IMAP_CAPABILITY=&quot;IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE&quot; IMAP_IDLE_TIMEOUT=60 AUTH=PLAIN&quot; IMAP_TRASHFOLDERNAME=Trash IMAPDSTART=YES MAILDIRPATH=Maildir
  77. 78. Courier-imap-ssl [/etc/courier/imapd-ssl]... TLS_CERTFILE=/etc/ssl/key-cert.pem TLS_TRUSTCERTS=/etc/ssl/cacert.pem
  78. 79. Maildir http://cr.yp.to/proto/maildir.html /home/vmail/barriosesamo.com/epi/Maildir tmp/ new/ cur/ maildirsize courierimapsubscribed .Sent/ .Trash/ .Drafts/ .Trabajo/ .Amigos/ 1236710984.V9806I800036M27243.mail.barriosesamo1:2,ST
  79. 80. Perdition
  80. 81. Perdition
  81. 82. Listas de correo
  82. 83. Webmail Squirrelmail
  83. 84. Webmail Egroupware
  84. 85. Cluster VS
  85. 86. IPVS
  86. 87. Keepalived
  87. 88. Cluster Balanceador Frontal3 Almacenamiento Frontal2 Frontal1 Balanceador Back3 Back2 Back1
  88. 89. Frontal Correo Smtp, Smtps Pop3, Pop3s Imap, Imaps
  89. 90. Backend Correo Pop3, Pop3s Imap, Imaps Smtp Almacenamiento Compartido Servidor Backend Buzones LDAP
  90. 91. Cluster Opciones DRBD SAN + GFS SAN + OCFS NAS NFS Almacenamiento Compartido Buzones
  91. 92. Otras aplicaciones interesantes
  92. 93. Otras aplicaciones interesantes Estadísticas (mailgraph)
  93. 94. Otras aplicaciones interesantes Otras aplicaciones interesantes Gestión de usuarios (phpldapadmin) Fetchmail Pruebas de carga (postal)
  94. 95. Otras aplicaciones interesantes Enviando correo desde la línea de comando con autenticación: $ printf &quot;%s%s%s&quot; user user password | mmencode dXNlcgB1c2VyAHBhc3N3b3Jk $ telnet server 25 ehlo barriosesamo.com AUTH PLAIN dXNlcgB1c2VyAHBhc3N3b3Jk mail from: [email_address] rcpt to: blas@barriosesamo.com Subject: Hola blas ¿Qué tal estás? .
  95. 96. Otras aplicaciones interesantes Leer correo por pop3s a través de la línea de comandos: openssl s_client -connect mail.barriosesamo.com:995 user epi@barriosesamo.com pass oyeblas list retr 1
  96. 97. Preguntas y Contacto ¿ ? www.turegano.net www.twitter.com/setoide Licencia Creative Commons Reconocimiento 2.5 de España
  97. 98. Imágenes usadas Las imágenes usadas en esta presentación han sido recolectadas de flickr entre aquellas que tenían una licencia CC que permitieran su uso. A continuación encontramos el listado de todas ellas: * Buzon R2D2: http://www.flickr.com/photos/70323761@N00/428744829/ * Muchos buzones: http://www.flickr.com/photos/30352125@N00/208497785/ * Buzon Helado: http://www.flickr.com/photos/7481945@N04/3156498390/ * Pesona en una caja: http://www.flickr.com/photos/26959234@N00/290987247/ * Monolito: http://www.flickr.com/photos/10114354@N00/194306926/ * Gimnasta: http://www.flickr.com/photos/90935137@N00/351684037/ * Perro verde: http://www.flickr.com/photos/51035555243@N01/2349146897/ * Super dogs: http://www.flickr.com/photos/7315825@N04/3178055491/ * Arroba: http://www.flickr.com/photos/53763120@N00/493461004/
  98. 99. Imágenes usadas * Viagra: http://www.flickr.com/photos/35034346572@N01/8263476/ * Virus: http://www.flickr.com/photos/96123571@N00/520201209/ * Tubería: http://www.flickr.com/photos/53611153@N00/2368699531/ * Dinosaur tail: http://www.flickr.com/photos/95118988@N00/106396537/ * Postman http://www.flickr.com/photos/21895046@N08/2112334377/ * Epis: http://www.flickr.com/photos/76481180@N00/21797427/ * Huellas: http://www.flickr.com/photos/43822137@N00/1632483851/ * Director http://www.flickr.com/photos/60584823@N00/402708916/ * Candado: http://www.flickr.com/photos/53611153@N00/896429958/ Para facilitar la búsqueda de las mismas se utilizó la herramienta de búsqueda de la web de: http://compfight.com/

×