Überwachung des SASI-Updates
SASI (Sophos Anti Spam Interface) für iQ.Suite Wall ist eine Schnittstelle, die ab iQ.Suite Version 10 als Zusatzfunktion zur Bekämpfung von Spam und anderen Massenmails eingesetzt werden kann. Sie erfordert eine gültige Lizenz, welche optional für das Modul iQ.Suite Wall angeboten wird.
Bei der Analyse prüft SASI für iQ.Suite Wall die E-Mails gegen bekannte Muster - sog. „Pattern“ - typischer Spam-Mails. Die Musterdatenbank liegt dabei lokal auf dem Server, auf dem die iQ.Suite installiert wurde. In regelmäßigen Abständen wird diese Datenbank automatisch aktualisiert.
SASI besteht aus den Musterdateien asdb.antispam und db.summary und dem Programm pmx_engine.dll.
Spam verändert sich - teilweise recht träge, teilweise innerhalb von einem Tag flutet eine neue Spam-Welle die Mailboxen der Benutzer. Auf dem konventionellen Weg müssen innerhalb kürzester Zeit Black- und Wortlisten manuell aktualisiert werden, damit die Benutzer nicht unter dem neuen Müllberg begraben werden und wertvolle Zeit mit manueller Sortierarbeit verloren geht. Spam-Mails mit wenig (z. B. nur ein html-Link) oder keinem Text (nur ein Bild) können besonders schlecht auf die Schnelle erkannt und gefiltert werden. Mit dem Einsatz von SASI können zwei Fliegen mit einer Klappe geschlagen werden:
- Durch die Analyse unterschiedlichster Kriterien können auch E-Mails mit wenig oder keinem Text als Spam erkannt werden. Hierzu gehören unter anderem die Prüfung von E-Mail Header, Nachrichtentext und Dateianhangsinformationen sowie eine Prüfung gegen die gängigen RBL-Server.
- Das vollautomatische Update der Anti-Spam-Engine und -Muster auf Basis von Standard-Protokollen (HTTP oder FTP) gewährleistet jederzeit aktuelle Informationen über die sich im Umlauf befindlichen Spam-E-Mails. Ein Eingriff des Administrators zur Korrektur ist nicht mehr nötig.
Der SASI-Update Prozess
Das SASI-Update erfolgt (aus Kundensicht) in zwei Stufen:
- Download der neuen Anti-Spam-Pattern vom GROUP Server über http oder ftp. Dieser Vorgang wird bis Version 11.1 unter Windows über einen sog. Scheduled Task erledigt. Der Administrator muss in diesem Fall die Datei ../iQSuite/SASI/Update/sasi_update.cmd als Scheduled Task (unter Linux als cron-Job) konfigurieren. Ab Version 11.2 erfolgt das Update automatisch. Im Wesentlichen wird in diesem Fall der SASI Update Service (sasi_updateService.exe) mit der Datei settings.xml als Parameter gestartet und in den folgenden Dateien geloggt:
../iQSuite/SASI/Update/sasi_updateservice.log bzw. updateserv.log beim manuellen Start des Updates
../iQSuite/SASI/ntk_sasi.dll.update.log (nur temporär, wird immer wieder gelöscht)
Die unter diesem Punkt diskutierten Einträge beziehen sich ausschließlich auf die Datei sasi_updateservice.log bzw. updateserv.log. Weitere Logdateien werden weiter unten besprochen.
Wichtig sind hier die folgenden Einträge bei erfolgreicher Verbindung zum Download-Server:
08:07:40.953 | [cURL] CURLINFO_RESPONSE_CODE=(200)
08:07:40.953 | [cURL] Status Code is 'Successful 2xx' (200)!
Im Anschluss können Sie verfolgen, dass die benötigten Dateien heruntergeladen werden:
08:07:40.953 | [PROC] Processing contents-file...
08:07:40.953 | [PROC] Processing contents logic... !
08:07:40.953 | [PROC] Processing contents logic finised !
08:07:40.953 | [PROC] Processing contents-file finished !
08:07:40.953 | Downloading file - 'http://httpupdate.group-technologies.com/sasi/win32/antispam-2008.8.08.151007-MSWin32-x86.zip' ...
08:08:01.781 | Downloading Hash-File 'http://httpupdate.group-technologies.com/sasi/win32/antispam-2008.8.08.151007-MSWin32-x86.zip.md5' ...
08:08:01.781 | Downloading file - 'http://httpupdate.group-technologies.com/sasi/win32/antispam-2008.8.08.151007-MSWin32-x86.zip.md5' ...
Falls es keine neuen Pattern-Dateien gibt, erfolgt auch kein Download:
10:29:43.515 | File 'antispam-2008.8.08.71618-MSWin32-x86.zip' does not need to be updated ! (time-diff-ratio=-11436.00) Local timestamp='Wed Aug 08 07:18:00 2008
' / Remote timestamp='Wed Aug 08 07:18:00 2008
'
10:29:43.515 | [PROC] Processing contents logic finised !
10:29:43.515 | [PROC] Processing contents-file finished !
10:29:43.515 | No files downloaded ! Problem might be one of the following:
* No matching patterns in contents file
* Invalid URL
* Invalid proxy settings
Das "Problem" in diesem Fall ist "No matching patterns in contents file". Es wurden keine passenden (aktuelleren) Pattern-Dateien zum Download gefunden.
Die lokal gelegenen Dateien werden verifiziert, entpackt und aufgeräumt. Die aktuellen Dateien befinden sich nun im Verzeichnis ../iQSuite/SASI/Update/Extract:
08:08:01.828 | [PROC] Verifying file 'antispam-2008.8.08.151007-MSWin32-x86.zip' against 'antispam-2008.8.08.151007-MSWin32-x86.zip.md5' ...
08:08:01.937 | [PROC] Verifying file 'antispam-2008.8.08.151007-MSWin32-x86.zip' successful !
08:08:01.937 | Opening archive file - 'C:/Lotus/Domino/iQSuite/SASI/Update/temp/antispam-2008.8.08.151007-MSWin32-x86.zip' ...
08:08:01.937 | Extracting file contents 'C:/Lotus/Domino/iQSuite/SASI/Update/temp/antispam-2008.8.08.151007-MSWin32-x86.zip' to 'C:/Lotus/Domino/iQSuite/SASI/Update/Extract' ...
08:08:01.937 | ->extracting: 'C:/Lotus/Domino/iQSuite/SASI/Update/Extract/MANIFEST' ...
08:08:01.937 | ->extracting: ''C:/Lotus/Domino/iQSuite/SASI/Update/Extract/pmx_engine.dll' ...
08:08:01.984 | ->extracting: ''C:/Lotus/Domino/iQSuite/SASI/Update/Extract/asdb.antispam' ...
08:08:02.234 | ->extracting: ''C:/Lotus/Domino/iQSuite/SASI/Update/Extract/db.summary' ...
08:08:02.265 | File 'C:/Lotus/Domino/iQSuite/SASI/Update/temp/antispam-2008.8.08.151007-MSWin32-x86.zip' extracted successfully .
08:08:02.265 | Removing old files from working directory - 'C:/Lotus/Domino/iQSuite/SASI/Update/temp'
Die folgende Meldung finden Sie, wenn die Verbindung zum Downloadserver nicht hergestellt werden konnte:
08:08:17.593 | Error performing lib cURL operation (code 7)='couldn't connect to server'
Prüfen Sie in diesem Fall folgende Punkte:
a) Datei ..iQSuiteSASIUpdatesettings.xml: Ist der richtige Downloadserver eingetragen?
Richtig wäre:
<Url>http://httpupdate.group-technologies.com</Url> oder
<Url>ftp://ftpupdate.group-technologies.com</Url>
b) Kann vom iQ.Suite-Server aus per http oder ftp auf die o. g. Server zugegriffen werden?
c) Datei ../iQSuite/SASI/Update/settings.xml: Benötigt der Service einen Proxy, um auf die o. g. Server zuzugreifen? Wenn kein Proxy benötigt wird, muss der Wert für <Proxy enabled="false"> gesetzt werden.
Beispiel:
<Proxy enabled="true">
<Url>192.168.1.11</Url>
<Port>8080</Port>
<Username>domainuser</Username>
<Password>geheim</Password>
d) Ist DNS korrekt konfiguriert? Kann der DNS-Name des Downloadservers (httpupdate.group-technologies.com oder ftpupdate.group-technologies.com) in eine IP-Adresse aufgelöst werden? Ist der Port 53 TCP ausgehend für den Server freigeschaltet?
Sie können testweise die URL "ftp://ftpupdate.group-technologies.com" in Ihren Browser eingeben. Authentifizieren Sie sich mit dem Benutzernamen "sasi" und dem Passwort "groupsasi". - Kopieren der neuen Pattern in das SASI-Arbeitsverzeichnis
In der zweiten Stufe erfolgt das lokale Update der SASI-Muster (asdb.antispam, db.summary) und des Programms (pmx_engine.dll) durch eine GROUP-Sandbox-Implementierung. Diese Implementierung ist so konfiguriert, dass sie unter ../iQSuite/SASI/Update/Extract nach neuen Dateien sucht. Sobald dort Dateien gefunden werden (neue Dateiversionen verfügbar sind), überträgt die Sandbox-Implementierung alle benötig-ten Dateien in das SASI-Verzeichnis (../iQSuite/SASI), das von einem SASI-Standardjob verwendet wird.
Um die Sandbox-Implementierung auszuführen, aktivieren Sie den vorkonfigurierten (angepassten) SASI-Standardjob. Die Sandbox versucht, die bestehenden Muster- und Programmdateien stündlich oder bei einer Jobinitialisierung zu aktualisieren. Dieser Vorgang wird in der Datei ../iQSuite/SASI/ntk_sasi_server.log protokolliert. Dazwischen finden wir auch den SMTP-Dialog, über den die E-Mail gesendet wird, ob das Update erfolgreich war oder nicht - je nachdem, was in der Steuerdatei settings.xml unter dem Punkt "E-mail options" konfiguriert wurde. Es ist wichtig zu wissen, dass dieser Teil erfogreich abgearbeitet wird - die Benachrichtungs-E-Mails sollen ja informieren, nicht verschwinden.
08/13/08 11:16:50 (0552/3320): Need to copy new file C:/Lotus/Domino/iQSuite/sasi/./Update/Extract/asdb.antispam to C:/Lotus/Domino/iQSuite/sasi/asdb.antispam
08/13/08 11:16:50 (0552/3320): Need to copy new file C:/Lotus/Domino/iQSuite/sasi/./Update/Extract/db.summary to C:/Lotus/Domino/iQSuite/sasi/db.summary
08/13/08 11:16:50 (0552/3320): Need to copy new file C:/Lotus/Domino/iQSuite/sasi/./Update/Extract/pmx_engine.dll to C:/Lotus/Domino/iQSuite/sasi/pmx_engine.dll
08/13/08 11:16:50 (0552/3320): ---------- Initial Run ----------
08/13/08 11:16:50 (0552/3320): Copy new file C:/Lotus/Domino/iQSuite/sasi/./Update/Extract/asdb.antispam to C:/Lotus/Domino/iQSuite/sasi/update_tmp/asdb.antispam ...
08/13/08 11:16:50 (0552/3320): ... done
08/13/08 11:16:50 (0552/3320): Copy new file C:/Lotus/Domino/iQSuite/sasi/./Update/Extract/db.summary to C:/Lotus/Domino/iQSuite/sasi/update_tmp/db.summary ...
08/13/08 11:16:50 (0552/3320): ... done
08/13/08 11:16:50 (0552/3320): Copy new file C:/Lotus/Domino/iQSuite/sasi/./Update/Extract/pmx_engine.dll to C:/Lotus/Domino/iQSuite/sasi/update_tmp/pmx_engine.dll ...
08/13/08 11:16:50 (0552/3320): 11:16:40.671 | [cURL] CURLINFO_RESPONSE_CODE=(200)
08/13/08 11:16:50 (0552/3320): 11:16:40.890 | [cURL] Status Code is 'Successful 2xx' (200)!
08/13/08 11:16:50 (0552/3320): 11:16:40.890 | [PROC] Processing contents-file...
08/13/08 11:16:50 (0552/3320): 11:16:40.890 | [PROC] Processing contents logic... !
08/13/08 11:16:50 (0552/3320): 11:16:40.890 | [Local-time=1218608400] [Server-time=1218618926] [time-diff-ratio=-10526.00]
08/13/08 11:16:50 (0552/3320): 11:16:40.890 | File 'antispam-2008.8.13.81921-MSWin32-x86.zip' does not need to be updated ! (time-diff-ratio=-10526.00) Local timestamp='Wed Aug 13 08:20:00 2008
08/13/08 11:16:50 (0552/3320): ' / Remote timestamp='Wed Aug 13 08:20:00 2008
08/13/08 11:16:50 (0552/3320): '
08/13/08 11:16:50 (0552/3320): 11:16:40.890 | [PROC] Processing contents logic finised !
08/13/08 11:16:50 (0552/3320): 11:16:40.890 | [PROC] Processing contents-file finished !
08/13/08 11:16:50 (0552/3320): 11:16:40.890 | No files downloaded ! Problem might be one of the following: 08/13/08 11:16:50 (0552/3320): * No matching patterns in contents file 08/13/08 11:16:50 (0552/3320): * Invalid URL 08/13/08 11:16:50 (0552/3320): * Invalid proxy settings
08/13/08 11:16:50 (0552/3320): 11:16:40.890 | Removing old files from working directory - 'C:/Lotus/Domino/iQSuite/SASI/Update/temp'
08/13/08 11:16:50 (0552/3320): 11:16:40.890 | Sending [Info] mail...
08/13/08 11:16:50 (0552/3320): 11:16:40.890 | [tcp] connecting to 'iqsuite.training.local' ...
08/13/08 11:16:50 (0552/3320): 11:16:40.890 | [smtp] waiting for 'Ok' status ...
08/13/08 11:16:50 (0552/3320): 11:16:40.890 | SMTP-Response: 220 iqsuite.training.local ESMTP Service (Lotus Domino Release 7.0.1) ready at Wed, 13 Aug 2008 11:16:40 +0200
08/13/08 11:16:50 (0552/3320): 11:16:40.890 | [smtp] sending 'EHLO' ...
08/13/08 11:16:50 (0552/3320): 11:16:40.890 | SMTP-Response: 250-iqsuite.training.local Hello iqsuite.training.local ([127.0.0.1]), pleased to meet you
08/13/08 11:16:50 (0552/3320): 11:16:40.890 | SMTP-Response: 250-HELP
08/13/08 11:16:50 (0552/3320): 11:16:40.890 | SMTP-Response: 250-VRFY
08/13/08 11:16:50 (0552/3320): 11:16:40.890 | SMTP-Response: 250-SIZE
08/13/08 11:16:50 (0552/3320): 11:16:40.890 | SMTP-Response: 250 PIPELINING
08/13/08 11:16:50 (0552/3320): ... done
08/13/08 11:16:50 (0552/3320): ---------- Waiting 10 seconds ----------
08/13/08 11:16:50 (0552/3320): 11:16:45.890 | tcp_getline(): No data.
08/13/08 11:16:50 (0552/3320): 11:16:45.890 | [smtp] err=(status(-1)!=250)
08/13/08 11:16:50 (0552/3320): 11:16:45.890 | [smtp] sending 'mail from' ...
08/13/08 11:16:50 (0552/3320): 11:16:45.890 | SMTP-Response: 250 sasi-info@training.local... Sender OK
08/13/08 11:16:50 (0552/3320): 11:16:45.890 | [smtp] sending 'rcpt to' ...
08/13/08 11:16:50 (0552/3320): 11:16:45.890 | SMTP-Response: 250 iqsuite-admin@training.local... Recipient OK
08/13/08 11:16:50 (0552/3320): 11:16:45.890 | [smtp] sending 'data' ...
08/13/08 11:16:50 (0552/3320): 11:16:45.890 | SMTP-Response: 354 Enter message, end with "." on a line by itself
08/13/08 11:16:50 (0552/3320): 11:16:45.906 | SMTP-Response: 250 Message accepted for delivery
08/13/08 11:16:50 (0552/3320): 11:16:45.906 | [smtp] sending 'quit' ...
08/13/08 11:16:50 (0552/3320): 11:16:45.906 | SMTP-Response: 221 iqsuite.training.local SMTP Service closing transmission channel
08/13/08 11:16:50 (0552/3320): 11:16:45.906 | Mail sent successfully to 'iqsuite-admin@training.local' .
08/13/08 11:16:50 (0552/3320): 11:16:45.906 |
08/13/08 11:16:50 (0552/3320): _Application-ExitCode=0
08/13/08 11:16:50 (0552/3320): ---------- Run 1 ----------
08/13/08 11:16:50 (0552/3320): File set is stable.
08/13/08 11:16:50 (0552/3320): ---------- Final Move ----------
08/13/08 11:16:50 (0552/3320): Move file C:/Lotus/Domino/iQSuite/sasi/update_tmp/pmx_engine.dll to C:/Lotus/Domino/iQSuite/sasi/pmx_engine.dll ...
08/13/08 11:16:50 (0552/3320): ... done
08/13/08 11:16:50 (0552/3320): Move file C:/Lotus/Domino/iQSuite/sasi/update_tmp/db.summary to C:/Lotus/Domino/iQSuite/sasi/db.summary ...
08/13/08 11:16:50 (0552/3320): ... done
08/13/08 11:16:50 (0552/3320): Move file C:/Lotus/Domino/iQSuite/sasi/update_tmp/asdb.antispam to C:/Lotus/Domino/iQSuite/sasi/asdb.antispam ...
08/13/08 11:16:50 (0552/3320): ... done
08/13/08 11:16:50 (0552/3320): Finished update
08/13/08 11:16:50 (0552/3320): Timestamp 2008-08-13T09:16:40 written to C:/Lotus/Domino/iQSuite/sasi/ntk_sasi_ref.cfg.timestamp
08/13/08 11:16:50 (0552/3320): ---- done
08/13/08 11:16:50 (0552/3320): Result: 0
Aufruf der Schnittstelle durch iQ.Suite
Wenn das Update erfolgreich war, bzw. wenn die benötigten Dateien im SASI-Verzeichnis liegen, kann der Zugriff durch die iQ.Suite auf die Schnittstelle erfolgen.
Dieser Vorgang wird über das SOAP-Protokoll in Form einer Client-Server-Verbindung realisiert, wobei die iQ.Suite der SOAP-Client (soap.ntk_sasi.dll) ist und die SASI-Schnittstelle (ntk_sasi.dll.exe) der Server.
Da der SOAP-Server nicht immer läuft, muss der Client ihn bei Bedarf starten. Zunächst versucht der Client jedoch, sich direkt mit dem Server zu verbinden. Wenn dieser nicht gestartet ist, schlägt dieser erste Verbindungsversuch fehl. Dies wird im Client-Log (..iQSuite/SASI/ntk_sasi_client.log) protokolliert:
"No connection could be made because the target machine actively refused it."
Detail: connect failed in tcp_connect()
Jetzt erst startet der Client den SOAP-Server, siehe ntk_sasi_client.log:
08/08/08 08:08:08 (1160/3288): trying to start C:/Lotus/Domino/iQSuite/sasintk_sasi.dll.exe C:/Lotus/Domino/iQSuite/sasi/ntk_sasi.dll ...
08/08/08 08:08:09 (1160/3288): started talking to C:/Lotus/Domino/iQSuite/sasi/ntk_sasi.dll.exe pid 1436
Die Verbindung ist nun hergestellt und die E-Mails werden über die Schnittstelle an die SASI-Engine (pmx_engine.dll) übergeben, die anhand der Patterndateien (asdb.antispam und db.summary) die Nachricht auf ihre Spam-Wahrscheinlichkeit prüft.
Neben der Protokollierung des lokalen Updates werden in der Datei ntk_sasi_server.log die Verbindungsversuche der/des SOAP-Clients gelistet:
08/13/08 11:16:50 (0552/3320): OK (providing GAPI interface)
08/13/08 11:16:51 (0552/3444): Sandbox: open request from client "3832-240311564-003462D0"
08/13/08 11:16:51 (0552/3444): Sandbox: now 1 session(s) open
08/13/08 11:16:51 (0552/3244): GAPI: InitializeDLL requested
08/13/08 11:16:51 (0552/3244): GAPI: InitializeDLL finished
08/13/08 11:16:51 (0552/3444): GAPI: InitializeSession requested
08/13/08 11:16:51 (0552/3444): GAPI: InitializeSession succeeded
Der Server beendet sich nach einem definierten Timeout, wenn der Client die Verbindung nicht hält. Er wird beim nächsten Verbindungsversuch vom Client wieder gestartet.
Error 28 fault: SOAP-ENV:Server [no subcode]
"Timeout"
Detail: accept failed in soap_accept()
Error 28 fault: SOAP-ENV:Server [no subcode]
"Timeout"
Detail: accept failed in soap_accept()
Error 28 fault: SOAP-ENV:Server [no subcode]
"Timeout"
Detail: accept failed in soap_accept()
08/13/08 12:58:26 (4088/3448): going to terminate because idle timeout exceeded
08/13/08 12:58:26 (4088/3448): C:/Lotus/Domino/iQSuite/sasi/ntk_sasi.dll.exe - Waiting for threads to terminate
08/13/08 12:58:27 (4088/3448): C:/Lotus/Domino/iQSuite/sasi/ntk_sasi.dll.exe - Going to terminate socket connection
08/13/08 12:58:27 (4088/3448): C:/Lotus/Domino/iQSuite/sasi/ntk_sasi.dll.exe - SOAP service terminated
Spam-Bekämpfung steht nach wie vor an einer der ersten Stellen der Aufgaben eines Administrators. Ist der Filter einmal eingerichtet, dauert es meist nicht lange, dann haben die Spammer bereits eine neue Strategie entwickelt, die Mechanismen zur Erkennung zu umgehen. Und schon häufen sich die Anrufe unzufriedener Benutzer, die sich über einen zu großen Spam-Anteil in ihrem Postfach beschweren.
In unserem Schulungen entwickeln wir ein stufiges Konzept, das Ihnen hilft, Spam dauerhaft erfolreich zu bekämpfen, ohne immer wieder nachjustieren zu müssen.
Besuchen Sie uns! Wir freuen uns auf Sie!