Plesk Grey List
Greylisting is an alternative to the psa-spamassassin method for dealing with spam/UCE. These instructions work with Plesk 7.54 and 8.x, however there is no guarantee that this setup will keep active post updates to Plesk.
Obtain the sourceswget http://carbonblock.net/files/qmail-...greylist.tar.gzThe source contains patches by SW Soft, please do not distribute.
tar xvfz qmail-1.03-psa-greylist.tar.gz cd qmail-1.03
Edit local_scan.c and change values as appropriate.
#define MYSQLHOST "localhost" #define MYSQLUSER "greylist" #define MYSQLPASS "rdePmee7" #define MYSQLDB "qmail" #define BLOCK_EXPIRE 2 /* minutes until email is accepted */ #define RECORD_EXPIRE 1480 /* minutes until record expires */ #define RECORD_EXPIRE_GOOD 36 /* days until record expires after accepting email */Setup MySQL
mysql -u admin -p`cat /etc/psa/.psa.shadow` mysql>CREATE DATABASE qmail; mysql>GRANT ALL ON qmail.* TO 'greylist'@'localhost' IDENTIFIED BY 'rdePmee7'; mysql>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;
Edit conf-ld and change it to:
cc -s -lsslNext
make /etc/init.d/qmail stop /etc/init.d/xinetd stop mkdir /home/user/ticket-#/BACKUP cp /var/qmail/bin/qmail-smtpd /home/user/ticket-#/BACKUP(this backups the base qmail binary, only do this on first install)
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-smtpdNext
/etc/init.d/qmail start /etc/init.d/xinetd start
Create a quick perl script to clean up the database and place in /etc/cron.daily named greylist.clean:
#!/usr/bin/perl
use strict;
use warnings;
use constant DBD => 'DBI:mysql:qmail:localhost:3306';
use constant DBUSER => 'greylist';
use constant DBPASS => 'rdePmee7';
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;
Rebuild Qmail Queue
Two methods for rebuilding the qmail queue.
First stop Qmail# /etc/init.d/qmail stopor
service qmail stop
# cd /var/qmail/queue # rm -rf info intd local mess remote todoCreate the necessary directories
# mkdir mess # for i in `seq 0 22`; do # mkdir mess/$i # done # cp -r mess info # cp -r mess intd # cp -r mess local # cp -r mess remote # cp -r mess todoassign nexessary attributes
# chmod -R 750 mess todo # chown -R qmailq:qmail mess todo # chmod -R 700 info intd local remote # chown -R qmailq:qmail intd # chown -R qmails:qmail info local remoteFinally start Qmail
# /etc/init.d/qmail startor
service qmail start
Here is the alternate method
http://kb.swsoft.com/en/252