[PYTHON] Mailman liefert alle von DKIM signierten E-Mails, die von einer bestimmten Domain gesendet wurden

Überblick

Wenn Sie eine Mailingliste mit Mailman betreiben, möchten Sie möglicherweise alle aus Ihrer Organisation gesendeten E-Mails akzeptieren und zustellen. Zum Beispiel, wenn Sie Mailman als Kontaktstelle für Ihre Organisation verwenden. In diesem Artikel werden wir das Modul zur Bestimmung der Moderatoren von Mailman erweitern, um zu erklären, wie alle von DKIM signierten E-Mails akzeptiert und zugestellt werden, die von einer bestimmten Domain gesendet wurden [^ Einschränkung].

[^ Einschränkung]: In letzter Zeit scheint es einen Fall zu geben, in dem ein verlassenes Konto von Google Mail usw. erstellt und von DKIM signierter Spam gesendet wird. Daher empfehlen wir nicht, alle von DKIM signierten E-Mails zu akzeptieren und zuzustellen.

Hintergrund

Um E-Mails von Teilnehmern zu erhalten, die keine Mailinglisten sind, wenn Sie eine Mailingliste mit Mailman ausführen, setzen Sie entweder (1) die Option generic_nonmember_action auf "Approve" oder (2) die Option accept_these_nonmembers auf einen geeigneten regulären Ausdruck. Es gibt Optionen wie. Ersteres (1) akzeptiert jedoch alle E-Mails, und letzteres (2) stützt sich auch auf den leicht zu fälschenden Header From, wodurch er für Spam anfällig wird.

Um dieses Problem zu beheben, haben wir die folgenden Erweiterungen ausprobiert:

Da der Mailserver der Universität von lokal zu G Suite gewechselt ist, ist es nicht mehr möglich, den von den Mitgliedern verwendeten sendenden Mailserver einzuschränken, und [alle von einem bestimmten Mailserver gesendeten Mails werden zugestellt](https: // qiita). .com / tsuchm / items / 44a76392ca94d28f1617) Die Methode ist nicht mehr verfügbar.

Alternativ können Sie die DKIM-Signatur mithilfe von Von G Suite gesendete E-Mails haben eine DKIM-Signatur überprüfen. Ich werde die Einstellung einführen, dass das Von der E-Mail, die Sie erhalten haben, alle E-Mails liefert, die der Domäne Ihrer Organisation entsprechen.

Aufbau

Installieren Sie zunächst das Python-Modul zur Überprüfung der DKIM-Signatur.

sudo apt install python-dkim

Kopieren Sie dann DKIMModerate.py nach / usr / lib / mailman / Mailman / Handlers /. Lesen Sie außerdem den Teil von / usr / lib / mailman / entsprechend Ihrer Umgebung.

Schreiben Sie dann die folgenden Einstellungen in / etc / mailman / mm_cfg.py.

DKIMDOMAINPATTERN = "[@.]example\.jp$"
GLOBAL_PIPELINE[GLOBAL_PIPELINE.index('Moderate')] = 'DKIMModerate'

Die erste Zeile ist ein kanonischer Ausdruck, der der Domäne Ihrer Organisation entspricht. In der folgenden Zeile wird angegeben, dass das obige Modul anstelle von "Mailman / Handlers / Moderate.py" verwendet werden soll, das mit Mailman selbst geliefert wird.

Das ist alles für die Einstellungen. Alle E-Mails mit einer Domain, die mit "DKIMDOMAINPATTERN" in der Absenderadresse übereinstimmt und eine gültige DKIM-Signatur haben, werden jetzt zugestellt.

Recommended Posts

Mailman liefert alle von DKIM signierten E-Mails, die von einer bestimmten Domain gesendet wurden
Mailman liefert alle E-Mails, die von einem bestimmten Mailserver gesendet wurden