Mail-Server » Qmail

ID #1133 Plesk: Spamassassin und ClamAV per qsheff einbinden

Das Orginal stammt aus dem Server-Support-Forum:
V-Server Strato Spamassassin + ClamAV HowTo mit Qsheff
(Ich veröffentliche es mit freundlicher Genemigung des Autors Dennis Hoofe.
Verbessert mit Hilfe vom User edvsb Ende April 2006.)

Vorraussetzung:

Ein Server mit Plesk und Qmail unter SuSE 9.x.

Update:
Nach aktuellen Berichten funktioniert dieses Howto auch mit OpenSUSE 11.1 und Plesk 9.2.3.

SpamAssassin intallieren:

yast -i spamassassin

# Die SpamAssassin-Konfiguration kann man entweder so beibehalten,
# oder mithilfe des SpamAssassin Configuration Generator
# neu erstellen.

/etc/init.d/spamd start

ClamAV intallieren:

yast -i clamav

#Konfigurieren:
insserv clamd
insserv freshclam
edit /etc/clamd.conf
#dort folgende Zeile finden und '#' davor löschen:
#LogFile /var/log/clamd
edit /etc/freshclam.conf
#dort diese Zeile finden und '#' löschen:
#UpdateLogFile /var/log/freshclam.log

#Logfiles anlegen und Rechte setzen:
touch /var/log/clamd
touch /var/log/freshclam.log
chown vscan /var/log/clamd
chown vscan /var/log/freshclam.log
chown -R vscan /var/lib/clamav/

#Freshclam einmal starten:
freshclam -v

#Wenn alles läuft die Dämonen starten:
/etc/init.d/clamd start
/etc/init.d/freshclam start

Ripmime installieren:

Update: Es gibt inzwischen die Version <code>ripmime-1.4.0.10.tar.gzcode>.

#richtiges Verzeichnis:
cd /usr/local/src
#download & auspacken
wget http://www.pldaniels.com/ripmime/ripmime-1.4.0.5.tar.gz
tar zxvf ripmime-1.4.0.5.tar.gz
cd ripmime-1.4.0.5
#installieren
make
make install
#Symlink setzten:
ln -s /usr/local/bin/ripmime /usr/bin/

qsheff installieren:

#richtiges Verzeichnis:
cd /usr/local/src
#wget http://www.enderunix.org/qsheff/qsheff-1.0-r5.tar.gz #Mit der Version r5 scheint es wohl Probleme zu geben. Daher:
wget http://www.huschi.net/download/qsheff-1.0-r4.tar.gz
tar -xzvf qsheff-1.0-r4.tar.gz
cd qsheff-1.0-r4
./configure
make

#qmail kurz anhalten:
/etc/init.d/qmail stop
#Backup der zu überschreibenenden qmail-queue:
cp -p /var/qmail/bin/qmail-queue /var/qmail/bin/qmail-queue.bak

#erster Installlationsschritt
make install
#Konfiguration anpassen:
edit /usr/local/etc/qsheff/qsheff.conf
# in der Zeile von VIRUS_PROG den Pfad anpassen:
# VIRUS_PROG = "/usr/bin/clamdscan –-quiet"

#zweiter Installlationsschritt
/usr/local/etc/qsheff/install-wrapper.sh
#Spamassassin in die qmail-queue einbinden:
rm -f /var/qmail/bin/qmail-queue
echo '#!/bin/sh' >/var/qmail/bin/qmail-queue
echo '/usr/bin/spamc | /var/qmail/bin/qmail-qsheff' >>/var/qmail/bin/qmail-queue
chmod 4755 /var/qmail/bin/qmail-queue

#qmail wieder starten:
/etc/init.d/qmail start

Nachtrag:
Bei o.g. Lösung werden sowohl eingehende als auch ausgehende Emails gescannt. Wer nur eingehende Emails scannen lassen will, kann <code>/var/qmail/bin/qmail-queuecode> wie folgt ersetzen:

#!/bin/bash
if [ -z $USER ] ; then
  /usr/bin/spamc | /var/qmail/bin/qmail-qsheff
else
  /var/qmail/bin/qmail-qsheff
fi

Ein anderer User hat im ServerSupportForum das Script erfolgreich wie folgt eingesetzt:

#!/bin/bash
if [ "$SMTPRCPTHOSTSOK" = "1" ] ; then
  /usr/bin/spamc | /var/qmail/bin/qmail-qsheff
else
  /var/qmail/bin/qmail-qsheff
fi

Abschluß:

Natürlich sollte es nun ausgiebig getestet werden:
Mailversand in alle Richtungen.

Vorsichthalber einmal <code>youcode> starten um die aktuellen Programmversionen von SpamAssassin und ClamAV zu laden.

Rückgängig:

Um die Installation rückgängig machen zu können ist das entsprechende Backup von qmail-queue notwendig:

/usr/local/etc/qsheff/uninstall-wrapper.sh
mv /var/qmail/bin/qmail-queue.bak /var/qmail/bin/qmail-queue

Links:

Getestet auf:

- V-Server von Strato mit Suse 9.3 und Plesk

 

sozial Bookmarking
Bookmarken bei YIGG Bookmarken bei Mister-Wong Bookmarken bei Icio Bookmarken bei del.icio.us Bookmarken bei Technorati Bookmarken bei Furl Bookmarken bei Spurl Bookmarken bei Yahoo Bookmarken bei Google

vom 2006-09-06 10:18, zuletzt 2009-11-16 21:45     Artikel ausdrucken Artikel weiterempfehlen Als PDF-Datei anzeigen

Dieser Inhalt ist unter der Creative-Commons Lizenz lizensiert.

Probleme bitte im Server-Support-Forum diskutieren.

Rubriken zu diesem Artikel
überflüssig 1 2 3 4 5 wertvoll  
Durchschnittliche Bewertung:   5 von 5 (7 Bewertungen)

Artikel kommentieren

Kommentar von netti (2038-01-19 04:14:07):
Hallo!
Gutes HowTo, war sicherlich ein gutes Stück Arbeit.
Allerdings will es auf meinem VServer bei Strato nicht so recht laufen...
Ich habe alles vollständig installiert, aber ich habe folgende Warnungen erhalten:

qsheff --> make:
miscutil.c: 'misc_openlog'
function 'snprintf'
miscutil.c: 'misc_rotatelog'
function 'localtime_r'
miscutil.c: 'misc_debug'
'%y' yields only 2 digits of year

trotzdem wird die Installation durchgeführt

und dann nach dem "#zweiter Installlationsschritt" funktioniert kein Mailversand und Empfang mehr.

qmail-queue ist ein Link zu "/var/qmail/bin/qmail-qsheff" und dieses enthält folgenden Text:
"#!/bin/sh
/usr/bin/spamc | /var/qmail/bin/qmail-qsheff"

wo liegt mein Fehler? Ich wäre für Hilfe sehr dankbar!

Grüße
netti

Kommentar von Hans (2038-01-19 04:14:07):
Bei mir kommt der selbe Fehler. Aktueller V-Server von Strato.

Ebenfalls kein Mail Verkehr mehr.

Abhilfe möglich?

Hans

Kommentar von Tom (2038-01-19 04:14:07):
Das selbe bei mir, es werden keine Mails mehr zugestellt oder gesendet.

Und der Mailerdaemon sagt

>>>
Hi. This is the qmail-send program at xxx.de.
I'm afraid I wasn't able to deliver your message to the following addresses.
This is a permanent error; I've given up. Sorry it didn't work out.
:
85.xxx.xxx.xxx does not like recipient.
Remote host said: 550 5.1.1 ... User unknown Giving up on 85.xxx.xxx.xxx.

Kommentar von huschi (2038-01-19 04:14:07):
Wie bereits an vielen Stellen steht:
Dies ist kein Diskussionsforum. Wer Probleme hat geht bitte ins Server-Support-Forum.

Ansonsten liegt der o.g. Fehler meist daran, daß die Datei /var/qmail/bin/qmail-queue nicht korrekt ist oder nicht ausführbar, oder die Pfade nicht richtig gesetzt sind.
Hier müßt Ihr es einfach mal selber testen.

huschi.

Kommentar von frank (2038-01-19 04:14:07):
Ein nettes Howto aber mich würde interessieren, zu welcher Plesk Version es gehört oder funktioniert es bei allen? Das ist eine Angabe, die noch dabei sein sollte um Mißverständnisse zu vermeiden.

Gruß, Frank

Kommentar von huschi (2038-01-19 04:14:07):
@Frank und alle die es interessiert:
Da qmail seit 2001 einen Entwicklungsstillstand hat, tut sich daran nicht viel. Und beim Sprung von Plesk 7.5 auf 8.0 ist lediglich die SPF-Prüfung (als Patch) dazugekommen, die aber an ganz anderer Stelle greift als hier.

huschi.

Kommentar von art-media (2038-01-19 04:14:07):
#!/bin/bash
if [ -z $USER ] ; then
/usr/bin/spamc | /var/qmail/bin/qmail-qsheff
else
/var/qmail/bin/qmail-qsheff
fi

an dieser Stelle ist meiner Meinung ein Fehler da sowohl eingehende wie auch ausgehende mails bei mir mit dem selben user ankommen als env variable.

um die beiden richtungen zu unterscheiden habe ich dieses script hier geschrieben damit mails nach innen auch noch per procmail bearbeitet werden können.

#!/bin/bash
if [ "$SMTPHELOHOST" == "[127.0.0.1]" -o "$SMTPHELOHOST" == "localhost" ]; then
/var/qmail/bin/qmail-qsheff
#echo outbound >> /var/log/debug_qmail-queue
else
/usr/bin/spamc -x -u qmaild -U /tmp/spamd_full.sock |/usr/bin/procmail -m /etc/euer.procmailfile |/var/qmail/bin/qmail-qsheff
#echo inbound /var/log/debug_qmail-queue
fi

ansonsten vielen dank fürs tut.
wichtig wär noch das in dem procmail file zum weiterleiten einfach nur | als action gesetzt werden sollte.

gruss
art-media

Kommentar von Christopher Müller (2038-01-19 04:14:07):
hi,

bei mir hat es auch nicht hingehaun
heute hab ich es noch mal proberit.

also
/etc/init.d/spamd
muss noch in den runlevel 3 eingeschreiben werden sonst ist nach einem reboot kein spamd da!

dann habe ich die ripmime nach dem
make install auch noch in /bin kopiert, Grund sonst wird diese nicht von qsheff bei ./configure gefunden.

die datei qmail-queue bitte noch mal extra sichern da man sie sonst leicht überschreiben kann.

so jetzt haut alles super hin denk ich mal also danke!

Chris

http://www.christopher-mueller.eu/

Kommentar von walter (2006-10-31 21:01:42):
super tutorial, ausser das ein package via yast nicht zu bekommen war (stellte aber auch kein problem dar) funktioniert es problemlos auf einem Virtual Server von 1und1. thx walter

Kommentar von dogsch (2007-03-08 17:55:04):
ich habe SpamAssassin nach der Anleitung aus der Einführung des O'Reilly Buches installiert ("SpamAssassin-Grundlagen")
http://www.oreilly.de/catalog/spamassassinger/chapter/
Jetzt werden wohl aber meine Mails nicht geprüft - es fehlen die Tags:

X-Spam-Status:
X-Spam-Flag:
X-Spam-Checker-Version:
X-Spam-Level:

Woran kann das liegen?

Oder wie deinstalliert man SpamAssassin wieder um dann wie von Huschi beschrieben neu zu installieren?

Gruß aus Berlin

Kommentar von Homicide (2007-03-09 04:08:14):
Hallo,

ich habs genau nach dem tut installiert, aber mein Mailserver läßt mich keine Mails mehr rausschicken.
Fehlermeldung: 451, Mailserver kann zur Zeit keine Mails annehmen.

was habe ich da falsch gemacht?

Homicide

Kommentar von Andreas Klein (2007-11-22 20:20:17):
Ich nutze qsheff mit Plesk 8.2 auf einem Suse 10.1 Root-Server bei 1und1.

Plesk hat zwar Support für Spamassassin, dieser greift aber erst, nachdem die Mail bereits angenommen worden ist. Für den Spammer sieht es damit so aus, als ob er die Mail erfolgreich zugestellt hat.

Dies geht bereits mit der dargestellten Lösung. Da auf dem Server aber auch Domains weiterer Nutzer gehostet werden, kommt eine globale Filterung von Spam nicht in Frage. Im Gegensatz zum Ausfiltern von Viren geht das nur mit expliziter Zustimmung.

Ich habe daher folgende Anpassungen vorgenommen:

/var/qmail/bin/qmail-queue zeigt auf das folgende Script (bei mir qmail-queue.spam, Name grds. beliebig):

===========================
#!/bin/bash
Domain=`echo $SMTPRCPTTO | cut -d@ -f2`
SPAMC=/usr/bin/spamc
MAX_SIZE=256000 # max letter size to filter
SOCKETPATH="/tmp/spamd_full.sock"

case $Domain in
|) "$SPAMC" -s "$MAX_SIZE" -u -U "$SOCKETPATH" -E | /var/qmail/bin/qmail-qsheff;;
) "$SPAMC" -s "$MAX_SIZE" -u -U "$SOCKETPATH" -E | /var/qmail/bin/qmail-qsheff;;
*) /var/qmail/bin/qmail-qsheff;;
asec

===========================

Dabei sind mit den entsprechenden Domains und mit einem zu der/den Domains passenden Mailaccount zu ersetzen.

Die Lösung sorgt dafür, dass für die spezifizierten Domains zusätzlich Spamassassin läuft. Der Parameter "-E" sorgt für eine Übergabe der Mail an qsheff, bei dem die Spam-Headerprüfung aktiviert ist und dessen qsheff.rules um den Eintrag

h:(X-Spam-Status: Yes)

erweitert worden ist.

Dies hat gegenüber dem Weglassen des Parameters "-E" den Vorteil, dass auch die durch SA erkannten Spams durch qsheff geloggt werden.

Die Lösung erlaubt damit den frühen Einsatz von SA für ausgewählte Domains.

Kommentare und Verbesserungen sind gerne gesehen.

Kommentar von Gerd (2008-03-13 23:18:37):
Danke erstmal für das tiptop Howto!

Hab eine Frage: Wenn ich die Spamassassin-Datei local.cf bearbeite, muss ich danach natürlich spamd stets neustarten (/etc/init.d/spamd restart). Allerdings werden danach die E-Mails nicht mehr von spamd gescannt - keine X-Spam-Tags mehr... Der qsheff-Tag "X-Mail-Scanner: Scanned by qSheff..." ist allerdings vorhanden.

Ich habe es auch schon versucht danach qmail (/etc/init.d/qmail restart) neu zu starten - ohne Erfolg!

Bei einem Neustart des Servers klappts!

Was mache ich falsch???

Kommentar von stinger (2009-10-03 22:44:13):
Hat irgend Jemand das schon mal mit Suse 11 und Plesk 9.2.2 zum laufen gebracht?
Versuche es jetzt schon seit 2 Tagen...

Hier kome ich einfach nicht weiter:

#zweiter Installlationsschritt
/usr/local/etc/qsheff/install-wrapper.sh
#Spamassassin in die qmail-queue einbinden:
rm -f /var/qmail/bin/qmail-queue
echo '#!/bin/sh' >/var/qmail/bin/qmail-queue
echo '/usr/bin/spamc | /var/qmail/bin/qmail-qsheff' >>/var/qmail/bin/qmail-queue
chmod 4755 /var/qmail/bin/qmail-queue

Kommentar von Stefan (2009-11-16 22:27:17):
Wie sieht es denn mit Postfix aus?

Stefan

Kommentar von huschi (2009-11-16 22:43:08):
@Stefan:
a) Dies ist KEINE Diskussionsplattform!
b) Das Q in Qsheff steht ohne Zweifel für Qmail. Also ist diese Frage absolut hinfällig. :(
c) In Postfix gibt es andere Wege und Möglichkeiten.

huschi.

Kommentar von hitd (2010-03-04 16:17:50):
Die verwendete qsheff-version ist ziemlich alt.

Aktuell ist qsheff-II-2.1-r3, auch wenn ich meine eigene gepatchte Version benutze (diff habe ich Baris Simsek eingesandt), die einige wenige Zusatzmöglichkeiten hat.

Unter Plesk 9.3 muß man am besten nach den queue-hooks (also qmail-queue.moved wird qmail-queue.orig und qsheff wird qmail-queue.moved) einbinden oder benötigt einige Änderungen, weil sonst im Log die Greylistings als QUEUE auftauchen, wenn auch mit existcode=61 erkennbar.

Kommentar von afWQKjpWxROq (2015-11-27 15:15:01):
The above solution is only for a cpoule of purposes, testing sites that have not had there DNS pointed to the server or as a holding page for sites that have not been configured in plesk yet but have the DNS pointing to the server.Any site that has an SSL must always been on its on unique IP address.

Kommentar von 0sO8Ks1MWEcz (2015-11-27 16:52:41):
Be aware that this may have an effect on your SSL cecaifirttes My domain started using a default self-signed one instead of the proper one, and I had to get the hosting company to sort it out for me.