From 20090ccdb98877aac00c4687571a395753d40ead Mon Sep 17 00:00:00 2001 From: windgmbh <49904312+windgmbh@users.noreply.github.com> Date: Mon, 1 Feb 2021 21:17:12 +0100 Subject: [PATCH] mail/postfix: Duplicate Message Fix, Milter Default Action Choice and Recipient Address Verification (#2133) * mail/postfix: Set 'milter_protocol' to version 6 * mail/postfix: Use default milter macros * mail/postfix: Add milter_default_action choice * mail/rspamd+postfix: Use Unix Sockets * mail/postfix: Add Recipient Address Verification * mail/postfix+rspamd: Update version information --- mail/postfix/Makefile | 2 +- mail/postfix/pkg-descr | 5 +++++ .../controllers/OPNsense/Postfix/forms/antispam.xml | 6 +++--- .../controllers/OPNsense/Postfix/forms/general.xml | 6 ++++++ .../mvc/app/models/OPNsense/Postfix/Antispam.xml | 12 ++++++------ .../mvc/app/models/OPNsense/Postfix/General.xml | 6 +++++- .../service/templates/OPNsense/Postfix/main.cf | 12 +++++++----- mail/rspamd/Makefile | 2 +- mail/rspamd/pkg-descr | 4 ++++ .../service/templates/OPNsense/Rspamd/+TARGETS | 2 ++ .../templates/OPNsense/Rspamd/worker-normal.inc | 3 +++ .../templates/OPNsense/Rspamd/worker-proxy.inc | 7 +++++++ 12 files changed, 50 insertions(+), 17 deletions(-) create mode 100644 mail/rspamd/src/opnsense/service/templates/OPNsense/Rspamd/worker-normal.inc create mode 100644 mail/rspamd/src/opnsense/service/templates/OPNsense/Rspamd/worker-proxy.inc diff --git a/mail/postfix/Makefile b/mail/postfix/Makefile index 18112fb89..54ec13463 100644 --- a/mail/postfix/Makefile +++ b/mail/postfix/Makefile @@ -1,5 +1,5 @@ PLUGIN_NAME= postfix -PLUGIN_VERSION= 1.17 +PLUGIN_VERSION= 1.18 PLUGIN_COMMENT= SMTP mail relay PLUGIN_DEPENDS= postfix-sasl PLUGIN_MAINTAINER= m.muenz@gmail.com diff --git a/mail/postfix/pkg-descr b/mail/postfix/pkg-descr index d20dc9dd5..92c04b769 100644 --- a/mail/postfix/pkg-descr +++ b/mail/postfix/pkg-descr @@ -6,6 +6,11 @@ is completely different. Plugin Changelog ================ +1.18 + +* Add 'milter_default_action' choice +* Fix Milter Protocol + 1.17 * Add smtpd_sasl_auth_enable to configuration (by @fhloston) diff --git a/mail/postfix/src/opnsense/mvc/app/controllers/OPNsense/Postfix/forms/antispam.xml b/mail/postfix/src/opnsense/mvc/app/controllers/OPNsense/Postfix/forms/antispam.xml index 56385df57..031fa2b2f 100644 --- a/mail/postfix/src/opnsense/mvc/app/controllers/OPNsense/Postfix/forms/antispam.xml +++ b/mail/postfix/src/opnsense/mvc/app/controllers/OPNsense/Postfix/forms/antispam.xml @@ -6,9 +6,9 @@ This will allow Postfix to connect to rspamd via milter protocol. - antispam.milter_rspamd - + antispam.default_action + dropdown - Select the IP version for connecting to rspamd. + What Postfix will do when Rspamd becomes temporarily unavailable. diff --git a/mail/postfix/src/opnsense/mvc/app/controllers/OPNsense/Postfix/forms/general.xml b/mail/postfix/src/opnsense/mvc/app/controllers/OPNsense/Postfix/forms/general.xml index 7c7648615..97d2d2323 100644 --- a/mail/postfix/src/opnsense/mvc/app/controllers/OPNsense/Postfix/forms/general.xml +++ b/mail/postfix/src/opnsense/mvc/app/controllers/OPNsense/Postfix/forms/general.xml @@ -229,4 +229,10 @@ checkbox + + general.reject_unverified_recipient + + checkbox + Use Recipient Address Verification. Please keep in mind that this could put significant load onto the next server. + diff --git a/mail/postfix/src/opnsense/mvc/app/models/OPNsense/Postfix/Antispam.xml b/mail/postfix/src/opnsense/mvc/app/models/OPNsense/Postfix/Antispam.xml index 6e0e02587..fdb3cac7f 100644 --- a/mail/postfix/src/opnsense/mvc/app/models/OPNsense/Postfix/Antispam.xml +++ b/mail/postfix/src/opnsense/mvc/app/models/OPNsense/Postfix/Antispam.xml @@ -1,19 +1,19 @@ //OPNsense/postfix/antispam Postfix Antispam configuration - 1.0.1 + 1.0.2 0 Y - - 6 + + accept Y - IPv6 - IPv4 + accept + tempfail - + diff --git a/mail/postfix/src/opnsense/mvc/app/models/OPNsense/Postfix/General.xml b/mail/postfix/src/opnsense/mvc/app/models/OPNsense/Postfix/General.xml index 4a0bd65e4..f829a07af 100644 --- a/mail/postfix/src/opnsense/mvc/app/models/OPNsense/Postfix/General.xml +++ b/mail/postfix/src/opnsense/mvc/app/models/OPNsense/Postfix/General.xml @@ -1,7 +1,7 @@ //OPNsense/postfix/general Postfix configuration - 1.2.4 + 1.2.5 0 @@ -171,5 +171,9 @@ 1 Y + + 0 + Y + diff --git a/mail/postfix/src/opnsense/service/templates/OPNsense/Postfix/main.cf b/mail/postfix/src/opnsense/service/templates/OPNsense/Postfix/main.cf index 604fe9cc1..8df295bb9 100644 --- a/mail/postfix/src/opnsense/service/templates/OPNsense/Postfix/main.cf +++ b/mail/postfix/src/opnsense/service/templates/OPNsense/Postfix/main.cf @@ -121,11 +121,10 @@ smtpd_sasl_auth_enable = yes {% endif %} {% if helpers.exists('OPNsense.postfix.antispam.enable_rspamd') and OPNsense.postfix.antispam.enable_rspamd == '1' %} -smtpd_milters = inet:localhost:11332 -non_smtpd_milters = inet:localhost:11332 -milter_protocol = {{ OPNsense.postfix.antispam.milter_rspamd }} -milter_mail_macros = i {mail_addr} {client_addr} {client_name} {auth_authen} -milter_default_action = accept +smtpd_milters = unix:/var/run/rspamd/milter.sock +non_smtpd_milters = $smtpd_milters +milter_protocol = 6 +milter_default_action = {{ OPNsense.postfix.antispam.default_action }} {% endif %} {% if helpers.exists('OPNsense.postfix.general.enforce_recipient_check') and OPNsense.postfix.general.enforce_recipient_check == '1' %} @@ -179,6 +178,9 @@ relay_recipient_maps = hash:/usr/local/etc/postfix/recipient_access {% if helpers.exists('OPNsense.postfix.general.reject_unauth_destination') and OPNsense.postfix.general.reject_unauth_destination == '1' %} {% do smtpd_recipient_restrictions.append('reject_unauth_destination') %} {% endif %} +{% if helpers.exists('OPNsense.postfix.general.reject_unverified_recipient') and OPNsense.postfix.general.reject_unverified_recipient == '1' %} +{% do smtpd_recipient_restrictions.append('reject_unverified_recipient') %} +{% endif %} {% if smtpd_recipient_restrictions|length >= 1 %} smtpd_recipient_restrictions = {{ smtpd_recipient_restrictions | join(', ') }} diff --git a/mail/rspamd/Makefile b/mail/rspamd/Makefile index f19a4a45e..01016fdaf 100644 --- a/mail/rspamd/Makefile +++ b/mail/rspamd/Makefile @@ -1,5 +1,5 @@ PLUGIN_NAME= rspamd -PLUGIN_VERSION= 1.10 +PLUGIN_VERSION= 1.11 PLUGIN_COMMENT= Protect your network from spam PLUGIN_DEPENDS= rspamd PLUGIN_MAINTAINER= franz.fabian.94@gmail.com diff --git a/mail/rspamd/pkg-descr b/mail/rspamd/pkg-descr index c2118b525..183897120 100644 --- a/mail/rspamd/pkg-descr +++ b/mail/rspamd/pkg-descr @@ -5,6 +5,10 @@ lua. Plugin Changelog ---------------- +1.11 + +* Fix Milter Protocol by binding to Unix Sockets + 1.10 * Add nameserver option diff --git a/mail/rspamd/src/opnsense/service/templates/OPNsense/Rspamd/+TARGETS b/mail/rspamd/src/opnsense/service/templates/OPNsense/Rspamd/+TARGETS index ec5b4811a..6337a9b54 100644 --- a/mail/rspamd/src/opnsense/service/templates/OPNsense/Rspamd/+TARGETS +++ b/mail/rspamd/src/opnsense/service/templates/OPNsense/Rspamd/+TARGETS @@ -22,3 +22,5 @@ spamtrap-map:/usr/local/etc/rspamd/maps.d/spamtrap.map classifier-bayes.conf:/usr/local/etc/rspamd/local.d/classifier-bayes.conf history_redis.conf:/usr/local/etc/rspamd/local.d/history_redis.conf options.inc:/usr/local/etc/rspamd/local.d/options.inc +worker-normal.inc:/usr/local/etc/rspamd/local.d/worker-normal.inc +worker-proxy.inc:/usr/local/etc/rspamd/local.d/worker-proxy.inc diff --git a/mail/rspamd/src/opnsense/service/templates/OPNsense/Rspamd/worker-normal.inc b/mail/rspamd/src/opnsense/service/templates/OPNsense/Rspamd/worker-normal.inc new file mode 100644 index 000000000..68e0849dc --- /dev/null +++ b/mail/rspamd/src/opnsense/service/templates/OPNsense/Rspamd/worker-normal.inc @@ -0,0 +1,3 @@ +{% if helpers.exists('OPNsense.Rspamd.general.enabled') and OPNsense.Rspamd.general.enabled == '1' %} +bind_socket = "/var/run/rspamd/normal.sock mode=0666 owner=rspamd"; +{% endif %} diff --git a/mail/rspamd/src/opnsense/service/templates/OPNsense/Rspamd/worker-proxy.inc b/mail/rspamd/src/opnsense/service/templates/OPNsense/Rspamd/worker-proxy.inc new file mode 100644 index 000000000..e6941245c --- /dev/null +++ b/mail/rspamd/src/opnsense/service/templates/OPNsense/Rspamd/worker-proxy.inc @@ -0,0 +1,7 @@ +{% if helpers.exists('OPNsense.Rspamd.general.enabled') and OPNsense.Rspamd.general.enabled == '1' %} +upstream "local" { + default = yes; + hosts = "/var/run/rspamd/normal.sock"; +} +bind_socket = "/var/run/rspamd/milter.sock mode=0666 owner=rspamd"; +{% endif %}