logo_header

icon_register icon_logout

icon_bubbles Forum

icon_bubbles Wiki

icon_bubbles Blogs

icon_bubbles Planet

RootForum Community » Forum

Mini-HOWTO: Spam-Abwehr für Plesk und qmail mit spamdyke

Mini-HOWTO: Spam-Abwehr für Plesk und qmail mit spamdyke

Postby Roger Wilco » 2007-11-18 19:06

EDIT: Der Beitrag wurde ins Wiki portiert und kann unter http://www.rootforum.org/wiki/Spam-Abwehr_für_Plesk_und_qmail_mit_spamdyke_(de) gefunden werden. Änderungen erfolgen nur noch im Wiki.

Disclaimer: Übliches Blabla. Ihr seid selbst für eure Systeme verantwortlich. Ich übernehme keine Garantie, dass das untenbeschriebene Vorgehen funktioniert und euer System nicht zerstört. Falls das passiert: Pech gehabt.

EDIT: Update für spamdyke 4.xx

Die Anleitung steht unter einer Creative Commons-Lizenz: Image

http://www.spamdyke.org/ wrote:spamdyke is a filter for monitoring and intercepting SMTP connections between a remote host and a qmail server. Spam is blocked while the remote server (spammer) is still connected; no additional processing or storage is needed.

Im Gegensatz zu anderen Lösungen ist spamdyke nicht-invasiv, d. h. qmail-smtpd muss beim Einsatz von spamdyke nicht gepatched und neu kompiliert werden. Das Setup sollte daher auch ein Update von Plesk und dem damit ausgelieferten qmail überleben.

Eine Featureübersicht von spamdyke gibt es unter http://www.spamdyke.org/.

Installation
Die Installation ist recht schnell erledigt: Einfach Quellcode herunterladen und kompilieren. Eventuell müssen noch der GCC und die Entwicklerpakete von OpenSSL (für TLS-Support in spamdyke) nachinstalliert werden.

Zunächst wird der Quellcode von spamdyke von der Homepage heruntergeladen, nach /usr/src gespeichert und dort entpackt. Eine vorige Prüfung, ob vielleicht eine aktuellere Version veröffentlicht wurde, schadet dabei nicht.
Code: Select all
cd /usr/src
wget http://www.spamdyke.org/releases/spamdyke-4.0.10.tgz
tar -xzf spamdyke-4.0.10.tgz


Je nach Distribution müssen ggf. noch die notwendigen Entwicklerpakete (Compiler, make usw.) installiert werden.
Code: Select all
# OpenSuSE Linux
yast -i gcc openssl-devel
# Debian oder Ubuntu Linux
aptitude install gcc libssl-dev
# Fedora, RHEL oder CentOS
yum install gcc openssl-devel


Danach kann spamdyke kompiliert und nach /usr/local/bin installiert werden.
Code: Select all
cd /usr/src/spamdyke-4.0.10/spamdyke
./configure && make
make install


Optional können auch noch einige Hilfsprogramme installiert werden. Diese sind für das Funktionieren von spamdyke aber nicht notwendig.
Code: Select all
cd /usr/src/spamdyke-4.0.10/utils
./configure && make
cp dnsa dnsany dnsany_libc dnsmx dnsns dnsptr dnssoa dnstxt domain2path domainsplit /usr/local/bin


Konfiguration
Zunächst wird spamdyke nun mit einer sinnvollen Konfiguration versorgt. Dazu wird eine Datei namens /etc/spamdyke.conf mit folgendem Inhalt angelegt:
Code: Select all
local-domains-file=/var/qmail/control/rcpthosts
tls-certificate-file=/var/qmail/control/servercert.pem

smtp-auth-command=/var/qmail/bin/smtp_auth /var/qmail/bin/true /var/qmail/bin/cmd5checkpw /bin/true
smtp-auth-level=ondemand-encrypted

graylist-level=always-create-dir
graylist-dir=/var/qmail/spamdyke/greylist
graylist-min-secs=300
graylist-max-secs=1814400

sender-blacklist-file=/var/qmail/spamdyke/blacklist_senders
recipient-blacklist-file=/var/qmail/spamdyke/blacklist_recipients
ip-in-rdns-keyword-blacklist-file=/var/qmail/spamdyke/blacklist_keywords
ip-blacklist-file=/var/qmail/spamdyke/blacklist_ip
rdns-whitelist-file=/var/qmail/spamdyke/whitelist_rdns
ip-whitelist-file=/var/qmail/spamdyke/whitelist_ip
greeting-delay-secs=5

dns-blacklist-entry=ix.dnsbl.manitu.net
dns-blacklist-entry=zen.spamhaus.org
dns-blacklist-entry=list.dsbl.org
dns-blacklist-entry=zombie.dnsbl.sorbs.net
dns-blacklist-entry=dul.dnsbl.sorbs.net
dns-blacklist-entry=bogons.cymru.com

reject-missing-sender-mx
reject-empty-rdns
reject-unresolvable-rdns
reject-ip-in-cc-rdns


Zusätzlich müssen einige Verzeichnisse und Dateien angelegt werden, auf die spamdyke zurückgreift.
Code: Select all
mkdir -p /var/qmail/spamdyke/greylist
touch /var/qmail/spamdyke/blacklist_ip /var/qmail/spamdyke/blacklist_recipients
      /var/qmail/spamdyke/whitelist_ip /var/qmail/spamdyke/blacklist_keywords
      /var/qmail/spamdyke/blacklist_senders /var/qmail/spamdyke/whitelist_rdns
chown -R qmaild:qmail /var/qmail/spamdyke


Im letzten Schritt muss die Einbindung von qmail über den xinetd bearbeitet werden, so dass spamdyke vor qmail-smtpd ausgeführt wird. Dazu werden die Dateien /etc/xinetd.d/smtp_psa und /etc/xinetd.d/smtps_psa bearbeitet:

Code: Select all
# /etc/xinetd.d/smtp_psa
service smtp
{
        socket_type     = stream
        protocol        = tcp
        wait            = no
        disable         = no
        user            = root
        instances       = UNLIMITED
        env             =  SMTPAUTH=1  POPLOCK_TIME=20
        server          = /var/qmail/bin/tcp-env
        server_args     = -Rt0 /var/qmail/bin/relaylock /usr/local/bin/spamdyke -f /etc/spamdyke.conf /var/qmail/bin/qmail-smtpd /var/qmail/bin/smtp_auth /var/qmail/bin/true /var/qmail/bin/cmd5checkpw /var/qmail/bin/true
}


Code: Select all
# /etc/xinetd.d/smtps_psa
service smtps
{
        socket_type     = stream
        protocol        = tcp
        wait            = no
        disable         = no
        user            = root
        instances       = UNLIMITED
        env             =  SMTPAUTH=1  POPLOCK_TIME=20
        server          = /var/qmail/bin/tcp-env
        server_args     = -Rt0 /var/qmail/bin/relaylock /usr/local/bin/spamdyke -f /etc/spamdyke.conf /var/qmail/bin/qmail-smtpd /var/qmail/bin/smtp_auth /var/qmail/bin/true /var/qmail/bin/cmd5checkpw /var/qmail/bin/true
}


Nach der Änderung muss der xinetd mit dem Kommando `/etc/init.d/xinetd restart` neugestartet werden. Weitere Schritte sind nicht notwendig.

Vor der Inbetriebnahme sollte aber auf jeden Fall überprüft werden, ob die in der Konfigurationsdatei /etc/spamdyke.conf vorgenommenen Einträge für den jeweiligen Server sinnvoll sind. Insbesondere die eingetragenen DNSBL sollten überprüft werden. Wenn deren Nutzung nicht gewünscht ist, müssen die entsprechenden Einträge entfernt oder auskommentiert werden.

Wartung des Datenbestands (Greylisting)
spamdyke verwaltet die Einträge für das Greylisting nicht selbst. Aufräumarbeiten müssen also periodisch durch einen Cronjob erledigt werden.
Dazu wird ein Skript namens /etc/cron.daily/spamdyke.sh erstellt, welches diese Aufgabe erledigt.

Code: Select all
#!/bin/sh

# Löschen von leeren Einträgen, die älter als 1 Woche sind.
/usr/bin/find /var/qmail/spamdyke/greylist/ -type f -mmin +10080 -size 0 -delete

# Löschen veralteter Datensätze. Der Wert sollte mit dem von graylist-max-secs (in unserer Konfiguration 1814400 Sekunden = 30240 Minuten = 3 Wochen) übereinstimmen.
/usr/bin/find /var/qmail/spamdyke/greylist/ -type f -mmin +30240 -delete


Das Skript muss dann noch ausführbar gemacht werden. Das geschieht mit dem Kommando `chmod +x /etc/cron.daily/spamdyke.sh`

Weiterführende Informationen
http://www.spamdyke.org/documentation/README.html
http://www.spamdyke.org/documentation/FAQ.html

Hinweis in eigener Sache
Speziell an http://www.plesk-forum.de/viewtopic.php?t=613: Das nächste mal bitte auch die Fehler aus der "geliehenen" Anleitung bzw. Konfigurationsdatei entfernen. Danke.
Roger Wilco
Administrator
Administrator
 
Posts: 5787
Joined: 2004-05-23 12:53

Re: Mini-HOWTO: Spam-Abwehr für Plesk und qmail mit spamdyke

Postby diiron » 2008-09-25 09:54

Hallo, und erstmal Danke für das nette und gut geschriebene How-To...

Es wäre schön, wenn Du mir auch mit über die inetd.conf weiter helfen könntest....

Herzlichen Dank schon mal im Voraus
diiron
 

Re: Mini-HOWTO: Spam-Abwehr für Plesk und qmail mit spamdyke

Postby Roger Wilco » 2008-09-25 20:11

Das nächste mal poste bitte direkt deine Konfiguration im Beitrag. Von einer PN haben andere Besucher nicht viel...

Folgende Einträge in der inetd.conf sollten funktionieren:
Code: Select all
smtp stream tcp nowait.1000 root /var/qmail/bin/tcp-env tcp-env /usr/bin/env  SMTPAUTH=1  POPLOCK_TIME=20  END=1 /var/qmail/bin/relaylock /usr/local/bin/spamdyke -f /etc/spamdyke.conf /var/qmail/bin/qmail-smtpd /var/qmail/bin/smtp_auth /var/qmail/bin/true /var/qmail/bin/cmd5checkpw /var/qmail/bin/true
smtps stream tcp nowait.1000 root /var/qmail/bin/tcp-env tcp-env /usr/bin/env  SMTPAUTH=1  POPLOCK_TIME=20  END=1 /var/qmail/bin/relaylock /var/qmail/bin/qmail-smtpd /var/qmail/bin/smtp_auth /var/qmail/bin/true /var/qmail/bin/cmd5checkpw /var/qmail/bin/true

Wichtig ist dabei, dass die Einträge für smtp und smtps in jeweils einer einzigen Zeile stehen.
Roger Wilco
Administrator
Administrator
 
Posts: 5787
Joined: 2004-05-23 12:53

Re: Mini-HOWTO: Spam-Abwehr für Plesk und qmail mit spamdyke

Postby matzewe01 » 2008-10-10 08:05

Roger Wilco wrote:
Code: Select all
# /etc/xinetd.d/smtp_psa
service smtp
{
        socket_type     = stream
        protocol        = tcp
        wait            = no
        disable         = no
        user            = root
        instances       = UNLIMITED
        env             =  SMTPAUTH=1  POPLOCK_TIME=20
        server          = /var/qmail/bin/tcp-env
        server_args     = -Rt0 /var/qmail/bin/relaylock /usr/local/bin/spamdyke -f /etc/spamdyke.conf /var/qmail/bin/qmail-smtpd /var/qmail/bin/smtp_auth /var/qmail/bin/true /var/qmail/bin/cmd5checkpw /var/qmail/bin/true
}


Code: Select all
# /etc/xinetd.d/smtps_psa
service smtps
{
        socket_type     = stream
        protocol        = tcp
        wait            = no
        disable         = no
        user            = root
        instances       = UNLIMITED
        env             =  SMTPAUTH=1  POPLOCK_TIME=20
        server          = /var/qmail/bin/tcp-env
        server_args     = -Rt0 /var/qmail/bin/relaylock /usr/local/bin/spamdyke -f /etc/spamdyke.conf /var/qmail/bin/qmail-smtpd /var/qmail/bin/smtp_auth /var/qmail/bin/true /var/qmail/bin/cmd5checkpw /var/qmail/bin/true
}



Wer shortnames und auch eine smtp authentifizierung nutzt, muss unbedingt den Eintrag :
Code: Select all
   env             =  SMTPAUTH=1   SHORTNAMES=1

setzen. Am besten Ihr prüft anhand des alten Scriptes, welche Parameter gesetzt sind / wurden.
matzewe01
Moderator
Moderator
 
Posts: 3570
Joined: 2005-07-04 13:16

Re: Mini-HOWTO: Spam-Abwehr für Plesk und qmail mit spamdyke

Postby matzewe01 » 2008-10-10 10:42

Nachtrag:

Nachdem spamdyke ganz offensichtlich rund 90% aller spammails schon vor dem spamassasin eliminiert, ist mein System herlich ausgeruht. zudem kommen nun auch die Mails nicht mehr durch, die vorher durch spamasassin nicht gefiltert wurden.

Also auch von mir, ein grosses Dankeschön.
Wer so wie ich etwas skeptisch ist, und erstmal prüfen möchte, was denn da genau belockt wird,
Folgende Einträge in die /etc/syslog-ng/syslog-ng.conf

Code: Select all
filter f_spamdyke   { level(info) and facility(mail) and match("spamdyke"); };
destination spamdyke { file("/var/log/spamdyke.log"); };
log { source(src); filter(f_spamdyke); destination(spamdyke); };


in der /etc/spamdyke.conf muss lediglich:
Code: Select all
log-level=INFO


eingefügt werden.
Syslog neu starten und es werden die geblockten Mails in /var/log/spamdyke.log protokolliert.


Viele Grüsse Matthias
matzewe01
Moderator
Moderator
 
Posts: 3570
Joined: 2005-07-04 13:16

Re: Mini-HOWTO: Spam-Abwehr für Plesk und qmail mit spamdyke

Postby Roger Wilco » 2008-10-10 18:57

matzewe01 wrote:Wer shortnames und auch eine smtp authentifizierung nutzt, muss unbedingt den Eintrag :
Code: Select all
   env             =  SMTPAUTH=1   SHORTNAMES=1

setzen.

Den SMTPAUTH Teil habe ich in der Beispielkonfiguration ja schon stehen und SHORTNAMES könnte man sich wegen http://www.securityfocus.com/bid/30956 nochmal überlegen (auch wenn das mMn. keine wirklich relevante Lücke ist).

Die (x)inetd.conf wird übrigens von Plesk bei einem Update oder einer Änderung der MTA-Konfiguration über das Webinterface überschrieben - spamdyke muss man dann also erneut in die (x)inetd.conf packen.

Ich persönlich finde inzwischen auch diesen Ansatz interessanter als spamdyke, aber damit stehe ich wohl alleine da, vor allem nachdem Plesk 9 Postfix als MTA unterstützen wird. ;)

Wenn dir spamdyke gefällt: Im ServerSupportForum hat sich eine kleine Community um spamdyke und das SpamDyke Control Panel von haggybear gebildet. Damit gibts dann auch Klickibunti-Statistiken. ;)
Roger Wilco
Administrator
Administrator
 
Posts: 5787
Joined: 2004-05-23 12:53

Re: Mini-HOWTO: Spam-Abwehr für Plesk und qmail mit spamdyke

Postby matzewe01 » 2008-10-10 19:18

Ja, das Plugin habe ich schon gesehen.
Ich bin da aber eher konservativ und versuche möglichst wenig in bestehende System ein zu bauen.
Spätestens bei einem Switch von Host A nach Host B merkt man, an was für Abhängigkeiten man mal wieder nicht gedacht hat.

Ich fiebre einer Version 9 mit Postfix extrem entgegen. Das wäre mal wieder eine sehr vernünftige Änderung.

->Kein Freund von qmail nur leidiger Anwender.
Gruss Matthias
matzewe01
Moderator
Moderator
 
Posts: 3570
Joined: 2005-07-04 13:16

Re: Mini-HOWTO: Spam-Abwehr für Plesk und qmail mit spamdyke

Postby lilalaunebaer » 2008-10-28 12:38

hey leute!

vielen dank für das tollew how-to, spamdyke surrt auf meinem server ohne probs!
es hat länger gedauert erstmal gcc und make nachzuinstallieren auf der 1und1-maschine .. :-)
:!:
lilalaunebaer
 
Posts: 8
Joined: 2008-04-30 16:57

Re: Mini-HOWTO: Spam-Abwehr für Plesk und qmail mit spamdyke

Postby meddie » 2009-01-07 09:43

Habe bei mir auch Spamdyke installiert. Und finde es super. Mir ist aber aufgefallen daß die Emails über 30 Minuten brauchen bis sie vom Spamdyke durchgelassen werden. Zum teil brauchen die auch mehrere Stunden. Kann das jemand bestätigen oder habe ich etwas falsch konfiguriert?
Danke im Voraus
Gruß Eddie
meddie
 
Posts: 9
Joined: 2006-06-06 22:55

Re: Mini-HOWTO: Spam-Abwehr für Plesk und qmail mit spamdyke

Postby matzewe01 » 2009-01-07 10:36

Kann ich nicht bestätigen. Sprichst Du ggf. von greylisted mails?

Die Logausgabe wäre ggf. sehr hilfreich um das enauer zu analysieren.bei ggf. gegreylistete Absender kommt es auf dessen Mailserver an, wann er das ganze wiederholt.
matzewe01
Moderator
Moderator
 
Posts: 3570
Joined: 2005-07-04 13:16

Re: Mini-HOWTO: Spam-Abwehr für Plesk und qmail mit spamdyke

Postby blacktiger » 2009-01-22 16:58

Bei dem Aufruf des Löschscriptes bekomme ich folgende Meldung:

Code: Select all
# /usr/bin/file /var/qmail/spamdyke/greylist/ -type f -mmin +10080 -size 0 -delete
/usr/bin/file: invalid option -- t
/usr/bin/file: invalid option -- y
/usr/bin/file: invalid option -- e
/usr/bin/file: invalid option -- e
/usr/bin/file: invalid option -- e
/usr/bin/file: invalid option -- l
/usr/bin/file: invalid option -- e
/usr/bin/file: invalid option -- t
/usr/bin/file: invalid option -- e
Usage: file [-bcikLhnNsvz] [-f namefile] [-F separator] [-m magicfiles] file...
       file -C -m magicfiles
Try `file --help' for more information.


Code: Select all
# file --version
file-4.16
magic file from /etc/magic:/usr/share/misc/magic


Was muss ich denn ändern?
blacktiger
 
Posts: 239
Joined: 2003-01-15 18:02
Location: Neustadt a.d.W.

Re: Mini-HOWTO: Spam-Abwehr für Plesk und qmail mit spamdyke

Postby Roger Wilco » 2009-01-22 17:25

Blacktiger wrote:Bei dem Aufruf des Löschscriptes bekomme ich folgende Meldung:

Autsch, das liegt z. B. daran, dass da eigentlich /usr/bin/find und nicht /usr/bin/file stehen sollte. #-o
Ich habe es mal geändert. Danke für den Hinweis.
Roger Wilco
Administrator
Administrator
 
Posts: 5787
Joined: 2004-05-23 12:53

Re: Mini-HOWTO: Spam-Abwehr für Plesk und qmail mit spamdyke

Postby meddie » 2009-02-12 14:53

Hallo Leute, ich hatte vor einiger Zeit gefragt ob bei Euch auch die Mails so lange brauchen.

meddie wrote:Habe bei mir auch Spamdyke installiert. Und finde es super. Mir ist aber aufgefallen daß die Emails über 30 Minuten brauchen bis sie vom Spamdyke durchgelassen werden. Zum teil brauchen die auch mehrere Stunden. Kann das jemand bestätigen oder habe ich etwas falsch konfiguriert?
Danke im Voraus
Gruß Eddie


Da hat matzewe01 geschrieben:
matzewe01 wrote:Kann ich nicht bestätigen. Sprichst Du ggf. von greylisted mails?
Die Logausgabe wäre ggf. sehr hilfreich um das enauer zu analysieren.bei ggf. gegreylistete Absender kommt es auf dessen Mailserver an, wann er das ganze wiederholt.


Sorry hat etwas gedauert aber jetzt möchte ich es wieder angreifen:
Hier ist der Auszug aus der mail.info:
Feb 12 13:40:29 h1334933 spamdyke[7974]: DENIED_GRAYLISTED from: xxx@xxxxxxxxxx.xx to: xxxxx@xxxxxxxx.xx origin_ip: xx.xx.xx.xx origin_rdns: mania.gullisys.net auth: (unknown)

Was kann das bedeutetn greylisted

gruß Eddie
meddie
 
Posts: 9
Joined: 2006-06-06 22:55

Re: Mini-HOWTO: Spam-Abwehr für Plesk und qmail mit spamdyke

Postby matzewe01 » 2009-02-12 15:04

meddie wrote:Was kann das bedeutetn greylisted

gruß Eddie


Das die email erstmal als gegreylistet was soviel bedeutet, dass die Email in erster Instanz abgelehnt wurde.
Die Gründe fürs Greylisten weiss ich jetzt auch nicht auswendig wird sich aber bestimmt auf der Webseite von spamdyle erfahren lassen.
Beim Greylisten muss es der verantwortliche Mailserver nochmals versuchen, was dann zeitversetzt läuft.

Solche hosts kannst Du in die whitlist_dns eintragen und es sollte zukünftig fix gehen.

Ein bekannter Fall ist z.B. wenn Eine Webhoster mehrere Mailserver betreibt diese jedoch nicht alle als MX der versendeten Host eingetragen sind.

Passiert bei mir Reglmässig, dass xxx.de über den anderen die Zustellung nochmals versuchen.
matzewe01
Moderator
Moderator
 
Posts: 3570
Joined: 2005-07-04 13:16


Return to QMail

Who is online

Users browsing this forum: No registered users and 0 guests