Actualizando SpamAssassin

Servidor SLES11, ya sin el soporte oficial de Novell, es decir sin las actualizaciones oficiales por parte de Suse Linux Enterpise Server, asi que el SpamAssassin y Amavis tiene mas de 2 años que no se actualizaban...

pero como todo unix, se puede bajar, compilar e instalar o actualizar las versiones de los programas que necesitemos.

removemos el viejo spamassasin desde YasT (Yet Another Setup Tool)

usando CPAN (The Perl Archive Network, the gateway to all things Perl. The canonical location for Perl code and modules.).

cpan install Mail::SpamAssassin

Requisitos:

Required Perl Interpreter
-------------------------

Perl 5.8.1 or a later version is required.
Preferred versions are 5.8.8, or 5.10.1 or later.

Most of the functions might still work with Perl 5.6.1 or 5.6.2,
but 5.6.* is no longer a supported version.


Required Perl Modules
---------------------

In addition to the modules associated with Perl, some additional modules
need to be installed or upgraded depending on the version of Perl that you
are running.

You can get an immediate report on which of these modules you may need (or
want) to upgrade, by running "perl build/check_dependencies" from the
SpamAssassin build directory.

The list of required modules that do not ship with Perl and must be
installed:

- Digest::SHA1 (from CPAN),
or the newer Digest::SHA which is a perl base module since Perl 5.10.0

The Digest::SHA1 module is used as a cryptographic hash for some
tests and the Bayes subsystem if Digest::SHA module is not available.

An external perl module razor-agents-2.84 as used by a Razor2 plugin
seems to be the only remaining component depending on Digest::SHA1
(note that a packager may ship a patched version of razor-agents which
can use Digest::SHA instead)

Debian: apt-get install libdigest-sha1-perl
Gentoo: emerge dev-perl/Digest-SHA1
Fedora: yum install perl-Digest-SHA1

- HTML::Parser >= 3.43 (from CPAN)

HTML is used for an ever-increasing amount of email so this dependency
is unavoidable. Run "perldoc -q html" for additional information.

Debian: apt-get install libhtml-parser-perl
Gentoo: emerge dev-perl/HTML-Parser
Fedora: yum install perl-HTML-Parser

- Net::DNS (from CPAN)
Used to parse IP addresses and IP address ranges for
"trusted_networks".

Debian/Ubuntu: apt-get install libnetaddr-ip-perl
Fedora: yum install perl-NetAddr-IP

- Time::HiRes (from CPAN)

Used by asynchronous DNS lookups to operate timeouts with subsecond
precision and to report processing times accurately.

- LWP (aka libwww-perl) (from CPAN)

This set of modules will include both the LWP::UserAgent and
HTTP::Date modules, used by sa-update to retrieve update archives.

Fedora: yum install perl-libwww-perl

- HTTP::Date (from CPAN)

Used by sa-update to deal with certain Date requests.

- IO::Zlib (from CPAN)

Used by sa-update to uncompress update archives.
Version 1.04 or later is required.

Fedora: yum install perl-IO-Zlib

- Archive::Tar (from CPAN)

Used by sa-update to expand update archives.
Version 1.23 or later is required.

Fedora: yum install perl-Archive-Tar


una ves actualizado, vamos a crear los enlaces necesarios:

creamos el spamd dentro de /etc/init.d:

#!/bin/bash
# Copyright (c) 1995-2002 SuSE GmbH Nuernberg, Germany.
# edited by h4773r to use a standar spamassassin in SLES11
# Author: Kurt Garloff, Carsten Hoeger, jose luis Perez Rendon
# Please send feedback to http://www.suse.de/feedback/ or heatseeker.persa@gmail.com
#
# /etc/init.d/spamd
#
# and symbolic its link
#
# /usr/sbin/rcspamd
#
# LSB compliant service control script; see http://www.linuxbase.org/spec/
#
# System startup script for daemon spamd
#
### BEGIN INIT INFO
# Provides: spamd
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 3 5
# Default-Stop: 0 1 2 6
# Description: Start spamd to allow efficient filtering of mail
# through spamassassin. Note: Read README.spamd about security implications
# Short-Description: Start the spamassassin daemon
### END INIT INFO
#
# Note on Required-Start: It does specify the init script ordering,
# not real dependencies. Depencies have to be handled by admin
# resp. the configuration tools (s)he uses.

# OLD Source SuSE config (if still necessary, most info has been moved)
test -r /etc/rc.config && . /etc/rc.config

# Check for missing binaries (stale symlinks should not happen)
# thins line change, standar spamassassin use /usr/bin
SPAMD_BIN=/usr/bin/spamd
PIDFILE=/var/run/spamd.pid
test -x $SPAMD_BIN || exit 5

# el resto del archivo se queda intacto / the rest of file dont have changes.
# Check for existence of needed config file and read it
#
# Later, we may want to make startup behaviour (user ID, firewalling, ...)
# configurable, as there are security implications (read README.spamd).
SPAMD_CONFIG=/etc/sysconfig/spamd
test -r $SPAMD_CONFIG || exit 6
. $SPAMD_CONFIG

# Shell functions sourced from /etc/rc.status:
# rc_check check and set local and overall rc status
# rc_status check and set local and overall rc status
# rc_status -v ditto but be verbose in local rc status
# rc_status -v -r ditto and clear the local rc status
# rc_failed set local and overall rc status to failed
# rc_failed set local and overall rc status to
# rc_reset clear local rc status (overall remains)
# rc_exit exit appropriate to overall rc status
# rc_active checks whether a service is activated by symlinks
. /etc/rc.status

# First reset status of this service
rc_reset

# Return values acc. to LSB for all commands but status:
# 0 - success
# 1 - generic or unspecified error
# 2 - invalid or excess argument(s)
# 3 - unimplemented feature (e.g. "reload")
# 4 - insufficient privilege
# 5 - program is not installed
# 6 - program is not configured
# 7 - program is not running
#
# Note that starting an already running service, stopping
# or restarting a not-running service as well as the restart
# with force-reload (in case signalling is not supported) are
# considered a success.

case "$1" in
start)
echo -n "Starting spamd "
## Start daemon with startproc(8). If this fails
## the echo return value is set appropriate.

# NOTE: startproc returns 0, even if service is
# already running to match LSB spec.
startproc -p $PIDFILE $SPAMD_BIN $SPAMD_ARGS -r $PIDFILE

# Remember status and be verbose
rc_status -v
;;
stop)
echo -n "Shutting down spamd "
## Stop daemon with killproc(8) and if this fails
## set echo the echo return value.

killproc -p $PIDFILE -TERM $SPAMD_BIN

# Remember status and be verbose
rc_status -v
;;
try-restart)
## Stop the service and if this succeeds (i.e. the
## service was running before), start it again.
## Note: try-restart is not (yet) part of LSB (as of 0.7.5)
$0 status >/dev/null && $0 restart

# Remember status and be quiet
rc_status
;;
restart)
## Stop the service and regardless of whether it was
## running or not, start it again.
$0 stop
sleep 1
$0 start
sleep 1

# Remember status and be quiet
rc_status
;;
force-reload)
## Signal the daemon to reload its config. Most daemons
## do this on signal 1 (SIGHUP).
## If it does not support it, restart.

echo -n "Reload service spamd "
## if it supports it:
#killproc -HUP $SPAMD_BIN
#touch /var/run/spamd.pid
#rc_status -v

## Otherwise:
$0 stop && $0 start
rc_status
;;
reload)
## Like force-reload, but if daemon does not support
## signalling, do nothing (!)

# If it supports signalling:
echo -n "Reload service spamd "
killproc -HUP $SPAMD_BIN
touch /var/run/spamd.pid
rc_status -v
;;
status)
echo -n "Checking for service spamd "
## Check status with checkproc(8), if process is running
## checkproc will return with exit status 0.

# Return value is slightly different for the status command:
# 0 - service running
# 1 - service dead, but /var/run/ pid file exists
# 2 - service dead, but /var/lock/ lock file exists
# 3 - service not running

# NOTE: checkproc returns LSB compliant status values.
checkproc -p $PIDFILE $SPAMD_BIN
rc_status -v
;;
probe)
## Optional: Probe for the necessity of a reload,
## print out the argument which is required for a reload.

test /etc/mail/spamassassin/local.cf -nt /var/run/spamd.pid && echo reload
;;
*)
echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload|probe}"
exit 1
;;
esac
rc_exit


ahora los enlaces:

ln -s /etc/init.d/spamd /usr/sbin/rcspamd

dento de /etc/init.d/rc3.d

ln -s ../spamd /etc/init.d/rc3.d/S11spamd
ln -s ../spamd /etc/init.d/rc3.d/K10spamd



con eso tenemos el servicio de SpamAssassin actualizado en el servidor...

prueba:
ANTES:

Received: by esanmarcos.com.mx (Postfix, from userid 65534)
id 769C52A3FCC; Thu, 25 Feb 2010 08:09:22 -0600 (CST)
X-Spam-Checker-Version: SpamAssassin 3.2.4 (2008-01-01) on esanmarcos.com.mx
Received: from samsclubmx.cpbnc.com (samsclubmx.cpbnc.com [153.69.213.121])


DESPUES:

Received: by esanmarcos.com.mx (Postfix, from userid 65534)
id 6100D2A4460; Thu, 25 Feb 2010 09:45:07 -0600 (CST)
Received: from localhost by esanmarcos.com.mx
with SpamAssassin (version 3.3.0);
Thu, 25 Feb 2010 09:45:07 -0600
From:
To: name.domain@esanmarcos.com.mx
Subject: *****Pharmacy Sale_Adderall**Percocet*******
Date: Thu, 25 Feb 2010 16:46:21 +0100
Message-Id: <20100225034621.3697.qmail@78-0-205-13.adsl.net.t-com.hr>
X-Spam-Checker-Version: SpamAssassin 3.3.0 (2010-01-18) on esanmarcos.com.mx
X-Spam-Flag: YES
X-Spam-Level: *************
X-Spam-Status: Yes, score=13.8 required=5.0 tests=BAYES_50,FH_HELO_EQ_D_D_D_D,
FORGED_HOTMAIL_RCVD2,FREEMAIL_FROM,HELO_DYNAMIC_HCC,HELO_DYNAMIC_IPADDR2,
RDNS_DYNAMIC,TO_NO_BRKTS_DYNIP,TVD_RCVD_IP,T_TO_NO_BRKTS_FREEMAIL
autolearn=spam version=3.3.0
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="----------=_4B869B03.2182C9D5"

This is a multi-part message in MIME format.


::LISTO::

Comentarios