Jump to content
Froxlor Forum
  • 1

HOWTO : froxlor2 mit rspamd und dkim - per email einstellbar: greylisting, spamlevel (virencheck)


rseffner

Question

Vorab, ich bin kein Entwickler, daher kann das Folgende Fehler enthalten und/oder besser gelöst werden. Ferner kann ich es auch nicht mit einem "pull request" vollständig in die froxlor-Entwicklung einarbeiten - vielleicht erbarmt sich ja der Entwickler oder ein "Nutznießer" der folgenden Informationen.
Ich habe das Setup unter debian 11 / bullseye laufen - für andere Distributionen mögen Anpassungen nötig sein.

UI / SQL

Zuerst gibt es zusätzliche Optionen für die E-Mail-Adressen (siehe frx-settings.jpg), dazu müssen customer_email.php, lib/formfields/customer/email/formfield.emails_edit.php und lib/Froxlor/Api/Commands/Emails.php angepasst werden (siehe *.diff). Damit die Settings auch irgendwo gespeichert werden, erweitert man die Datenbank von froxlor (siehe mail_virtual.sql, es braucht nur die 5 ALTER TABLE Befehle angewendet auf die Datenbank von froxlor). [die diffs sind gegen froxlor 2.0.6 erstellt!]

DKIM / RSPAMD

Nachdem der Nutzer nun Dinge einstellen kann (die sich noch nicht auswirken) kümmern wir uns mal um DKIM mit rspamd. Dazu könnten die Einstellungen wie in frx-dkim-settings.jpg vorgenommen werden. Ich bin mir nicht mehr sicher, ob der Ordner dkim unter /etc/postfix im Beispiel erst angelegt werden musste, oder ob sich froxlor darum kümmert. Dort werden nun jedenfalls eine dkim-keys.conf und die keys abgelegt. Da wir das aber in einem rspamd-tauglichen Format benötigen, wird zusätzlich das Skript /usr/local/sbin/dkim2rspamd getriggert. Dazu muss natürlich rspamd installiert und konfiguriert sein. Das Skript baut nun eine Konfiguration zur Mailsignierung aus den Daten, die froxlor ins Dateisystem gelegt hat. Benötigt werden bash, awk, head, cat und es wird von einem System mit systemd ausgegangen.

SPAMSETTING / RSPAMD

Nun müssen noch die Spamsettings der Nutzer ja irgendwie ins rspamd. Da ich hier im froxlor keinen Trigger gefunden habe, erledigt das ein cron-job. Z.B. alle 5 Minuten:

*/5 * * * * root /usr/local/sbin/froxlor2rspamd

Im Skript froxlor2rspamd (welches auch unter /usr/local/sbin liegt) müssen noch Datenbankanmeldedaten mit mindestens lesenden Rechten hinterlegt werden. Hier kommen der mysql/mariadb-client, sed, cat und diff zum Einsatz - diff gehört wohl nicht unbedingt zu einer Grundausstattung. Es wird eine settings_frx.conf für rspamd erstellt, die aber erst noch eingebunden werden muss. Dazu kann ans Ende der (ggf. zu erstellenden) /etc/rspamd/local.d/settings.conf folgende Zeile

.include(try=true; priority=1; duplicate=merge) "$LOCAL_CONFDIR/local.d/settings_frx.conf"

TODO

Bleibt die Frage, wie wirkt sich der Virenschutzparameter aus. Die Antwort ist "kommt drauf an". Aktuell habe ich einen AV mit icap im rspamd und der schert sich gerade gar nicht um die Einstellung - Vorschläge gern willkommen. Vorher lief amavis-milter und mit dem habe ich direkt die SQL-Tabelle ausgelesen. Wie das eingestellt war, finde ich auf Anfrage vielleicht noch in einem Backup.


Diese "Information" ist aus dem Gedächtnis erstellt und wurde nicht an einen System from scratch ausprobiert. Du solltest im Linux wissen was Du tust, dann kommst Du sicher zurecht, wenn nicht ergänze ich gern oder beantworte Fragen. Ich werde aber keine Anleitungen geben wir z.B. rspamd oder postfix grundsätzlich zu konfigurieren sind. Das hier dient nur als Ergänzung für ein schon laufendes System mit diesen Komponenten.

Viel Erfolg. Und wenn ich mir was wünschen dürfte - bringt das bitte so oder ähnlich ins froxlor.

frx-settings.jpg

frx-dkim-settings.jpg

formfield.emails_edit.php.diff customer_email.php.diff Emails.php.diff mail_virtual.sql froxlor2rspamd

 

dkim2rspamd

  • Thanks 1
Link to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 0

Update : Query geht nun auch für catchall-Adressen / es wird ggf. für rspamd das Symbol BYPASS_VIRUS_CHECK gesetzt, dazu muss noch die /etc/rspamd/local.d/multimap.conf erweitert (oder angelegt werden)

BYPASS_VISRUS_CHECK {
    type = "rcpt";
    map = "file:///var/lib/rspamd/virus_lovers.inc";
    symbol = "BYPASS_VIRUS_CHECK";
    score = 0.0;
}

 

froxlor2rspamd

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...