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

Roger Wilco
Administrator
Administrator
Posts: 6001
Joined: 2004-05-23 12:53

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

Post by Roger Wilco »

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.
Top

Anonymous

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

Post by Anonymous »

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
Top

Roger Wilco
Administrator
Administrator
Posts: 6001
Joined: 2004-05-23 12:53

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

Post by Roger Wilco »

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.
Top

Roger Wilco
Administrator
Administrator
Posts: 6001
Joined: 2004-05-23 12:53

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

Post by Roger Wilco »

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. ;)
Top

lilalaunebaer
Posts: 8
Joined: 2008-04-30 16:57

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

Post by lilalaunebaer »

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 .. :-)
:!:
Top

meddie
Posts: 9
Joined: 2006-06-06 22:55

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

Post by meddie »

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
Top

blacktiger
Posts: 239
Joined: 2003-01-15 17:02
Location: Neustadt a.d.W.

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

Post by blacktiger »

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?
Top

Roger Wilco
Administrator
Administrator
Posts: 6001
Joined: 2004-05-23 12:53

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

Post by Roger Wilco »

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.
Top

meddie
Posts: 9
Joined: 2006-06-06 22:55

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

Post by meddie »

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
Top