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:

    Bash:
    echo 'GEMINI_API_KEY="DEIN_KEY"' >> /etc/environment

  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):


    INI:
    section: admin
            custom_check /usr/local/bin/pmg-custom-check-gemini


    Danach systemctl restart pmg-smtp-filter.

  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
 
  • 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.