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 %}