V-Server Strato Spamassassin + ClamAV HowTo mit Qsheff

qSheff-Version: qSheff 2.0-r2 - qmail spam/antivirus wrapper
SA-Version: SpamAssassin Client version 3.0.4

--
Ich hatte mich vor ein paar Wochen schon einmal mit dem Problem gemeldet, dass qsheff / SpamAssassin meine ausgehenden Mails aus Webmail als Spam deklariert. Wenn ich Mails gewöhnlich via SMTP aus Thunderbird versende, passiert dies nicht.
Code:
127.0.0.1, from=`xxx@yyy.tld', to=`xxx@yyy.tld', subj=`***Potential Spam*** Test', size=2783
Gründe für die Deklaration als Spam:
Code:
Inhaltsanalyse im Detail:   (7.0 Punkte, 3.5 benötigt)
Pkte Regelname              Beschreibung
---- ---------------------- --------------------------------------------------
 2.5 HELO_DYNAMIC_HCC       HELO-Rechnername verdächtig (HCC)
 4.1 HELO_DYNAMIC_IPADDR    HELO-Rechnername verdächtig (IP-Adresse 1)
 1.6 BAYES_50               BODY: Spamwahrscheinlichkeit nach Bayes-Test: 40-60%
                            [score: 0.5000]
-1.0 AWL                    AWL: From: address is in the auto white-list
Das Problem mit dem HELO-Rechnername kann ich nur so erklären, dass evtl. als HELO-IP die meines DSL-Anschlusses genommen wird. Weiß aber nicht, wie ich das prüfen kann.

Allgemein dürfte dies aber gar nicht passieren, da in der Datei qsheff.wblist folgende Einträge vorhanden sind:
Code:
ACCEPT 127.0.0.1 OUT
ACCEPT @yyy.tld OUT
Jemand eine Idee warum dennoch geparsed wird und wie ich es beheben kann?
 
ist mein bayes-filter vielleicht kaputt? manche von den Viagra-Mails erhalten jetzt positive Scores (um die 2.5) Aber immer noch mit BAYES_00

Code:
X-Spam-Status: No, score=2.3 required=5.0 tests=BAYES_00,FORGED_RCVD_HELO,
	HTML_50_60,HTML_MESSAGE,SUBJECT_DRUG_GAP_VIA autolearn=no 
	version=3.0.4

Dafür schlägt jetzt halt der Subject-Filter mit zu. Ich habe dem mit sa-learn jetzt schon über 200 dieser Mails geladen, so langsam müsste er doch mal mehr als 0% geben.

Grüße
Conrad
 
@conrado
Gib doch bitte mal vollständige Daten an. Z.B. den gesamten Header und die gesamte Email.
Ein Grund warum der Bayes-Filter nicht greift, kann z.B den Grund haben, daß Spaces dazwischen den Buchstaben stehen. Bayes kann eben nur ganze Wörter erkennen.

huschi.
 
Header:
Code:
Return-Path: <saizadav@corvusdev.com>
Delivered-To: 1-bla@bla.de
Received: (qmail 23212 invoked from network); 29 Jul 2006 16:05:58 +0200
X-Mail-Scanner: Scanned by qSheff-II-2.1-r1 (http://www.enderunix.org/qsheff/)
Received: from bzq-88-154-25-206.red.bezeqint.net (HELO corvusdev.com) (88.154.25.206)
  by e-cw.de with SMTP; 29 Jul 2006 16:05:56 +0200
Message-ID: <000001c6b317$7d42d730$c768a8c0@amv78>
Reply-To: "Davis Saiz" <saizadav@corvusdev.com>
From: "Davis Saiz" <saizadav@corvusdev.com>
To: bla@bla.de
Subject: Re: zuiirVljIAGRA
Date: Sat, 29 Jul 2006 07:01:29 -0700
MIME-Version: 1.0
Content-Type: multipart/alternative;
	boundary="----=_NextPart_000_0001_01C6B2DC.D0E3FF30"
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2800.1106
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on 
	h788265.serverkompetenz.net
X-Spam-Level: **
X-Spam-Status: No, score=2.3 required=5.0 tests=BAYES_00,FORGED_RCVD_HELO,
	HTML_50_60,HTML_MESSAGE,SUBJECT_DRUG_GAP_VIA autolearn=no 
	version=3.0.4

Mail:
Code:
AMBljIEN
CIALIjlS from 3 , 75
VALIjlUM from 1 , 25
VljlAGRA from 3 , 35
 
http://www.wiolertacetile.com
 
,

,

,

,

Never! I shouted aloud, but the two guards merely gripped my arms
the harder and pushed me along the corridor. A third armed guard went
ahead and unlocked the cell door, while the one behind me prodded my
 
Last edited by a moderator:
Hast du mal geguckt ob die Bayes Datenbank auch aktualisiert wird, wenn du ihr etwas beibringst?
 
Hallo qsheff-Experten,

zunächst einmal vielen Dank für die Infos, die ich dem Thread bisher entnehmen konnte!
Ich stehe ebenfalls vor der Aufgabe, auf einem Strato Vserver A Spamassassin und ClamAV mit qmail zusammen zum Laufen zu bringen und habe mich dafür an die Anleitung von edvsb gehalten.
Spamassassin und clamav scheinen zu funktionieren. Doch qsheff (installiert habe ich die Version qsheff-2.0-r2) kann ich nicht zur Mitarbeit bewegen. Wenn meine /var/qmail/bin/qmail-queue wie angegeben

#!/bin/sh
/usr/bin/spamc | /var/qmail/bin/qmail-qsheff

enthält, erhalte ich beim Versenden von Mails vom Server die Fehlermeldung „mail server temporarily rejected message (#4.3.0)“

In den logfiles finde ich dann folgende Einträge:

/var/log/mail.info:
Aug 4 14:26:30 h942289 spamd[31426]: spamd: connection from h942289.serverkompetenz.net [127.0.0.1] at port 34395
Aug 4 14:26:30 h942289 spamd[31426]: spamd: processing message <44D33D01.1070708@butter.de> for qmaild:0
Aug 4 14:26:30 h942289 spamd[31426]: spamd: clean message (1.0/5.0) for qmaild:0 in 0.1 seconds, 719 bytes.
Aug 4 14:26:30 h942289 spamd[31426]: spamd: result: . 0 - HTML_90_100,HTML_MESSAGE,MIME_HTML_ONLY scantime=0.1,size=719,user=qmaild,uid=0,required_score=5.0,rhost=h942289.serverkompetenz.net,raddr=127.0.0.1,rport=34395,mid=<44D33D01.1070708@butter.de>,autolearn=no
Aug 4 14:26:30 h942289 spamd[31422]: prefork: child states: II

/var/log/qsheff.log:
04/08/2006 14:26:30: [qSheff] CLAMD, queue=q-1154694390-449689-6164, recvfrom=84.137.117.48, from=`testaccount@butter.de', to=`pmr@arcor.de', subj=`Ein Test', size=940, error=`connect_clamd', hint=`No such file or directory'

Der letzte Eintrag lässt mich vermuten, dass das die Verbindung zum Socket nicht funktioniert. Der existiert aber und ist auch bei der Konfiguration von qsheff angegeben:

srwxrwxrwx 1 root root 0 Aug 4 14:32 /var/run/clamav/clamd.ctl

Nur den owner habe ich testweise von vscan auf root geändert, brachte aber keinen Unterschied.

Damit das Mailing überhaupt wieder funktioniert, habe ich die qmail-queue geändert auf

#!/bin/sh
/usr/bin/spamc | /var/qmail/bin/qmail-queue.orig

Damit gehen Mails wieder raus und rein und enthalten im Header sogar

X-Spam-Checker-Version:SpamAssassin 3.1.3 (2006-06-01) on h942289.serverkompetenz.net
X-Spam-Status: No, score=1.0 required=5.0 tests=HTML_90_100,HTML_MESSAGE, MIME_HTML_ONLY autolearn=no version=3.1.3

Hat jemand eine Idee, warum qsheff die Zusammenarbeit verweigert bzw. wie ich herausfinde, was mit error=`connect_clamd', hint=`No such file or directory' gemeint ist?

Bin für jede Hilfe dankbar.

Viele Grüße
Matthias
 
Danke für diese Frage. Ein kurzer Blick in die config.log von qsheff hat den ersten Tipfehler entlarvt (das „d“ beim clamd fehlte). Nun sollte es aber richtig sein:

./configure --enable-local-users --enable-custom-error --with-clamd-socket=/var/run/clamav/clamd.ctl --with-clamav --enable-subject-tag

Also schnell noch mal übersetzt und versucht eine Mail zum Server und eine vom Server zu verschicken, allerdings ohne Erfolg. Folgende Logeinträge finde ich.

/var/log/qsheff.log:
Code:
04/08/2006 22:42:13: [qSheff] QUEUE, queue=q-1154724133-13019-28291, recvfrom=194.25.134.18, from=`pmr@arcor.de', to=`testaccount@butter.de', subj=`Test von Aussen zum Server', size=1119, error=`qmail-queue', hint=`Broken pipe'
04/08/2006 22:42:36: [qSheff] QUEUE, queue=q-1154724156-700040-28302, recvfrom=84.137.117.48, from=`testaccount@butter.de', to=`pmr@arcor.de', subj=`Test vom Server nach Aussen', size=959, error=`qmail-queue', hint=`Broken pipe'
/var/log/mail.info:
Code:
Aug  4 22:42:12 h942289 spamd[28233]: spamd: connection from h942289.serverkompetenz.net [127.0.0.1] at port 35844
Aug  4 22:42:12 h942289 spamd[28233]: spamd: processing message <44D3B132.3020002@arcor.de> for qmaild:0
Aug  4 22:42:13 h942289 spamd[28233]: spamd: clean message (0.2/5.0) for qmaild:0 in 0.2 seconds, 915 bytes.
Aug  4 22:42:13 h942289 spamd[28233]: spamd: result: . 0 - AWL,UNPARSEABLE_RELAY scantime=0.2,size=915,user=qmaild,uid=0,required_score=5.0,rhost=h942289.serverkompetenz.net,raddr=127.0.0.1,rport=35844,mid=<44D3B132.3020002@arcor.de>,autolearn=ham
Aug  4 22:42:13 h942289 spamd[28232]: prefork: child states: II
Aug  4 22:42:13 h942289 clamd[28293]: /var/qsheff/tmp/q-1154724133-13019-28291/_headers_: OK
Aug  4 22:42:13 h942289 clamd[28293]: /var/qsheff/tmp/q-1154724133-13019-28291/textfile0: OK
Aug  4 22:42:36 h942289 spamd[28233]: spamd: connection from h942289.serverkompetenz.net [127.0.0.1] at port 35846
Aug  4 22:42:36 h942289 spamd[28233]: spamd: processing message <44D3B148.8020409@butter.de> for qmaild:0
Aug  4 22:42:36 h942289 spamd[28233]: spamd: clean message (1.0/5.0) for qmaild:0 in 0.0 seconds, 738 bytes.
Aug  4 22:42:36 h942289 spamd[28233]: spamd: result: . 0 - HTML_90_100,HTML_MESSAGE,MIME_HTML_ONLY scantime=0.0,size=738,user=qmaild,uid=0,required_score=5.0,rhost=h942289.serverkompetenz.net,raddr=127.0.0.1,rport=35846,mid=<44D3B148.8020409@butter.de>,autolearn=no
Aug  4 22:42:36 h942289 clamd[28293]: /var/qsheff/tmp/q-1154724156-700040-28302/_headers_: OK
Aug  4 22:42:36 h942289 clamd[28293]: /var/qsheff/tmp/q-1154724156-700040-28302/textfile0: OK
Aug  4 22:42:36 h942289 spamd[28232]: prefork: child states: II

Nachdem ich ein wenig mit den Ownern bzw. Rechten der Dateien gespielt habe, bin ich mir nicht mehr sicher, ob das nun noch der richtige Stand ist. Evtl. hat das „broken pipe“ in qsheff.log damit zu tun.

/var/qmail/bin:
Code:
-r-s--x--x  1 root   root     55 Aug  4 21:47 qmail-queue.orig
-r-s--x--x  1 root   qmail 41494 Aug  4 22:26 qmail-qsheff
lrwxrwxrwx  1 root   root     27 Aug  4 22:27 qmail-queue.original_qsheff-> /var/qmail/bin/qmail-qsheff
-rwsr-xr-x  1 root   root     56 Aug  4 22:31 qmail-queue

/var/run
Code:
drwxrwxr-x   2 vscan  root 4096 Aug  4 22:15 clamav
/var/run/clamav
Code:
srwxrwxrwx   1 root  root    0 Aug  4 22:15 clamd.ctl



Den user in /etc/spamd.conf habe ich wie beschrieben auf root gesetzt.
 
-r-s--x--x 1 root root 55 Aug 4 21:47 qmail-queue.orig
Diese Datei ist zu klein. Sie entspricht nicht der original qmail-queue.
Das liegt daran, daß beim zweiten Installieren erneut ein "cp -p qmail-queue qmail-queue.orig" gemacht wird. Du hast wahrscheinlich nicht den uninstall-wrapper.sh ausgeführt, gelle?

Normalerweise legt er noch ein Backup "qmail-queue.orig.2" an. Aber wie es in meinem Howto so schön heißt: Man soll sich vorher ein eigenes Backup dieser Datei anlegen. (Das wird leider immer wieder übersehen...)

huschi.
 
Das stimmt schon, die originale qmail-queue ist das nicht. Aber als Sicherheitsfetischist habe ich natürlich diverse händische Kopien gemacht:)
Damit konnte ich das System bisher auch immer wieder in einen lauffähigen Zustand bringen. Die aktuelle qmail-queue sieht so aus

Code:
-rwsr-xr-x  1 qmailq qmail 16736 Aug  5 00:03 qmail-queue

Um die von qsheff angelegten .orig-Einträge habe ich mich bisher nicht gekümmert. Aber das ist ja eigentlich nicht das, was ich wollte.
Deshalb noch einmal die Frage: Kannst Du mir die owner/Berechtigungen der entscheidenden Dateien bzw. Verzeichnisse geben, mit denen es funktionieren sollte?
Wo könnte ich noch nachsehen, um den Ursprung dieser "broken pipe" Meldung einzukreisen?

Matthias
 
Vieleicht habe ich mich vorhin nicht deutlich ausgedrückt:
Die broken-pipe ist der Aufruf der qmail-queue.orig.
Kopier Dein Backup der qmail-queue auf diese Datei und alles wird gut.

Denn wie man aus den Logfiles erkennen kann, ist sowohl SpamAssassin als auch ClamAV durchgelaufen. Und der dritte und letzte Schritt von qSheff ist der Aufruf der qmail-queue.orig um die Mail wieder an Qmail zu übergeben.

huschi.
 
Danke!! Jetzt habe sogar ich es verstanden. Mir war nicht klar, dass die .orig-Version überhaupt noch eine Aufgabe hat. Habe das System rigoros von qsheff gereinigt, dann 2.0r2 komplett neu installiert und siehe da - es funktioniert:D

Im Header finde ich jetzt:
X-Mail-Scanner: Scanned by qSheff-2.0-r2 (url=http://www.enderunix.org/qsheff/qSheff - Opensource Antivirus & Antispam and content filter solution for qmail)
X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on h942289.serverkompetenz.net
X-Spam-Status: No, score=1.0 required=5.0 tests=HTML_90_100,HTML_MESSAGE, MIME_HTML_ONLY autolearn=no version=3.1.3

Allerdings finde ich noch keinen Hinweis auf ClamAV als Virenscanner. Wenn ich den Eicar-Testvirus an den Server schicke, geht diese Mail scheinbar verloren. Weder der Absender noch der eigentliche Adressat erhält eine Mitteilung. Ich war davon ausgegangen, dass das subject-tag-flag von qsheff eine solche Mitteilung an den Adressaten erlaubt.
Im Mail-Logfile fehlt bei der Eicar-Mail der clamd-Aufruf, der bei normalen Mails erscheint:

Code:
Aug  5 22:26:18 h942289 clamd[27281]: /var/qsheff/tmp/q-1154809578-87242-27278/_headers_: OK
Aug  5 22:26:18 h942289 clamd[27281]: /var/qsheff/tmp/q-1154809578-87242-27278/textfile0: OK

Scheinbar schluckt ClamAV die Virusmail einfach.

Wenn ich die Eicar-Mail vom Server verschicke erhalte ich die Meldung: qq temporary problem (#4.3.0)

Aber dem werde ich ab Montag weiter auf den Grund gehen. Habe diesen Thread dazu auch noch nicht genau studiert.

Nochmals vielen Dank huschi für die schnelle Hilfe!!
 
Moin zusammen!

Musste ein wenig Reisen ;) und konnte mein SA-Problem für eine Woche ad acta legen. Nun nervt mich das Problem aber weiterhin.
Wie liefert Webmail die Mails an den MTA?
Ich bin mir nicht ganz sicher, wie ich diese Frage beantworten kann. Deshalb poste ich hier mal den Mailheader.
Code:
Received: from localhost (127.0.0.1)
  by localhost with SMTP; 8 Aug 2006 05:18:19 +0200
Received: from s05A6.static.pacific.net.au (s05A6.static.pacific.net.au
	[210.23.144.166]) by webmail.meine-domain.tld (Horde MIME library) with HTTP;
	Tue,  8 Aug 2006 13:18:19 +1000
Das eigenartige ist nun allerdings, dass die Mail clean ist und nicht als Spam deklariert wird. Dies kann evtl. daran liegen, dass die Leitung von der Arbeit keine dynamische IP hat, sondern eine statische.
Gestern jedenfalls - als ich zuhause war - wurden alle Emails als Spam deklariert mit fast den gleichen Scores, wie weiter vorne im Thread.
Code:
Message-ID: <20060808131819.1ytgbxtb4gosckoc@webmail.meine-domain.tld>
Ist gosckoc eine Socket-Verbindung? Hab das bisher noch nicht gesehen.
 
Deshalb poste ich hier mal den Mailheader.
Gibt es dazu auch Einträge im Logfile?

Ist gosckoc eine Socket-Verbindung?
Die MessageID wird von System zu System anders gebildet. Lediglich eine Gemeinsamkeit haben die Systeme: Es ist immer eine zufällige Reihe von Zahlen und Buchstaben enthalten. Und das "gosckoc" ein Name sein soll ist leidiglich die Ausgeburt Deiner eigenen Phantasie. :D

huschi.
 
Bzgl. der Message-ID... erst denken, dann schreiben! ;) Danke für die Aufklärung!

Zu den Logeinträgen, ja gibt es, aber ich habe jetzt, um auf Nummer sicher zu gehen, eine neue Mail von zuhause aus geschickt und ich habe wieder das HELO-Problem. Hier der Auszug aus dem maillog:
Code:
Aug  8 09:54:48 hxxxxxx spamd[28702]: connection from hxxxxxx.serverkompetenz.net [127.0.0.1] at port 36357
Aug  8 09:54:48 hxxxxxx spamd[28702]: processing message <20060808175448.j79qg70sgwcs0k0w@webmail.meine-domain.tld> for qmaild:0.
Aug  8 09:54:49 hxxxxxx spamd[28702]: identified spam (4.9/4.0) for qmaild:0 in 0.1 seconds, 710 bytes.
Aug  8 09:54:49 hxxxxxx spamd[28702]: result: Y  4 - AWL,BAYES_00,HELO_DYNAMIC_HCC,HELO_DYNAMIC_IPADDR scantime=0.1,size=710,mid=<20060808175448.j79qg70sgwcs
0k0w@webmail.meine-domain.tld>,bayes=7.64170876577097e-09,autolearn=no
Aug  8 09:54:49 hxxxxxx qmail: 1155023689.143597 new msg 17056132
Aug  8 09:54:49 hxxxxxx qmail: 1155023689.143720 info msg 17056132: bytes 2936 from <ich@meine-domain.tld> qp 3733 uid 2020
Aug  8 09:54:49 hxxxxxx qmail: 1155023689.178330 starting delivery 1504: msg 17056132 to remote adresse@gmx.tld
Aug  8 09:54:49 hxxxxxx qmail: 1155023689.178427 status: local 0/10 remote 1/20
Aug  8 09:54:49 hxxxxxx qmail: 1155023689.490211 delivery 1504: success: 213.165.64.100_accepted$_message./Remote_host_said:_250_2.6.0_Message_accepted_{mx068
}/
Und der dazugehörige Mail-Header:
Code:
Received: (qmail invoked by alias); 08 Aug 2006 07:54:50 -0000
Received: from meine-domain.tld (EHLO hxxxxxx.serverkompetenz.net) [meine Server-IP]
  by mx0.gmx.net (mx068) with SMTP; 08 Aug 2006 09:54:50 +0200
Received: (qmail 3733 invoked from network); 8 Aug 2006 09:54:49 +0200
X-Mail-Scanner: Scanned by qSheff-2.0-r2 (http://www.enderunix.org/qsheff/)
Received: from localhost by hxxxxxx.serverkompetenz.net
	with SpamAssassin (version 3.0.4);
	Tue, 08 Aug 2006 09:54:49 +0200
 
Last edited by a moderator:
Bitte nicht Mailheader von Zeitpunkt X mit IP Y und Logfiles von ganz woanders.
Wie soll man das denn zusammen analysieren?

Allerdings lese ich in Deinem Logfile zumindest die Antwort auf o.g. Frage:
Horde liefert per SMTP an localhost. Evtl. kannst Du dort auch mal in den Versand-Optionen nachsehen, ob sich dort was anderes einstellen läßt.

huschi.
 
Jetzt funktioniert es!

Noch eine Rückmeldung von mir.
Es läuft jetzt alles wie gewünscht. Spams (GTUBE, Bayes muss ich noch anlernen) und Viren werden erkannt und der Adressat erhält eine im subject entsprechend markierte Mail. Bei Viren wird der komplette body entfernt. So wollte ich das.

Zwei Anmerkungen noch:

Die Markierung im subject ist mir erst mit der qsheff Version 2.1-r1 gelungen (qSheff-II-2.1-r1) Mit der ging es dann aber auch automatisch ohne irgendwelche Konfigurationsverrenkungen. Einfach wählen, was ./config --help bzgl. der subject-tags hergibt.
Mit der Version 2.0 sind die Virenmails zwar auch erkannt worden, aber im Nirvana verschwunden.

Ein Problem bei meinen Tests war, dass ich diese zunächst immer mit dem eicar-Testvirus durchgeführt habe. Der wird zwar erkannt, verschwindet immer noch im Nichts. Von testvirus.de habe ich dann einige andere verwendet und die werden entsprechend getagged.

Nochmals vielen Dank an alle!
Matthias

Nachtrag: Ich konnte mein "Eicar-Erkennungsproblem" lösen. Scheinbar versucht qsheff selbst einen Eicar-Anhang zu interpretieren und meldet in qsheff.log auch einen ATTACH-Eintrag, wickelt dann aber die Mail nicht mehr korrekt ab.
Da die Mails ohnehin mit Spamassassin bzw. Clam-AV gescannt werden, muss qsheff nichts selbst erkennen. Daher habe ich in der qsheff.conf unter /usr/local/etc/qsheff-II die Header-, Body- und Attach-Prüfung abgschaltet:
enable_header_filter = 0
enable_body_filter = 0
enable_attach_filter = 0

Jetzt klappts auch mit dem Eicar.
 
Last edited by a moderator:
Hallo,
ich hab die Anleitung mal bei mir durchgespielt. Hat alles geklappt. Jetzt habe ich von meinem Yahoo Account zwei Mails abgeschickt. In einer stand im betreff Viagra und im Text dann Virus. Diese Mail kam nicht an.

Kann man in Spamassassin/ClamAV irgendwo nachsehen welche Mails geblockt wurden?
 
Hallo zurück,

ich würde im Verzeichnis /var/log zunächst in den Logdateien von qsheff, und qmail nachsehen, also z.B.

Code:
tail -100 /var/log/qsheff.log
tail -100 /var/log/mail.info

Gruß Matthias
 
Back
Top