Before you install SpamCheck you will need to ensure that a number of required packages are already installed and configured. Installation instructions for a number of common distributions will be provided below.
[epel] name=Extra Packages for Enterprise Linux 5 - $basearch #baseurl=http://download.fedoraproject.org/pub/epel/5/$basearch mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-5&arch=$basearch failovermethod=priority enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL [epel-debuginfo] name=Extra Packages for Enterprise Linux 5 - $basearch - Debug #baseurl=http://download.fedoraproject.org/pub/epel/5/$basearch/debug mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-debug-5&arch=$basearch failovermethod=priority enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL gpgcheck=1 [epel-source] name=Extra Packages for Enterprise Linux 5 - $basearch - Source #baseurl=http://download.fedoraproject.org/pub/epel/5/SRPMS mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-source-5&arch=$basearch failovermethod=priority enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL gpgcheck=1Install the signing key
rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm
yum install exim zlib-devel php-mysql php-pear-Mail php-pear-Mail-Mime gmp-devel php-pear-Image-Graph perl-Digest-SHA1 perl-Net-DNS perl-IO-Socket-SSL yum install perl-IO-Zlib mod_ssl system-switch-mail mysql-server php-readline
cpan install Mail::SPF install Mail::SPF::Query install IP::Country install CPAN::DistnameInfo install Encode::Detect quit
safe_mode = Onto
safe_mode = Off
wget http://prdownloads.sourceforge.net/razor/razor-agents-2.84.tar.bz2?download tar xjf razor-agents-2.84.tar.bz2 cd razor-agents-2.84 perl Makefile.PL make make install razor-admin -create razor-admin -register
wget http://mirror.public-internet.co.uk/ftp/apache/spamassassin/source/Mail-SpamAssassin-3.2.5.tar.gz tar xzf Mail-SpamAssassin-3.2.5.tar.gz cd Mail-SpamAssassin-3.2.5 perl Makefile.PL make install cd spamd cp redhat-rc-script.sh /etc/init.d/spamd chkconfig --add spamd
mysql
create database spamassassin;
use spamassassin;
CREATE TABLE bayes_expire (
id int(11) NOT NULL default '0',
runtime int(11) NOT NULL default '0',
KEY bayes_expire_idx1 (id)
) TYPE=MyISAM;
CREATE TABLE bayes_global_vars (
variable varchar(30) NOT NULL default '',
value varchar(200) NOT NULL default '',
PRIMARY KEY (variable)
) TYPE=MyISAM;
INSERT INTO bayes_global_vars VALUES ('VERSION','3');
CREATE TABLE bayes_seen (
id int(11) NOT NULL default '0',
msgid varchar(200) binary NOT NULL default '',
flag char(1) NOT NULL default '',
PRIMARY KEY (id,msgid)
) TYPE=MyISAM;
CREATE TABLE bayes_token (
id int(11) NOT NULL default '0',
token char(5) NOT NULL default '',
spam_count int(11) NOT NULL default '0',
ham_count int(11) NOT NULL default '0',
atime int(11) NOT NULL default '0',
PRIMARY KEY (id, token),
INDEX bayes_token_idx1 (token),
INDEX bayes_token_idx2 (id, atime)
) TYPE=MyISAM;
CREATE TABLE bayes_vars (
id int(11) NOT NULL AUTO_INCREMENT,
username varchar(200) NOT NULL default '',
spam_count int(11) NOT NULL default '0',
ham_count int(11) NOT NULL default '0',
token_count int(11) NOT NULL default '0',
last_expire int(11) NOT NULL default '0',
last_atime_delta int(11) NOT NULL default '0',
last_expire_reduce int(11) NOT NULL default '0',
oldest_token_age int(11) NOT NULL default '2147483647',
newest_token_age int(11) NOT NULL default '0',
PRIMARY KEY (id),
UNIQUE bayes_vars_idx1 (username)
) TYPE=MyISAM;
\q
SpamCheck uses exim as it's Mail Transfer Agent, so you will need to switch from the default sendmail to exim, using the system-switch-mail program.
system-switch-mail
spamcheck-0.6.11-installer.run
Edit /usr/local/etc/clamd.conf and change the line:
Exampleto
# Exampleand the line
#LocalSocket /tmp/clamd.socketto
LocalSocket /tmp/clamd.socket
and then repeat the first change for the /usr/local/etc/freshclam.conf file
Copy the following to /etc/init.d/clamd
#! /bin/bash
#
# crond Start/Stop the clam antivirus daemon.
#
# chkconfig: 2345 70 41
# description: clamd is a standard Linux/UNIX program that scans for Viruses.
# processname: clamd
# config: /usr/local/etc/clamd.conf
# pidfile: /var/lock/subsys/clamd
# Source function library.
. /etc/init.d/functions
RETVAL=0
# See how we were called.
prog="clamd"
progdir="/usr/local/sbin"
# Source configuration
if [ -f /etc/sysconfig/$prog ] ; then
. /etc/sysconfig/$prog
fi
start() {
echo -n $"Starting $prog: "
# Don't allow files larger than 20M to be created, to limit DoS
# Needs to be large enough to extract the signature files
ulimit -f 20000
LANG= daemon $progdir/$prog
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/clamd
return $RETVAL
}
stop() {
echo -n $"Stopping $prog: "
# Would be better to send QUIT first, then killproc if that fails
killproc $prog
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/clamd
return $RETVAL
}
rhstatus() {
status clamd
}
restart() {
stop
start
}
reload() {
echo -n $"Reloading clam daemon configuration: "
killproc clamd -HUP
retval=$?
echo
return $RETVAL
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
reload)
reload
;;
status)
rhstatus
;;
condrestart)
[ -f /var/lock/subsys/clamd ] && restart || :
;;
*)
echo $"Usage: $0 {start|stop|status|reload|restart|condrestart}"
exit 1
esac
exit $?
Now configure clamd to start automatically at boot:
chmod +x /etc/init.d/clamd chkconfig --add clamd chkconfig clamd on
cd /etc/exim mv exim.conf exim.old.conf ln -s /spamcheck/exim/config/exim.conf chkconfig exim on
chkconfig mysqld on chkconfig httpd on chkconfig exim on chkconfig spamd on service mysqld restart service httpd restart service exim restart service spamd restart
crontab -u apache -e SHELL=/bin/bash MAILTO=postmaster HOME=/spamcheck/www/scripts # 0 16 * * * /usr/bin/php -c /etc/php.ini /spamcheck/www/scripts/send_quarantine.php >> /var/log/quarantine.log 0 1 * * * /usr/bin/php -c /etc/php.ini /spamcheck/www/scripts/spamcheckdaily.php >> /var/log/spamcheckdaily.log 1 * * * * /usr/bin/php -c /etc/php.ini /spamcheck/www/scripts/spamstats.php >> /var/log/spamstats.log 30 0 * * * /usr/bin/php -c /etc/php.ini /spamcheck/www/scripts/spamstatsdaily.php >> /var/log/spamstatsdaily.logAnd then the tasks to keep ClamD and SpamAssassin up to date:
crontab -e 0 * * * * /usr/local/bin/freshclam >> /var/log/freshclam.log 30 * * * * /usr/bin/sa-update && /etc/init.d/spamassassin reload >> /var/log/sa-update.logAnd finally create empty logs with the correct ownership:
touch /var/log/quarantine.log touch /var/log/spamcheckdaily.log touch /var/log/spamstats.log touch /var/log/spamstatsdaily.log chown apache:apache /var/log/quarantine.log chown apache:apache /var/log/spamcheckdaily.log chown apache:apache /var/log/spamstats.log chown apache:apache /var/log/spamstatsdaily.log
If you need to contact the developers, please send an e-mail to spamcheck at lyzard dot net
SpamCheck is developed by Blane Bramble