Bookmark me...

Flattr

 

Beliebtester Download

Jun.16
DynDNS Control Panel
346

Anmeldung



Spamdyke mit MySQL-Logging
Das Orginal HowTo stammt von huschi.net. Da dieses ziemlich gut ist, habe ich hier nur leicht
abgewandelt übernommen. Danke dafür an Huschi!!

------------

Spamdyke funktioniert recht gut, hat aber einen Nachteil: Es schreibt seine Meldungen
ausschließlich ins Maillog. Wer also eine Auswertung erstellen will, muß das Maillog umständlich
durchsuchen. Daher habe ich mich entschlossen, Spamdyke um ein Logging in eine
MySQL-Datenbank zu erweitern.

Im Folgenden ist die Installation von Spamdyke mit MySQL-Logging beschrieben:

Vorbereitung

Als erstes richten wir die Datenbank und einen Datenbank-User ein:

CREATE DATABASE spamdyke;
CREATE TABLE `spamdyke_log_table` (
`id` bigint(7) NOT NULL auto_increment,
`time` timestamp NOT NULL default CURRENT_TIMESTAMP,
`reason` varchar(20) character set utf8 NOT NULL,
`from` varchar(50) character set utf8 NOT NULL,
`to` varchar(50) character set utf8 NOT NULL,
`ip` varchar(15) character set utf8 NOT NULL,
`rdns` varchar(50) character set utf8 NOT NULL,
`auth` varchar(25) character set utf8 NOT NULL,
PRIMARY KEY (`id`),
KEY `time` (`time`),
KEY `reason` (`reason`,`from`,`to`,`ip`,`rdns`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
GRANT ALL ON spamdyke.* TO 'spamdyke'@'localhost' IDENTIFIED BY 'spamdyke';

 

Nun brauchen wir noch einige Libaries und einen C-Compiler:

apt-get install gcc libmysqlclient15-dev libssl-dev

 

Download und Kompilieren

Aktuell ist es die Version 4.3.1:

cd /usr/local/src
wget http://www.haggybear.de/download/spamdyke-mysql.tgz
tar xzf spamdyke-mysql.tgz
cd spamdyke-mysql
cd spamdyke/
./configure

 

Hier achten wir bei der Ausgabe auf Fehlermeldungen die wir beheben, indem wir die
entsprechenden Devel-Pakete nach installieren. Für den MySQL-Support müssen folgende
Zeilen auftauchen:

checking for MySQL (for MySQL-Logging support)... yes
checking for MySQL includes (for MySQL-Logging support)...yes

 

Wenn alles vorhanden ist geht es weiter in unserem Dreisatz:

make
make install

 

Konfiguration

Folgende /etc/spamdyke.conf kann man als Ausgang für seine individuelle Konfiguration nutzten:

#für das Plesk-Addon von Haggybear:
log-level=info

local-domains-file=/var/qmail/control/rcpthosts
tls-certificate-file=/var/qmail/control/servercert.pem

#Copy&Paste from xinetd-conf
smtp-auth-command=/var/qmail/bin/smtp_auth /var/qmail/bin/true /var/qmail/bin/cmd5checkpw /bin/qmail/bin/true
smtp-auth-level=ondemand-encrypted

#wichtiger Timeout:
idle-timeout-secs=100
graylist-level=always-create-dir
graylist-dir=/var/qmail/spamdyke/greylist
#(300 Sek. = 5 Min.)
graylist-min-secs=300
#1814400 Sek. = 3 Wochen
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
sender-whitelist-file=/var/qmail/spamdyke/whitelist_senders
greeting-delay-secs=5

#ggf. ein-/auskommentieren:
dns-blacklist-entry=ix.dnsbl.manitu.net
#dns-blacklist-entry=sbl.spamhaus.org
#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

#MySQL-Logging:
config-mysql-database=spamdyke
config-mysql-username=spamdyke
config-mysql-password=spamdyke

 

Da auch meine Änderung von Spamdyke noch nicht vollends auf MySQL basiert, müssen folgende Dateien und Verzeichnisse
noch per Hand angelegt werden:

mkdir /var/qmail/spamdyke
mkdir /var/qmail/spamdyke/greylist
touch /var/qmail/spamdyke/blacklist_ip
touch /var/qmail/spamdyke/blacklist_recipients
touch /var/qmail/spamdyke/whitelist_ip
touch /var/qmail/spamdyke/whitelist_senders
touch /var/qmail/spamdyke/blacklist_keywords
touch /var/qmail/spamdyke/blacklist_senders
touch /var/qmail/spamdyke/whitelist_rdns
chown -R qmaild:qmail /var/qmail/spamdyke

 

Installation abschließen

ACHTUNG: der Plesk-Eigene RBL-Blocker (/usr/sbin/rblsmtpd) ist nicht mehr nötig!
Bei Einsatz von inetd kann es sogar zu Fehlern führen, da die Zeile dann zu lang wird.
Vorher also im Plesk abschalten unter [Server] -> [E-Mail] -> "Spamschutz auf Basis der
DNS-Blackhole-Listen aktivieren"

Nun binden wir Spamdyke in die SMTP-Verarbeitung ein.
Entweder in /etc/inetd.conf:

smtp stream tcp nowait.1000 root /var/qmail/bin/tcp-env tcp-env /usr/bin/env 
SMTPAUTH=1 SHORTNAMES=1 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

 

Oder in /etc/xinetd.d/smtp_psa (und smtps_psa):

service smtp {
...
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
}

 

Aufräumscript

Das Aufräumscript ist bereits dabei:

cp -p ./cron/spamdyke-mysql-cleanup /etc/cron.daily/.

 

Kurz im Editor öffnen und die Datenbank-Daten angeben.
Wichtig bei älteren Versionen: Wir schmeißen alle Kommentare mit // raus, da diese fehlerhaft sind.

use constant DBD => 'DBI:mysql:spamdyke:localhost:3306';
use constant DBUSER => 'spamdyke';
use constant DBPASS => 'spamdyke';

 

Wer keine tägliche Email erhalten möchte, schreibt zusätzlich ein exit; nach dem disconnect:

$dbh->disconnect;
exit;

my $rec = MAIL_RECIPIENT;
 


 

Unterstützt von

Spenden? Spenden!

Ich entwickle die Plesk Addons in meiner Freizeit und freue mich über jede Überstützung!

Wer ist online

Wir haben 26 Gäste online