Archiv für die Kategorie 'Plesk'

Mär 26 2008

Plesk: spamdyke POP-Before-SMTP qmail

Erstellt von Dominik unter Plesk

English version of this article

Neben dem hier geschilderten Problem mit SMTP-Auth in Verbindung mit spamdyke, haben mich heute einige User darauf hingewiesen dass POP-Before-SMTP seit Inbetriebnahme des qmail Spamfilters dessen Installation ich hier beschrieben habe, nicht mehr funktioniert.

Nach einigen Minuten intensiver Google Suche gab es zu diesem Thema keine Lösung, außer ein “geht nicht mehr und ist ohnehin schlecht”. Dies ist jedoch keine sinnvolle Lösung und mich und meine User und daher habe ich nachgeforscht wie sich dieses Problem einigermaßen zufriedenstellend lösen lässt.

Plesk (besser gesagt relaylock) speichert die IP Adressen welche POP-Before-SMTP Authentifiziert sein sollen in der Datenbank psa und der Tabelle smtp_poplocks ab.

Das nachfolgende Perl Script liest diese Tabelle aus und bildet daraus eine IP Liste, welche sich als ip-whitelist-file für spamdyke verwenden lässt.

Bei der Entscheidung zwischen Perl Daemon oder Cronjob Script, habe ich mich zum Cronjob entschlossen, da ich davon ausgehe dass es sehr selten ist dass ein User eine E-Mail >59 Sekunden nach dem POP Abruf versenden will und gleichzeitig vollkommen auf SMTP-Auth verzichtet.

Die Installation erfolgt folgendermaßen:

# Download und überprüfen des Scriptinhalts:
wget http://www.it-crowd.biz/wp-content/uploads/2008/03/spamdyke-pop-before-smtppl.txt
mv spamdyke-pop-before-smtppl.txt spamdyke-pop-before-smtp.pl
chmod 700 spamdyke-pop-before-smtp.pl
nano spamdyke-pop-before-smtp.pl
 
# Für Debian
apt-get install liblog-log4perl-perl
 
# Allgemein für jede andere Distribution
perl -MCPAN -e shell
install Log::Log4perl
 
# /etc/spamdyke.conf (oder allgemein die Konfiguration öffnen) und folgende Zeile einfügen
ip-whitelist-file=/var/qmail/spamdyke/pop-before-smtp
 
# Einrichten des Cronjobs mittels "crontab -e"
*       *       *       *       *       /pfad/zum/script/spamdyke-pop-before-smtp.pl

Das Script wird nun alle 60 Sekunden gestartet, liest die Datenbank aus, schreibt das Whitelist File (/var/qmail/spamdyke/pop-before-smtp) und somit ist POP-Before-SMTP wieder funktionstüchtig.

Das Programm generiert keine Ausgabe sondern logged alle Fehler in einer Datei namens /var/log/pop-before-smtp.log. Wer bei Fehlern zusätzlich eine E-Mail an root erhalten will (insofern der Cron Daemon ist dahingehend konfiguriert” muss nichts weiter tun als die Zeile
open STDERR, '>/dev/null'; auszukommentieren.

Download Link:
spamdyke-pop-before-smtp.pl

6 Kommentare bisher

Mär 25 2008

Plesk: spamdyke SMTP-AUTH und TLS

Erstellt von Dominik unter Plesk

Einer meiner anfänglichen Fehler bei der Konfiguration von spamdyke in Verbindung mit Plesk war dass SMTP-Auth und SMTP-AUTH mit TLS nicht mehr funktionierten.

Um SMTP-Auth zu aktivieren muss die Option “smtp-auth-command=” aktiviert und belegt sein. Für TLS benötigt spamdyke den lokalen Hostnamen der meist im File /var/qmail/control/me zu finden ist.

Eine fertige und für Plesk angepasste Konfiguration findet ihr unter diesem HowTo

Keine Kommentare bisher

Mär 25 2008

Plesk: qmail Anti Spam mittels spamdyke - HowTo

Erstellt von Dominik unter Plesk

Der vom Hause SWSoft standardmäßig ausgelieferte Mailserver qmail wurde zu einer Zeit entwickelt als Spam, Phishing, Malware und Mailbomben noch Fremdwörter waren.

Daher nimmt dieser fern ab der heutigen Mailserver Realität alle E-Mails entgegen die ihm über das Netzwerk vermittelt werden.

Der einzige Schutz der einem danach noch verbleibt ist die Textfilterung mittels spamassassin, was jedoch nicht ausreichend ist um einen Rund um Schutz herzustellen.

Um eine einigermaßen zufriedenstellende Lösung gegen Spam zu erhalten benötigen wir als Multiple Maßnahmen die dem Schrott aus dem Netzwerk den Kampf ansagen.

Die Aufstellung sieht nachdem man sich durch diesen Artikel durchgearbeitet hat wie folgt aus:

spamdyke: Netzwerkseitiger Spamfilter der während der SMTP Connection prüft und entscheidet.
spamassassin: Der alle E-Mails anhand Textbasierte Filterung überprüft bevor diese in die Postfächer gehen.

Das Tutorial basiert auf Plesk 8 und Debian sarge, lässt sich aber problemlos auf alle anderen Distributionen übertragen, da nur sehr wenige Pakete nachinstalliert werden müssen (wenn überhaupt)

1. Installation von spamdyke

apt-get install gcc openssl gzip libc6-dev make
cd /usr/src
wget http://www.spamdyke.org/releases/spamdyke-3.1.6.tgz
tar xfz spamdyke-3.1.6.tgz
cd spamdyke-3.1.6/spamdyke/
./configure && make && make install
cd ../utils/
./configure && make && make install

Nun wurde spamdyke aus den Sources kompiliert und nach /usr/local/bin kopiert.

2. Konfiguration von spamdyke

Öffnen der Konfigurationsdatei:

nano /etc/spamdyke.conf

In die Konfigurationsdateien werden alle zum Betrieb notwendigen Konfigurationsparameter eingefügt:

log-level=2
local-domains-file=/var/qmail/control/rcpthosts
max-recipients=5
idle-timeout-secs=60
graylist-dir=/var/qmail/spamdyke/greylist
graylist-min-secs=290
graylist-max-secs=1814400
greeting-delay-secs=5
check-dnsrbl=ix.dnsbl.manitu.net
check-dnsrbl=zen.spamhaus.org
check-dnsrbl=list.dsbl.org
check-dnsrbl=zombie.dnsbl.sorbs.net
check-dnsrbl=dul.dnsbl.sorbs.net
check-dnsrbl=bogons.cymru.com
reject-missing-sender-mx
reject-empty-rdns
reject-unresolvable-rdns
reject-ip-in-cc-rdns
tls-certificate-file=/var/qmail/control/servercert.pem
smtp-auth-command=/var/qmail/bin/smtp_auth /var/qmail/bin/true
smtp-auth-command=/var/qmail/bin/cmd5checkpw /var/qmail/bin/true
hostname-file=/var/qmail/control/me

Anlegen der Ordnerstrukturen:

mkdir /var/qmail/spamdyke
mkdir /var/qmail/spamdyke/greylist

Wer Greylisting in Verbindung mit spamdyke haben möchte muss den Namen der Domain für die Greylisting aktiviert sein soll als Ordner im Greylisting Verzeichnis anlegen.

Beispiel:

mkdir /var/qmail/spamdyke/greylist/meinedomain.tld
chmod 777 /var/qmail/spamdyke/greylist/meinedomain.tld

Wer Greylisting für alle Plesk Domains aktivieren möchte kann dies mit folgender Zeile tun:

for i in  `cat /var/qmail/control/rcpthosts`; do mkdir /var/qmail/spamdyke/greylist/"$i"; done
chmod 777 /var/qmail/spamdyke/greylist/* -R

3. Einbinden von spamdyke in das Plesk Setup

Wer inetd verwendet editiert die Konfigurationsdatei /etc/inetd.conf bei den Zeilen “smtp” und “smtpd”. Diese dürfen jeweils nur 1 Zeile haben, was hier im Blog nicht funktioniert da es den Rahmen sprengt!!

Zeile 1.
smtp stream tcp nowait.1000 root /var/qmail/bin/tcp-env tcp-env  /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
 
Zeile 2.
smtps stream tcp nowait.1000 root /var/qmail/bin/tcp-env tcp-env  /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 xinetd verwendet muss im selben Server in der Section “server_args” von xinetd dessen Konfigurationsdateien ändern. Diese sind /etc/xinetd.d/smtp_psa und /etc/xinetd.d/smtps_psa

Danach müssen inetd oder xinetd neugestartet werden

/etc/init.d/inetd restart
/etc/init.d/xinetd restart

Nun sollte sich der Einsatz von spamdyke in den Maillogs sofort bemerkbar machen und der eingehende Spam trastisch sinken.

Das ganze lässt sich schön in den Maillogs die meist unter /var/log/mail.info zu finden sind sehen.
Jede von spamdyke abgewiesene E-Mail wird dort protokolliert und die Gründe genannt.

Wer POP-Before-SMTP weiterhin nutzen möchte folgt diesem Link zum zwingend notwendigen HowTo.

Wer mehr über dieses wunderschöne Tool wissen möchte, besucht am besten die offizielle Webseite unter: http://www.spamdyke.org

6 Kommentare bisher

Zurück »