{"id":3702,"date":"2020-10-02T11:09:54","date_gmt":"2020-10-02T09:09:54","guid":{"rendered":"https:\/\/esferas.org\/msqlu\/?p=3702"},"modified":"2020-10-02T11:09:56","modified_gmt":"2020-10-02T09:09:56","slug":"exim4-multiples-dominios-y-sympa-i","status":"publish","type":"post","link":"https:\/\/esferas.org\/msqlu\/2020\/10\/02\/exim4-multiples-dominios-y-sympa-i\/","title":{"rendered":"exim4, m\u00faltiples dominios y sympa &#8230; (I)"},"content":{"rendered":"\n<p>&#8230; para gestionar listas de correo. <\/p>\n\n\n\n<p>Tenemos un servidor de correo que siempre ha despachado hacia una m\u00e1quina externa y ahora estamos albergando un pu\u00f1ado de dominios para los que queremos un tratamiento independizado.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p>Las cuestiones que hay que tocar son las siguientes:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Recepci\u00f3n de correo<ol><li>Cifrado para conexiones seguras<\/li><li>Reconocimiento de los dominios locales<\/li><li>Alias y redirecciones espec\u00edficas para cada dominio<\/li><li>Despacho local de correo si es necesario<\/li><li>Transportes especiales para buzones artificiales como las listas de correo<\/li><\/ol><\/li><li>Env\u00edo de correo<ol><li>Cifrado para conexiones seguras<\/li><li>Acreditaci\u00f3n de usuarios dependientes de cada dominio<\/li><li>Firma de mensajes con claves separadas por dominio<\/li><li>Uso de servidores de despacho remotos si el dominio lo requiere.<\/li><\/ol><\/li><\/ol>\n\n\n\n<h4 class=\"wp-block-heading\">Cifrado de conexiones<\/h4>\n\n\n\n<p>Esta es una cuesti\u00f3n importante. Dado que vamos a utilizar los certificados para el dominio creados con Let&#8217;s Encrypt a priori no hay necesidad de tener uno por cada dominio alojado. El serviodor acepta las conexiones como un todo. Luego es cuando filtra y clasifica. <\/p>\n\n\n\n<p>As\u00ed que, una vez obtenidos los archivos, e instalados en su sitio (<em>\/etc\/ssl\/domain\/<\/em>) lo normal es indicarle a exim4 d\u00f3nde encontrarlos.En el archivo <em>conf.d\/main\/03_exim4-config_tlsoptions<\/em> podemos especificar su localizaci\u00f3n:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">MAIN_TLS_ENABLE=yes\nMAIN_TLS_CERTIFICATE=\/etc\/ssl\/esferas.org\/fullchain.pem\nMAIN_TLS_PRIVATEKEY=\/etc\/ssl\/esferas.org\/privkey.pem <\/code><\/pre>\n\n\n\n<p>No hay que olvidar instalar los archivos con el grupo adecuado y a\u00f1adir el usuario que emplea Debian para exim al grupo correspondiente.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">~$ getent passwd | egrep -i exim\nDebian-exim:x:104:109::\/var\/spool\/exim4:\/bin\/false\n~$ sudo adduser Debian-exim ssl-cert\n[sudo] password for osr:\nA\u00f1adiendo al usuario <code>Debian-exim' al grupo<\/code>ssl-cert' \u2026\nA\u00f1adiendo al usuario Debian-exim al grupo ssl-cert\nHecho.\n~$<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Reconocimiento de dominios locales &#8230;<\/h4>\n\n\n\n<p>&#8230; y alias y redirecciones espec\u00edficas para cada dominio.<\/p>\n\n\n\n<p>Exim4 tiene una forma sencilla de gestionar dominios virtuales. Hay dos tipos como bien dice la documentaci\u00f3n: uno en el que todas las direcciones de correo se trasladan a un dominio interno (como por ejemplo victor@empresa.net a victor@interno.empresa.net) y otro en el que existen buzones locales para cada cuenta en cada dominio. <\/p>\n\n\n\n<p>En realidad se pueden dar varias combinaciones de este tipo y como en mi situaci\u00f3n estoy gestionando varios entornos con necesidades diferentes he intentado que est\u00e9n lo m\u00e1s separados posible. Primero he creado un \u00e1rbol de dominios y luego he ido a\u00f1adiendo los archivos necesarios a cada uno:<\/p>\n\n\n\n<p>El \u00e1rbol de momento est\u00e1 as\u00ed:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">root@esferas:\/etc\/exim4# tree -puag domains\/\ndomains\/\n\u251c\u2500\u2500 [drwxr-xr-x root Debian-exim] esferas.org\n\u2502&nbsp;&nbsp; \u2514\u2500\u2500 [-rw-r----- root Debian-exim] aliases\n\u251c\u2500\u2500 [drwxr-xr-x root Debian-exim] osteoluna.es\n\u2514\u2500\u2500 [drwxr-xr-x root Debian-exim] vistanieve.net\n3 directories, 1 file<\/pre>\n\n\n\n<p>Teniendo el archivo <em>aliases<\/em> el siguiente contenido:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">#\n# Alias de correo para esferas.org\n#\n\n# Cuentas administrativas\nmailer-daemon: postmaster\npostmaster: root\nabuse: root\nspam: root\nroot: victor\n\n# Cuentas de usuario\nvictor: victor@taquiones.net<\/pre>\n\n\n\n<p>Para que <em>exim<\/em> emplee esta estructura se crea un enrutador con la siguiente forma:<\/p>\n\n\n\n<pre title=\"\/etc\/exim4\/conf.d\/router\/virtual\" class=\"wp-block-code\"><code lang=\"apacheconf\" class=\"language-apacheconf\">virtual:\n  driver = redirect\n  domains = dsearch;\/etc\/exim4\/domains\n  data = ${lookup{$local_part}lsearch{\/etc\/exim4\/domains\/$domain_part\/aliases}}\n  no_more<\/code><\/pre>\n\n\n\n<p>Este enrutador funciona de la siguiente manera:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Comprueba con <em>dsearch<\/em> que existe en el directorio <em>\/etc\/exim4\/domains<\/em> un archivo con el nombre del dominio tratado.<\/li><li>Busca la parte local de la direcci\u00f3n en el archivo de alias del dominio.<\/li><li>Al ser un enrutador de tipo <em>redirecci\u00f3n<\/em> el resultado -si encuentra algo- es una nueva direcci\u00f3n de env\u00edo. <\/li><\/ol>\n\n\n\n<p>Hay otra opci\u00f3n m\u00e1s completa que he encontrado <a rel=\"noreferrer noopener\" href=\"https:\/\/www.electricmonk.nl\/docs\/exim4_vhwc\/exim4_vhwc.html\" target=\"_blank\">aqu\u00ed<\/a> y que a\u00f1ade un cambio interesante, concretamente el que consigue que los dominios virtuales se consulten din\u00e1micamente buscando en el directorio.<\/p>\n\n\n\n<p>Primero se cambia el archivo de definiciones en <em>conf.d\/main\/01_exim4-config_listmacrosdefs<\/em> <\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">domainlist local_domains = @:localhost:dsearch;\/etc\/exim4\/domains\n<\/pre>\n\n\n\n<p>Para a\u00f1adir el enrutador que menciono en <em>conf.d\/router\/350_exim4-config_vdom_aliases<\/em>:<\/p>\n\n\n\n<pre title=\"350_exim4-config_vdom_aliases\" class=\"wp-block-code\"><code lang=\"apacheconf\" class=\"language-apacheconf\">#\n#       Enrutador para dominios locales virtuales\n#\nvdom_aliases:\n        driver = redirect\n        allow_defer\n        allow_fail \n        domains = dsearch;\/etc\/exim4\/domains\n        data = ${expand:${lookup{$local_part}lsearch*@{\/etc\/exim4\/domains\/$domain\/aliases}}}\n        retry_use_local_part\n        pipe_transport = address_pipe\n        file_transport = address_pipe\n        no_more<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Referencias<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/www.obstance.com\/ubuntu\/dkim-on-multiple-domains-with-exim4\" target=\"_blank\" rel=\"noreferrer noopener\">DKIM on Multiple Domains With Exim4<\/a><\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>&#8230; para gestionar listas de correo. Tenemos un servidor de correo que siempre ha despachado hacia una m\u00e1quina externa y ahora estamos albergando un pu\u00f1ado de dominios para los que queremos un tratamiento independizado.<\/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,41,1024,221,682],"class_list":["post-3702","post","type-post","status-publish","format-standard","hentry","category-internet","tag-administracion-de-sistemas","tag-correo-electronico","tag-debian","tag-dominios-virtuales","tag-exim","tag-sympa"],"_links":{"self":[{"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/posts\/3702","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=3702"}],"version-history":[{"count":25,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/posts\/3702\/revisions"}],"predecessor-version":[{"id":3758,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/posts\/3702\/revisions\/3758"}],"wp:attachment":[{"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/media?parent=3702"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/categories?post=3702"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/tags?post=3702"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}