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; |