From 0853c2afdc2ddba11692ef17bb859104d47071e0 Mon Sep 17 00:00:00 2001 From: Guilhem Moulin Date: Tue, 14 Jan 2014 05:58:33 +0100 Subject: Fix catchall resolution. It has to be performed last, to give a chance to be accepted as a regular mailbox. We introduce a new, dedicated, smtpd daemon whose only purpose is to resolve catch-alls. --- roles/MX/templates/etc/postfix/virtual/alias_maps.cf.j2 | 6 ++++++ roles/MX/templates/etc/postfix/virtual/catchall_maps.cf.j2 | 7 +++++++ roles/MX/templates/etc/postfix/virtual/mailbox_domains.cf.j2 | 8 ++++++++ .../MX/templates/etc/postfix/virtual/reserved_alias_maps.j2 | 4 ++++ .../etc/postfix/virtual/transport_catchall_maps.cf.j2 | 8 ++++++++ .../templates/etc/postfix/virtual/transport_lists_maps.cf.j2 | 12 ++++++++++++ .../etc/postfix/virtual/transport_mailbox_maps.cf.j2 | 12 ++++++++++++ .../etc/postfix/virtual/transport_reserved_maps.pcre.j2 | 6 ++++++ 8 files changed, 63 insertions(+) create mode 100644 roles/MX/templates/etc/postfix/virtual/alias_maps.cf.j2 create mode 100644 roles/MX/templates/etc/postfix/virtual/catchall_maps.cf.j2 create mode 100644 roles/MX/templates/etc/postfix/virtual/mailbox_domains.cf.j2 create mode 100644 roles/MX/templates/etc/postfix/virtual/reserved_alias_maps.j2 create mode 100644 roles/MX/templates/etc/postfix/virtual/transport_catchall_maps.cf.j2 create mode 100644 roles/MX/templates/etc/postfix/virtual/transport_lists_maps.cf.j2 create mode 100644 roles/MX/templates/etc/postfix/virtual/transport_mailbox_maps.cf.j2 create mode 100644 roles/MX/templates/etc/postfix/virtual/transport_reserved_maps.pcre.j2 (limited to 'roles/MX/templates/etc/postfix/virtual') diff --git a/roles/MX/templates/etc/postfix/virtual/alias_maps.cf.j2 b/roles/MX/templates/etc/postfix/virtual/alias_maps.cf.j2 new file mode 100644 index 0000000..8e3a778 --- /dev/null +++ b/roles/MX/templates/etc/postfix/virtual/alias_maps.cf.j2 @@ -0,0 +1,6 @@ +server_host = ldapi://%2Fprivate%2Fldapi/ +version = 3 +search_base = fvl=%u,fvd=%d,ou=virtual,o=mailHosting,dc=fripost,dc=org +scope = base +query_filter = (&(objectClass=FripostVirtualAlias)(fvl=%u)) +result_attribute = fripostMaildrop diff --git a/roles/MX/templates/etc/postfix/virtual/catchall_maps.cf.j2 b/roles/MX/templates/etc/postfix/virtual/catchall_maps.cf.j2 new file mode 100644 index 0000000..f8324f6 --- /dev/null +++ b/roles/MX/templates/etc/postfix/virtual/catchall_maps.cf.j2 @@ -0,0 +1,7 @@ +server_host = ldapi://%2Fprivate%2Fldapi/ +version = 3 +search_base = fvd=%d,ou=virtual,o=mailHosting,dc=fripost,dc=org +scope = base +bind = none +query_filter = (&(objectClass=FripostVirtualDomain)(fvd=%d)(fripostOptionalMaildrop=*)) +result_attribute = fripostOptionalMaildrop diff --git a/roles/MX/templates/etc/postfix/virtual/mailbox_domains.cf.j2 b/roles/MX/templates/etc/postfix/virtual/mailbox_domains.cf.j2 new file mode 100644 index 0000000..74304a4 --- /dev/null +++ b/roles/MX/templates/etc/postfix/virtual/mailbox_domains.cf.j2 @@ -0,0 +1,8 @@ +server_host = ldapi://%2Fprivate%2Fldapi/ +version = 3 +search_base = fvd=%s,ou=virtual,o=mailHosting,dc=fripost,dc=org +scope = base +bind = none +query_filter = (&(objectClass=FripostVirtualDomain)(fvd=%s)) +result_attribute = fvd +result_format = OK diff --git a/roles/MX/templates/etc/postfix/virtual/reserved_alias_maps.j2 b/roles/MX/templates/etc/postfix/virtual/reserved_alias_maps.j2 new file mode 100644 index 0000000..fe04715 --- /dev/null +++ b/roles/MX/templates/etc/postfix/virtual/reserved_alias_maps.j2 @@ -0,0 +1,4 @@ +# RFC 822 section 6.3 and RFC 2142 section 4 mandatory aliases are +# forwarded to the admin team. +postmaster@fripost.org admin@fripost.org +abuse@fripost.org admin@fripost.org diff --git a/roles/MX/templates/etc/postfix/virtual/transport_catchall_maps.cf.j2 b/roles/MX/templates/etc/postfix/virtual/transport_catchall_maps.cf.j2 new file mode 100644 index 0000000..cc189cf --- /dev/null +++ b/roles/MX/templates/etc/postfix/virtual/transport_catchall_maps.cf.j2 @@ -0,0 +1,8 @@ +server_host = ldapi://%2Fprivate%2Fldapi/ +version = 3 +search_base = fvd=%d,ou=virtual,o=mailHosting,dc=fripost,dc=org +scope = base +bind = none +query_filter = (&(objectClass=FripostVirtualDomain)(fvd=%d)(fripostOptionalMaildrop=*)) +result_attribute = fvd +result_format = smtpl:[127.0.0.1]:2599 diff --git a/roles/MX/templates/etc/postfix/virtual/transport_lists_maps.cf.j2 b/roles/MX/templates/etc/postfix/virtual/transport_lists_maps.cf.j2 new file mode 100644 index 0000000..6a0965f --- /dev/null +++ b/roles/MX/templates/etc/postfix/virtual/transport_lists_maps.cf.j2 @@ -0,0 +1,12 @@ +server_host = ldapi://%2Fprivate%2Fldapi/ +version = 3 +search_base = fvl=%u,fvd=%d,ou=virtual,o=mailHosting,dc=fripost,dc=org +scope = base +bind = none +query_filter = (&(|(objectClass=FripostVirtualList)(objectClass=FripostVirtualListCommand))(fvl=%u)) +result_attribute = fvl +{% if 'lists' in group_names %} +result_format = smtpl:[127.0.0.1]:{{ lists.port }} +{% else %} +result_format = smtps:[{{ lists.host }}]:{{ lists.port }} +{% endif %} diff --git a/roles/MX/templates/etc/postfix/virtual/transport_mailbox_maps.cf.j2 b/roles/MX/templates/etc/postfix/virtual/transport_mailbox_maps.cf.j2 new file mode 100644 index 0000000..3e003db --- /dev/null +++ b/roles/MX/templates/etc/postfix/virtual/transport_mailbox_maps.cf.j2 @@ -0,0 +1,12 @@ +server_host = ldapi://%2Fprivate%2Fldapi/ +version = 3 +search_base = fvl=%u,fvd=%d,ou=virtual,o=mailHosting,dc=fripost,dc=org +scope = base +bind = none +query_filter = (&(objectClass=FripostVirtualUser)(fvl=%u)) +result_attribute = fvl +{% if 'LDA' in group_names %} +result_format = smtpl:[127.0.0.1]:{{ LDA.port }} +{% else %} +result_format = smtps:[{{ LDA.host }}]:{{ LDA.port }} +{% endif %} diff --git a/roles/MX/templates/etc/postfix/virtual/transport_reserved_maps.pcre.j2 b/roles/MX/templates/etc/postfix/virtual/transport_reserved_maps.pcre.j2 new file mode 100644 index 0000000..e240e91 --- /dev/null +++ b/roles/MX/templates/etc/postfix/virtual/transport_reserved_maps.pcre.j2 @@ -0,0 +1,6 @@ +if !/@fripost\.org$/ +# For other domains, RFC 822 section 6.3 and RFC 2142 section 4 +# mandatory aliases are forwarded to OUR admin team and to the domain +# owner or postmaster, if there are any. +/^(?:postmaster|abuse)(?:\+.*)?@/ reserved-alias: +endif -- cgit v1.2.3