KI-Mailprüfung für PMG mit Google Gemini AI

CH.illig

Renowned Member
Feb 20, 2016
82
23
73
35
Switzerland
it-statistik.ch
Hallo zusammen,

da wir bei uns im PMG ein paar Themen mit Phishing und Spam hatten, die so durchgerutscht sind, hab ich ein kleines Custom-Check Skript gebaut, das eingehende E-Mails per Google Gemini AI analysiert.
(Ob das nun datenschutztechnisch sinnvoll ist, muss jeder selber wissen.)
Das Ganze lässt sich bequem über die PMG Web-GUI steuern.

Was das Skript macht:​

  • Prüfung per Gemini AI: Analysiert Betreff, Absender und Mail-Body auf Phishing, Social Engineering & Spam.
  • Steuerung via PMG GUI: Der KI-Check läuft nur für Domains/Mailadressen, die ihr in der PMG GUI unter Who Objects "pmg-custom-check-gemini" eintragt.
  • Sauberes Logging: Schreibt den Spam-Score und die Begründung der KI direkt in den Mail-Header (X-Gemini-AI-Reason) und ins Syslog.
  • Dynamisches Fallback: Fragt automatisch die verfügbaren Gemini Flash Modelle per API ab. Wenn ein Modell mal (oder mal öfters) 429/503 hat, weicht es automatisch aus.

Setup (kurz gefasst):​

  1. API-Key hinterlegen:
    https://aistudio.google.com/api-keys

  2. Skript herunterladen & ausführbar machen:
    Bash:
    wget -O /usr/local/bin/pmg-custom-check-gemini https://raw.githubusercontent.com/Lokutos/pmg-custom-check-gemini/main/usr/local/bin/pmg-custom-check-gemini
    chmod +x /usr/local/bin/pmg-custom-check-gemini
  3. In PMG aktivieren (/etc/pmg/pmg.conf):

  4. In der PMG Web-GUI:
    Unter Mail Filter -> Who Objects ein Objekt namens pmg-custom-check-gemini erstellen und die gewünschten Empfänger-Domains eintragen.
Das ganze Repo mit Anleitung findet ihr auf GitHub: https://github.com/Lokutos/pmg-custom-check-gemini

Vielleicht hilft es ja dem einen oder anderen hier weiter! Feedback oder PRs sind natürlich willkommen.

Gruss
Joel
 
Last edited:
  • Like
Reactions: ivenae
Ich hätte tatsächlich interesse daran, das lokal zu machen.
Ggf. reicht hier auch nur Betreff (ggf. zzgl. Absender), statt den ganzen Mailbody.
 
Im englischen Forum hab ich auch gerade so etwas vorgestellt, mit kostenfreien OpenRouter Modellen.

Ich filtere viel im Postfix raus und habe im Custom Script auch rspamd eingebunden. Dadurch kann ich den rspamd Spamscore als Vorentscheidung verwenden, ob die Übertragung lohnt. Ist der rspamd Wert unter 2 oder über 7 mache ich keine Anfrage.
Dadurch halte ich die Anfragemenge Minimal (nur ca. 5% aller eintreffenden Mails werden gescannt).
Außerdem übermittel ich nur Absendeserver, Sender und Betreff.