Bookmark me...

Flattr

 

Beliebtester Download

Jun.16
DynDNS Control Panel
337

Login



Spamdyke with MySQL-logging
There are no translations available.

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

Synatix GmbH

Donate? Donate!

I'm developing the addons in my free time. Anyone is welcome to support me and the addons.

Who is online

We have 60 guests online