{"id":4322,"date":"2022-06-30T07:52:33","date_gmt":"2022-06-30T05:52:33","guid":{"rendered":"https:\/\/esferas.org\/msqlu\/?p=4322"},"modified":"2022-06-30T07:52:34","modified_gmt":"2022-06-30T05:52:34","slug":"escenarios-de-correo-electronico","status":"publish","type":"post","link":"https:\/\/esferas.org\/msqlu\/2022\/06\/30\/escenarios-de-correo-electronico\/","title":{"rendered":"Escenarios de correo electr\u00f3nico"},"content":{"rendered":"\n<p>Escenarios en plural porque me he encontrado con varios de ellos que he resuelto o estoy en proceso de resolver y a los que no quiero perder la pista. <\/p>\n\n\n\n<!--more-->\n\n\n\n<h3 class=\"wp-block-heading\">Cuentas de correo totalmente virtuales <\/h3>\n\n\n\n<p>En este dominio resulta que todas las cuentas son virtuales. Est\u00e1n registradas en un directorio LDAP que se emplea para verificar credenciales y para obtener el <em>ID<\/em> de los usuarios y crear sus buzones. <\/p>\n\n\n\n<p>Los siguientes fragmentos de configuraci\u00f3n son para el programa <em>exim4<\/em> teniendo como destino final los buzones IMAP gestionados por Dovecot. Las \u00faltimas mejoras en <em>exim<\/em> han considerado que emplear datos procedentes directamente del exterior, de las cabeceras del mensaje, para construir rutas en el sistema no son buena idea. La configuraci\u00f3n se ha complicado lo suyo pero al final m\u00e1s o menos empiezo a entender c\u00f3mo va. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Autentificaci\u00f3n<\/h3>\n\n\n\n<pre class=\"wp-block-preformatted\">plain_server:                                                                                                                                                                 \n  driver = plaintext                                                                                                                                                          \n  public_name = PLAIN                                                                                                                                                         \n  server_prompts = :                                                                                                                                                          \n  server_condition = ${if \\                                                                                                                                                   \n     ldapauth \\                                                                                                                                                               \n       { user=\"cn=${quote_ldap:$auth2},ou=users,dc=zeine,dc=es\" \\                                                                                                             \n         pass=${quote:$auth3} \\                                                                                                                                               \n         ldap:\/\/LDAP_SERVER\\                                                                                                                                                    \n       }{yes}{no}}                                                                                                                                                            \n  server_set_id = $auth2                                                                                                                                                      \n<\/pre>\n\n\n\n<p>El nombre del usuario y la contrase\u00f1a se emplean para crear la acreditaci\u00f3n con el servidor LDAP y ver si admite o no la conexi\u00f3n. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Enrutado <\/h3>\n\n\n\n<pre class=\"wp-block-preformatted\">ldap_users:                                                                                                                                                                   \n        debug_print = \"R: LDAP users lookup for $local_part@$domain\"                                                                                                          \n        driver = accept                                                                                                                                                       \n        domains = zeine.es                                                                          \n        local_parts = ${lookup ldap {ldap:\/\/LDAP_SERVER\/LDAP_BASE?cn?sub?(cn=${quote_ldap:$local_part})}}                                                                     \n        transport = LOCAL_DELIVERY                                                                                                                                            \n                                     \na<\/pre>\n\n\n\n<p>La condici\u00f3n para este enrutador es que el dominio sea el local (zeine.es) y se efect\u00faa una b\u00fasqueda empleando la parte local del remitente (<em>$local_part<\/em>) para obtener el campo <em>cn<\/em> de la entrada que se utilizar\u00e1 en <em>$local_part_data<\/em> tras la directiva <em>local_parts<\/em>. <\/p>\n\n\n\n<p>El transporte directo es el predeterminado que en el caso de esta instalaci\u00f3n es el env\u00edo a <em>dovecot<\/em>. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Transporte <\/h3>\n\n\n\n<pre class=\"wp-block-preformatted\">dovecot_transport:                                                                                                                                                            \n        debug_print = \"T: dovecot for $local_part@$domain\"                                                                                                                    \n        driver = appendfile                                                                                                                                                   \n        user = vmail                                                                                                                                                          \n        group = vmail                                                                                                                                                         \n        mode = 0700                                                                                                                                                           \n        directory = \/srv\/mail\/${lc:$local_part_data}\/                                                                                                                         \n        maildir_format = true                                                                                                                                                 \n        mode_fail_narrower = false                                                                                                                                            \n        envelope_to_add = true                                                                                                                                                \n        return_path_add = true  \n\n<\/pre>\n\n\n\n<p>En este caso a\u00f1adimos directamente el archivo al directorio cuya ruta  hemos construido con <em>$local_part_data<\/em> y que ya no se considera emponzo\u00f1ado (tainted) por lo que puede usarse tranquilamente. <\/p>\n\n\n\n<p>La idea es utilizar mejor una conexi\u00f3n con dovecot v\u00eda LMTP o similar para independizar mejor el despacho de correo. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Escenarios en plural porque me he encontrado con varios de ellos que he resuelto o estoy en proceso de resolver y a los que no quiero perder la pista.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","webmentions_disabled_pings":false,"webmentions_disabled":false,"footnotes":""},"categories":[14],"tags":[18,910,560,221,267,335],"class_list":["post-4322","post","type-post","status-publish","format-standard","hentry","category-internet","tag-administracion-de-sistemas","tag-correo-electronico","tag-dovecot","tag-exim","tag-imap","tag-ldap"],"_links":{"self":[{"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/posts\/4322","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/comments?post=4322"}],"version-history":[{"count":1,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/posts\/4322\/revisions"}],"predecessor-version":[{"id":4323,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/posts\/4322\/revisions\/4323"}],"wp:attachment":[{"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/media?parent=4322"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/categories?post=4322"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/tags?post=4322"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}