[GREGEL DOT COM]

Ich wunder mich seit ein paar Tagen, dass meine Postfaecher wieder massiv mit Spam geflutet werden O_o

Heute habe ich mir mal die Zeit genommen, die Emails und vor allem meinen Server zu analysieren!
Und siehe da, nach einem Update der qmail-binaries, funktionierte mein Greylisting nicht mehr!

Also mal schnell die entsprechenden Patchs wieder eingespielt, zum Glueck ist das vorzuegliche Tutorial von Brent Meshier immer noch online!

Fuer den Fall, dass es irgendwann mal verschwindet, zitiere ich nachstehend mal das wesentliche

Download qmail-1.03-greylist-psa8.tar.gz

tar xvfz qmail-1.03-psa-greylist.tar.gz cd qmail-1.03
vi local_scan.c

#define MYSQLHOST "localhost"
#define MYSQLUSER "greylist"
#define MYSQLPASS "password"
#define MYSQLDB "qmail"
#define BLOCK_EXPIRE 4 /* minutes until email is accepted */
#define RECORD_EXPIRE 1500 /* minutes until record expires */
#define RECORD_EXPIRE_GOOD 36 /* days until record expires after accepting email */

Configure MySQL database

mysql -u root -p

CREATE DATABASE qmail;
GRANT ALL ON qmail.* TO 'greylisting'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;

--
-- Table structure for table `relaytofrom`
--

CREATE TABLE relaytofrom (
id bigint(20) NOT NULL auto_increment,
relay_ip varchar(16) default NULL,
mail_from varchar(255) default NULL,
rcpt_to varchar(255) default NULL,
block_expires datetime NOT NULL default '0000-00-00 00:00:00',
record_expires datetime NOT NULL default '0000-00-00 00:00:00',
blocked_count bigint(20) NOT NULL default '0',
passed_count bigint(20) NOT NULL default '0',
aborted_count bigint(20) NOT NULL default '0',
origin_type enum('MANUAL','AUTO') NOT NULL default 'MANUAL',
create_time datetime NOT NULL default '0000-00-00 00:00:00',
last_update timestamp(14) NOT NULL,
PRIMARY KEY (id),
KEY relay_ip (relay_ip),
KEY mail_from (mail_from(20)),
KEY rcpt_to (rcpt_to(20))
) TYPE=MyISAM;

make

/etc/rc.d/init.d/qmail stop

cp qmail-envelope-scanner /var/qmail/bin/.
cp -f qmail-smtpd /var/qmail/bin/.
chown root.qmail /var/qmail/bin/qmail-envelope-scanner
chown root.qmail /var/qmail/bin/qmail-smtpd

/etc/rc.d/init.d/qmail start

Create a PERL script to clean up the database and place in /etc/cron.daily

#!/usr/bin/perl
use strict;
use warnings;

use constant DBD => 'DBI:mysql:qmail:localhost:3306';
use constant DBUSER => 'milter';
use constant DBPASS => 'greylist';

use DBI;

system ("cat /dev/null > /tmp/greylist_dbg.txt");

my $dbh = DBI->connect(DBD,DBUSER,DBPASS) or die "can't connect to db ", $DBI::errstr, ":$!";

$dbh->do("DELETE FROM relaytofrom WHERE record_expires < NOW() - INTERVAL 1 HOUR AND origin_type = 'AUTO'");
$dbh->do("OPTIMIZE TABLE relaytofrom");

$dbh->disconnect;

exit;

Die oben genannten Sourcen gibt es in meinem Download-Bereich

Fan werden!
Nur ein Klick und Du kannst dem Blog auf Facebook und Google+ folgen!

Noch kein Kommentar zum Artikel

...deshalb würde ich mich um so mehr über Dein Feedback freuen!

Los geht's, jetzt Dein Kommentar...

Hinweis: SEO-Kommentare landen im Spamordner. Bitte beachte die Datenschutzerklärung vor dem Absenden deines Kommentars - denn durch das Senden akzeptierst du sie. Keine Sorge, dort steht nur das, was der Gesetzgeber im 21. Jahrhundert verlangt. Ich bin einer der Guten.