Ausgangssituation:
LFT soll auf dem SEPPmail Secure E-Mail Gateway genutzt werden. Die Voraussetzungen hierfür (gültige Lizenz / zusätzlicher Plattenspeicher) wurden bereits geschaffen und die Konfiguration vorgenommen (siehe Large File Transfer). Jedoch soll das Nutzen dieses Features aufgrund bestimmter Kriterien (zum Beispiel AD-Gruppenzugehörigkeit, bestimmte E-Mail Adressen, sendende IP-Adresse) eingeschränkt werden.
Lösung:
Die berechtigten Personen sollen in einer Microsoft Active Directory (AD) Gruppe zusammengefasst werden. Die Zugehörigkeit eines Senders kann über eine LDAP-Abfrage im AD geprüft werden. Nur wenn der Absender für den LFT Versand berechtigt ist, wird LFT ausgeführt. Andernfalls wird eine zu definierende Aktion (Versand als „normale“ E-Mail / Bounce) ausgeführt.
Konfigurationsvorschlag:
Abfrage einer bestimmten AD-Gruppenzugehörigkeit eines Absenders
•Navigieren zu Mail Processing Ruleset generator Custom commands Custom macros and commands for all e-mails BEFORE processing:
•Aktivieren der Option, sowie Einfügen des folgenden Codes in das darunter liegende Eingabefeld:
Zeile |
Code |
---|---|
01 |
# Begin: Custom macros and commands for all e-mails BEFORE processing |
02 |
log(1,'Begin: Custom macros and commands for all e-mails BEFORE processing'); |
|
|
03 |
# Begin: Check if e-mail is LFT and user is allowed to send LFT |
04 |
log(1,'Begin: Check if e-mail is LFT and user is allowed to send LFT'); |
|
|
05 |
if(!incoming()) { |
06 |
if (!internal()) { |
07 |
if (compareattr('use_lfm','equal','1')) { |
08 |
log(1,'Mail is LFT, check if user is allowed to use'); |
09 |
if (ldap_compare('192.168.10.10;CN=Peter Mueller,OU=Users,OU=MyBusiness,DC=Firma,DC=local;mypassword;OU=Users,OU=MyBusiness,DC=Firma,DC=local;mail=$sender)','memberOF','LFT-Benutzer')) { |
10 |
log(1,'User is allowed to send large files, proceeding'); |
11 |
} else { |
12 |
log(1,'User is not allowed to send large files, e-mail will be dropped'); |
13 |
drop('500','User is not allowed to send large files'); |
14 |
} |
15 |
} |
16 |
} |
17 |
} |
|
|
18 |
log(1,'End: Check if e-mail is LFT and user is allowed to send LFT'); |
19 |
# End: Check if e-mail is LFT and user is allowed to send LFT |
|
|
20 |
log(1,'End: Custom macros and commands for all e-mails BEFORE processing'); |
21 |
# End: Custom macros and commands for all e-mails BEFORE processing |
Beschreibung
In diesem Beispiel wird zunächst geprüft, ob es sich um eine ausgehende „LFT“-Mail handelt (Zeilen 05 - 07). Ist dies der Fall, wird über eine LDAP-Anfrage (in diesem Fall AD) die Zugehörigkeit des Absenders zur berechtigten Gruppe geprüft (Zeile 09). Ist der Absender berechtigt, so wird dies im Log eingetragen und im Ruleset fortgefahren (Zeile 10). Andernfalls wird dies ebenfalls in das Log eingetragen (Zeile 12), die E-Mail jedoch verworfen (Zeile 13).
Variationen
Anstelle des LDAP-Vergleichs in Zeile 09 mittels ldap_compare(), könnte auch compare() oder compareattr() zum Einsatz kommen:
Zeile |
Code |
---|---|
09 |
if (compare('to','match','mail@address')) { |
Zeile |
Code |
---|---|
09 |
if (compareattr('connect_from','equal','192.168.139.1')) { |
Anstelle des Befehls drop() in Zeile 13, kann die E-Mail über den Befehl bounce(), unter Verwendung einer entsprechenden Vorlage (hier bounce_LFT), abgewiesen werden.
Zeile |
Code |
---|---|
12 |
log(1,'User is not allowed to send large files, e-mail will be bounced'); |
13 |
bounce('bounce_LFT'); |
Soll das Senden als LFT-Nachricht einfach nur unterdrückt werden, kann anstelle des Befehls drop() die mutmaßliche LFT-Nachricht in eine „normale“ SMTP-Mail zurückkonvertiert werden.
Zeile |
Code |
---|---|
12 |
log(1,'User is not allowed to send large files, e-mail will be sent as "normal" SMTP-mail); |
13 |
flag('nolfm', true); |
13a |
flag('x-smlfm', false); |
13b |
setheader('X-ESWmail-LFM','NO'); |
Verwendete
Befehle