Exim4 et SpamAssassin tournent sur ce serveur Debian Etch.
Les mails dont le score calculé par SpamAssassin est supérieur à 5 sont automatiquement déplacés dans un dossier .Junk. ;-)

(le logo Exim est de Jenniger Greenley, celui de SpamAssassin est de Christian Rauh)

Le problème est que SpamAssassin rate pas mal de spams !
Son score calculé est souvent faible, même devant des spams monstrueux.
:-(

La première chose à vérifier est si SpamAssassin met régulièrement ses règles à jour.

Le programme qui fait cela est sa-update. Il est normalement installé en même temps que SpamAssassin.

Je vérifie d’abord si je peux le lancer manuellement :

# sa-update
Can't locate Net/DNS.pm in @INC (@INC contains: /usr/share/perl5 /etc/perl /usr/local/lib/perl/5.8.8 /usr/local/share/perl/5.8.8 /usr/lib/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl) at /usr/bin/sa-update line 91.
BEGIN failed--compilation aborted at /usr/bin/sa-update line 91.

Visiblement, ça se passe mal…
Donc qu’il soit lancé manuellement ou automatiquement, il est certain que les règles de SpamAssassin ne sont pas mises à jour sur ce serveur. :-(

Une recherche Google me conduit vers cette page.

Je vais appliquer cette correction.

Il manque des fichiers ou librairies venant de CPAN, en particulier le module Net::DNS.

Wikipedia me dit que CPAN est une archive dense de logiciels, de bibliothèques de fonctions utilitaires écrits en langage Perl.

Et le même nom CPAN est également le nom d’un module Perl qui rend aisés le téléchargement, l’installation, la mise à jour et la maintenance des autres modules Perl qui sont archivés sur le CPAN.

Donc si j’ai bien compris, il manque DNS.pm pour faire tourner l’update de SpamAssassin.
Pour avoir ce script en perl, il faut installer le module Net::DNS qui se trouve dans le CPAN.
Et pour pouvoir installer Net::DNS, il faut d’abord installer le module perl MCPAN pour permettre le téléchargement depuis l’archive CPAN sur le Net…

Ca va ? Vous suivez ? (moi j’ai quand même dû relire ça 2 fois…)

REMARQUE :

Il semble qu’il ne soit pas nécessaire de faire tout cela manuellement sous Debian !

Il suffit d’installer un package : libnet-dns-perl

# apt-get install libnet-dns-perl
Reading package lists... Done
Building dependency tree... Done
The following extra packages will be installed:
  libdigest-hmac-perl libnet-ip-perl
The following NEW packages will be installed
  libdigest-hmac-perl libnet-dns-perl libnet-ip-perl
0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Need to get 292kB of archives.
After unpacking 1044kB of additional disk space will be used.

Je laisse malgré tout mon explication sur l’installation manuelle de CPAN, au cas où vous ne seriez pas sous Debian ou une autre distribution incluant ce package libnet-dns-perl ;-)

Je lance donc la commande pour installer CPAN.

# perl -MCPAN -e shell

/etc/perl/CPAN/Config.pm initialized.

CPAN is the world-wide archive of perl resources. It consists of about
100 sites that all replicate the same contents all around the globe.
Many countries have at least one CPAN site already. The resources
found on CPAN are easily accessible with the CPAN.pm module. If you
want to use CPAN.pm, you have to configure it properly.

If you do not want to enter a dialog now, you can answer 'no' to this
question and I'll try to autoconfigure. (Note: you can revisit this
dialog anytime later by typing 'o conf init' at the cpan prompt.)

Are you ready for manual configuration? [yes] no

The following questions are intended to help you with the
configuration. The CPAN module needs a directory of its own to cache
important index files and maybe keep a temporary mirror of CPAN files.
This may be a site-wide directory or a personal directory.

First of all, I'd like to create this directory. Where?

CPAN build and cache directory? [/root/.cpan]

If you want, I can keep the source files after a build in the cpan
home directory. If you choose so then future builds will take the
files from there. If you don't want to keep them, answer 0 to the
next question.

How big should the disk cache be for keeping the build directories
with all the intermediate files?

Cache size for build directory (in MB)? [10]

By default, each time the CPAN module is started, cache scanning
is performed to keep the cache size in sync. To prevent from this,
disable the cache scanning with 'never'.

Perform cache scanning (atstart or never)? [atstart]

To considerably speed up the initial CPAN shell startup, it is
possible to use Storable to create a cache of metadata. If Storable
is not available, the normal index mechanism will be used.

Cache metadata (yes/no)? [yes]

The next option deals with the charset your terminal supports. In
general CPAN is English speaking territory, thus the charset does not
matter much, but some of the aliens out there who upload their
software to CPAN bear names that are outside the ASCII range. If your
terminal supports UTF-8, you say no to the next question, if it
supports ISO-8859-1 (also known as LATIN1) then you say yes, and if it
supports neither nor, your answer does not matter, you will not be
able to read the names of some authors anyway. If you answer no, names
will be output in UTF-8.

Your terminal expects ISO-8859-1 (yes/no)? [yes]

If you have one of the readline packages (Term::ReadLine::Perl,
Term::ReadLine::Gnu, possibly others) installed, the interactive CPAN
shell will have history support. The next two questions deal with the
filename of the history file and with its size. If you do not want to
set this variable, please hit SPACE RETURN to the following question.

File to save your history? [/root/.cpan/histfile]

Number of lines to save? [100]

The CPAN module can detect when a module that which you are trying to
build depends on prerequisites. If this happens, it can build the
prerequisites for you automatically ('follow'), ask you for
confirmation ('ask'), or just ignore them ('ignore'). Please set your
policy to one of the three values.

Policy on building prerequisites (follow, ask or ignore)? [ask]

The CPAN module will need a few external programs to work properly.
Please correct me, if I guess the wrong path for a program. Don't
panic if you do not have some of them, just press ENTER for those. To
disable the use of a download program, you can type a space followed
by ENTER.

Where is your gzip program? [/bin/gzip]

Where is your tar program? [/bin/tar]

Warning: unzip not found in PATH
Where is your unzip program? []

Where is your make program? [/usr/bin/make]

Where is your lynx program? [/usr/bin/lynx]

Where is your wget program? [/usr/bin/wget]

Warning: ncftpget not found in PATH
Where is your ncftpget program? []

Warning: ncftp not found in PATH
Where is your ncftp program? []

Where is your ftp program? [/usr/bin/ftp]

Where is your gpg program? [/usr/bin/gpg]

What is your favorite pager program? [/usr/bin/less]

What is your favorite shell? [/bin/bash]

Every Makefile.PL is run by perl in a separate process. Likewise we
run 'make' and 'make install' in processes. If you have any
parameters (e.g. PREFIX, LIB, UNINST or the like) you want to pass
to the calls, please specify them here.

If you don't understand this question, just press ENTER.

Parameters for the 'perl Makefile.PL' command?
Typical frequently used settings:

    PREFIX=~/perl       non-root users (please see manual for more hints)

Your choice:  [INSTALLDIRS=site]

Parameters for the 'make' command?
Typical frequently used setting:

    -j3              dual processor system

Your choice:  []

Parameters for the 'make install' command?
Typical frequently used setting:

    UNINST=1         to always uninstall potentially conflicting files

Your choice:  []

Sometimes you may wish to leave the processes run by CPAN alone
without caring about them. As sometimes the Makefile.PL contains
question you're expected to answer, you can set a timer that will
kill a 'perl Makefile.PL' process after the specified time in seconds.

If you set this value to 0, these processes will wait forever. This is
the default and recommended setting.

Timeout for inactivity during Makefile.PL? [0]

If you're accessing the net via proxies, you can specify them in the
CPAN configuration or via environment variables. The variable in
the $CPAN::Config takes precedence.

Your ftp_proxy? []

Your http_proxy? []

Your no_proxy? []

commit: wrote /etc/perl/CPAN/Config.pm
Terminal does not support AddHistory.

cpan shell -- CPAN exploration and modules installation (v1.7602)
ReadLine support available (try 'install Bundle::CPAN')

cpan>

Je continue avec l’installation de Net::DNS

cpan> install Net::DNS
CPAN: Storable loaded ok
CPAN: LWP::UserAgent loaded ok
Fetching with LWP:
  ftp://ftp.perl.org/pub/CPAN/authors/01mailrc.txt.gz
Going to read /root/.cpan/sources/authors/01mailrc.txt.gz
CPAN: Compress::Zlib loaded ok
Fetching with LWP:
  ftp://ftp.perl.org/pub/CPAN/modules/02packages.details.txt.gz
Going to read /root/.cpan/sources/modules/02packages.details.txt.gz
  Database was generated on Mon, 29 Oct 2007 20:37:58 GMT

  There's a new CPAN.pm version (v1.9203) available!
  [Current version is v1.7602]
  You might want to try
    install Bundle::CPAN
    reload cpan
  without quitting the current session. It should be a seamless upgrade
  while we are running...

Fetching with LWP:
  ftp://ftp.perl.org/pub/CPAN/modules/03modlist.data.gz
Going to read /root/.cpan/sources/modules/03modlist.data.gz
Going to write /root/.cpan/Metadata
Running install for module Net::DNS
Running make for O/OL/OLAF/Net-DNS-0.61.tar.gz
Fetching with LWP:
  ftp://ftp.perl.org/pub/CPAN/authors/id/O/OL/OLAF/Net-DNS-0.61.tar.gz
CPAN: Digest::MD5 loaded ok
Fetching with LWP:
  ftp://ftp.perl.org/pub/CPAN/authors/id/O/OL/OLAF/CHECKSUMS
Checksum for /root/.cpan/sources/authors/id/O/OL/OLAF/Net-DNS-0.61.tar.gz ok
Scanning cache /root/.cpan/build for sizes
Net-DNS-0.61/
Net-DNS-0.61/Changes
Net-DNS-0.61/contrib/
Net-DNS-0.61/contrib/check_soa
Net-DNS-0.61/contrib/check_zone
Net-DNS-0.61/contrib/dnswalk.README
Net-DNS-0.61/contrib/loc2earth.fcgi
Net-DNS-0.61/contrib/loclist.pl
Net-DNS-0.61/contrib/README
Net-DNS-0.61/demo/
Net-DNS-0.61/demo/axfr
Net-DNS-0.61/demo/check_soa
Net-DNS-0.61/demo/check_zone
Net-DNS-0.61/demo/example_recurse.pl
Net-DNS-0.61/demo/mresolv
Net-DNS-0.61/demo/mx
Net-DNS-0.61/demo/perldig
Net-DNS-0.61/demo/README
Net-DNS-0.61/demo/trace_dns.pl
Net-DNS-0.61/DNS.xs
Net-DNS-0.61/lib/
Net-DNS-0.61/lib/Net/
Net-DNS-0.61/lib/Net/DNS/
Net-DNS-0.61/lib/Net/DNS/FAQ.pod
Net-DNS-0.61/lib/Net/DNS/Header.pm
Net-DNS-0.61/lib/Net/DNS/Nameserver.pm
Net-DNS-0.61/lib/Net/DNS/Packet.pm
Net-DNS-0.61/lib/Net/DNS/Question.pm
Net-DNS-0.61/lib/Net/DNS/Resolver/
Net-DNS-0.61/lib/Net/DNS/Resolver/Base.pm
Net-DNS-0.61/lib/Net/DNS/Resolver/Cygwin.pm
Net-DNS-0.61/lib/Net/DNS/Resolver/Recurse.pm
Net-DNS-0.61/lib/Net/DNS/Resolver/UNIX.pm
Net-DNS-0.61/lib/Net/DNS/Resolver/Win32.pm
Net-DNS-0.61/lib/Net/DNS/Resolver.pm
Net-DNS-0.61/lib/Net/DNS/RR/
Net-DNS-0.61/lib/Net/DNS/RR/A.pm
Net-DNS-0.61/lib/Net/DNS/RR/AAAA.pm
Net-DNS-0.61/lib/Net/DNS/RR/AFSDB.pm
Net-DNS-0.61/lib/Net/DNS/RR/CERT.pm
Net-DNS-0.61/lib/Net/DNS/RR/CNAME.pm
Net-DNS-0.61/lib/Net/DNS/RR/DNAME.pm
Net-DNS-0.61/lib/Net/DNS/RR/EID.pm
Net-DNS-0.61/lib/Net/DNS/RR/HINFO.pm
Net-DNS-0.61/lib/Net/DNS/RR/IPSECKEY.pm
Net-DNS-0.61/lib/Net/DNS/RR/ISDN.pm
Net-DNS-0.61/lib/Net/DNS/RR/LOC.pm
Net-DNS-0.61/lib/Net/DNS/RR/MB.pm
Net-DNS-0.61/lib/Net/DNS/RR/MG.pm
Net-DNS-0.61/lib/Net/DNS/RR/MINFO.pm
Net-DNS-0.61/lib/Net/DNS/RR/MR.pm
Net-DNS-0.61/lib/Net/DNS/RR/MX.pm
Net-DNS-0.61/lib/Net/DNS/RR/NAPTR.pm
Net-DNS-0.61/lib/Net/DNS/RR/NIMLOC.pm
Net-DNS-0.61/lib/Net/DNS/RR/NS.pm
Net-DNS-0.61/lib/Net/DNS/RR/NSAP.pm
Net-DNS-0.61/lib/Net/DNS/RR/NULL.pm
Net-DNS-0.61/lib/Net/DNS/RR/OPT.pm
Net-DNS-0.61/lib/Net/DNS/RR/PTR.pm
Net-DNS-0.61/lib/Net/DNS/RR/PX.pm
Net-DNS-0.61/lib/Net/DNS/RR/RP.pm
Net-DNS-0.61/lib/Net/DNS/RR/RT.pm
Net-DNS-0.61/lib/Net/DNS/RR/SOA.pm
Net-DNS-0.61/lib/Net/DNS/RR/SPF.pm
Net-DNS-0.61/lib/Net/DNS/RR/SRV.pm
Net-DNS-0.61/lib/Net/DNS/RR/SSHFP.pm
Net-DNS-0.61/lib/Net/DNS/RR/TKEY.pm
Net-DNS-0.61/lib/Net/DNS/RR/TSIG.pm
Net-DNS-0.61/lib/Net/DNS/RR/TXT.pm
Net-DNS-0.61/lib/Net/DNS/RR/Unknown.pm
Net-DNS-0.61/lib/Net/DNS/RR/X25.pm
Net-DNS-0.61/lib/Net/DNS/RR.pm
Net-DNS-0.61/lib/Net/DNS/Update.pm
Net-DNS-0.61/lib/Net/DNS.pm
Net-DNS-0.61/Makefile.PL
Net-DNS-0.61/MANIFEST
Net-DNS-0.61/META.yml
Net-DNS-0.61/netdns.c
Net-DNS-0.61/netdns.h
Net-DNS-0.61/README
Net-DNS-0.61/t/
Net-DNS-0.61/t/.resolv.conf
Net-DNS-0.61/t/00-load.t
Net-DNS-0.61/t/00-pod.t
Net-DNS-0.61/t/00-version.t
Net-DNS-0.61/t/01-resolver-env.t
Net-DNS-0.61/t/01-resolver-file.t
Net-DNS-0.61/t/01-resolver-opt.t
Net-DNS-0.61/t/01-resolver.t
Net-DNS-0.61/t/02-header.t
Net-DNS-0.61/t/03-question.t
Net-DNS-0.61/t/04-packet-unique-push.t
Net-DNS-0.61/t/04-packet.t
Net-DNS-0.61/t/05-rr-opt.t
Net-DNS-0.61/t/05-rr-rrsort.t
Net-DNS-0.61/t/05-rr-sshfp.t
Net-DNS-0.61/t/05-rr-txt.t
Net-DNS-0.61/t/05-rr-unknown.t
Net-DNS-0.61/t/05-rr.t
Net-DNS-0.61/t/06-update.t
Net-DNS-0.61/t/07-misc.t
Net-DNS-0.61/t/08-online.t
Net-DNS-0.61/t/09-tkey.t
Net-DNS-0.61/t/10-recurse.t
Net-DNS-0.61/t/11-escapedchars.t
Net-DNS-0.61/t/11-inet6.t
Net-DNS-0.61/t/12-compression.t
Net-DNS-0.61/t/custom.txt
Net-DNS-0.61/TODO

  CPAN.pm: Going to build O/OL/OLAF/Net-DNS-0.61.tar.gz

The libraries needed to support IPv6 transport have not been found.
You will need recent versions of the IO::Socket::INET6 and Socket6
libraries (from CPAN). 

Testing if you have a C compiler and the needed header files....
You have a working compiler.

You appear to be directly connected to the Internet.  I have some tests
that try to query live nameservers.

Do you want to enable these tests? [y] y
Checking if your kit is complete...
Looks good
Warning: prerequisite Digest::HMAC_MD5 1 not found.
Warning: prerequisite Net::IP 1.2 not found.
Writing Makefile for Net::DNS
---- Unsatisfied dependencies detected during [O/OL/OLAF/Net-DNS-0.61.tar.gz] -----
    Digest::HMAC_MD5
    Net::IP
Shall I follow them and prepend them to the queue
of modules we are processing right now? [yes]
Running make test
  Delayed until after prerequisites
Running make install
  Delayed until after prerequisites
Running install for module Digest::HMAC_MD5
Running make for G/GA/GAAS/Digest-HMAC-1.01.tar.gz
Fetching with LWP:
  ftp://ftp.perl.org/pub/CPAN/authors/id/G/GA/GAAS/Digest-HMAC-1.01.tar.gz
Fetching with LWP:
  ftp://ftp.perl.org/pub/CPAN/authors/id/G/GA/GAAS/CHECKSUMS
Checksum for /root/.cpan/sources/authors/id/G/GA/GAAS/Digest-HMAC-1.01.tar.gz ok
Digest-HMAC-1.01/
Digest-HMAC-1.01/rfc2104.txt
Digest-HMAC-1.01/Makefile.PL
Digest-HMAC-1.01/lib/
Digest-HMAC-1.01/lib/Digest/
Digest-HMAC-1.01/lib/Digest/HMAC.pm
Digest-HMAC-1.01/lib/Digest/HMAC_SHA1.pm
Digest-HMAC-1.01/lib/Digest/HMAC_MD5.pm
Digest-HMAC-1.01/Changes
Digest-HMAC-1.01/t/
Digest-HMAC-1.01/t/rfc2202.t
Digest-HMAC-1.01/README
Digest-HMAC-1.01/MANIFEST

  CPAN.pm: Going to build G/GA/GAAS/Digest-HMAC-1.01.tar.gz

Checking if your kit is complete...
Looks good
Writing Makefile for Digest::HMAC
cp lib/Digest/HMAC_MD5.pm blib/lib/Digest/HMAC_MD5.pm
cp lib/Digest/HMAC.pm blib/lib/Digest/HMAC.pm
cp lib/Digest/HMAC_SHA1.pm blib/lib/Digest/HMAC_SHA1.pm
Manifying blib/man3/Digest::HMAC_MD5.3pm
Manifying blib/man3/Digest::HMAC.3pm
Manifying blib/man3/Digest::HMAC_SHA1.3pm
  /usr/bin/make  -- OK
Running make test
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/rfc2202....ok
All tests successful.
Files=1, Tests=14,  0 wallclock secs ( 0.04 cusr +  0.02 csys =  0.06 CPU)
  /usr/bin/make test -- OK
Running make install
Installing /usr/local/share/perl/5.8.8/Digest/HMAC_MD5.pm
Installing /usr/local/share/perl/5.8.8/Digest/HMAC.pm
Installing /usr/local/share/perl/5.8.8/Digest/HMAC_SHA1.pm
Installing /usr/local/man/man3/Digest::HMAC_MD5.3pm
Installing /usr/local/man/man3/Digest::HMAC.3pm
Installing /usr/local/man/man3/Digest::HMAC_SHA1.3pm
Writing /usr/local/lib/perl/5.8.8/auto/Digest/HMAC/.packlist
Appending installation info to /usr/local/lib/perl/5.8.8/perllocal.pod
  /usr/bin/make install  -- OK
Running install for module Net::IP
Running make for M/MA/MANU/Net-IP-1.25.tar.gz
Fetching with LWP:
  ftp://ftp.perl.org/pub/CPAN/authors/id/M/MA/MANU/Net-IP-1.25.tar.gz
Fetching with LWP:
  ftp://ftp.perl.org/pub/CPAN/authors/id/M/MA/MANU/CHECKSUMS
Checksum for /root/.cpan/sources/authors/id/M/MA/MANU/Net-IP-1.25.tar.gz ok
Net-IP-1.25/
Net-IP-1.25/iptab
Net-IP-1.25/META.yml
Net-IP-1.25/IP.pm
Net-IP-1.25/COPYING
Net-IP-1.25/Changes
Net-IP-1.25/t/
Net-IP-1.25/t/ExtUtils/
Net-IP-1.25/t/ExtUtils/TBone.pm
Net-IP-1.25/t/ipv4.t
Net-IP-1.25/t/ipv6.t
Net-IP-1.25/ipcount
Net-IP-1.25/MANIFEST
Net-IP-1.25/Net-IP.spec.PL
Net-IP-1.25/README
Net-IP-1.25/Makefile.PL

  CPAN.pm: Going to build M/MA/MANU/Net-IP-1.25.tar.gz

Checking if your kit is complete...
Looks good
Writing Makefile for Net::IP
cp IP.pm blib/lib/Net/IP.pm
cp ipcount blib/script/ipcount
/usr/bin/perl "-MExtUtils::MY" -e "MY->fixin(shift)" blib/script/ipcount
cp iptab blib/script/iptab
/usr/bin/perl "-MExtUtils::MY" -e "MY->fixin(shift)" blib/script/iptab
Manifying blib/man3/Net::IP.3pm
/usr/bin/perl "-Iblib/arch" "-Iblib/lib" Net-IP.spec.PL Net-IP.spec
  /usr/bin/make  -- OK
Running make test
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/ipv4....ok
t/ipv6....ok
All tests successful.
Files=2, Tests=48,  1 wallclock secs ( 0.54 cusr +  0.08 csys =  0.62 CPU)
  /usr/bin/make test -- OK
Running make install
Installing /usr/local/share/perl/5.8.8/Net/IP.pm
Installing /usr/local/man/man3/Net::IP.3pm
Installing /usr/local/bin/ipcount
Installing /usr/local/bin/iptab
Writing /usr/local/lib/perl/5.8.8/auto/Net/IP/.packlist
Appending installation info to /usr/local/lib/perl/5.8.8/perllocal.pod
  /usr/bin/make install  -- OK
Running make for O/OL/OLAF/Net-DNS-0.61.tar.gz
  Is already unwrapped into directory /root/.cpan/build/Net-DNS-0.61

  CPAN.pm: Going to build O/OL/OLAF/Net-DNS-0.61.tar.gz

cp lib/Net/DNS/RR/A.pm blib/lib/Net/DNS/RR/A.pm
cp lib/Net/DNS/Resolver/Win32.pm blib/lib/Net/DNS/Resolver/Win32.pm
cp lib/Net/DNS/RR/Unknown.pm blib/lib/Net/DNS/RR/Unknown.pm
cp lib/Net/DNS/RR/IPSECKEY.pm blib/lib/Net/DNS/RR/IPSECKEY.pm
cp lib/Net/DNS/RR/EID.pm blib/lib/Net/DNS/RR/EID.pm
cp lib/Net/DNS/RR/ISDN.pm blib/lib/Net/DNS/RR/ISDN.pm
cp lib/Net/DNS/RR/MX.pm blib/lib/Net/DNS/RR/MX.pm
cp lib/Net/DNS/Header.pm blib/lib/Net/DNS/Header.pm
cp lib/Net/DNS/RR/SOA.pm blib/lib/Net/DNS/RR/SOA.pm
cp lib/Net/DNS/RR/OPT.pm blib/lib/Net/DNS/RR/OPT.pm
cp lib/Net/DNS/RR/NIMLOC.pm blib/lib/Net/DNS/RR/NIMLOC.pm
cp lib/Net/DNS/RR/TXT.pm blib/lib/Net/DNS/RR/TXT.pm
cp lib/Net/DNS/RR/DNAME.pm blib/lib/Net/DNS/RR/DNAME.pm
cp lib/Net/DNS/RR/AAAA.pm blib/lib/Net/DNS/RR/AAAA.pm
cp lib/Net/DNS.pm blib/lib/Net/DNS.pm
cp lib/Net/DNS/RR/X25.pm blib/lib/Net/DNS/RR/X25.pm
cp lib/Net/DNS/RR/RP.pm blib/lib/Net/DNS/RR/RP.pm
cp lib/Net/DNS/Resolver/Recurse.pm blib/lib/Net/DNS/Resolver/Recurse.pm
cp lib/Net/DNS/Resolver/Cygwin.pm blib/lib/Net/DNS/Resolver/Cygwin.pm
cp lib/Net/DNS/RR/PTR.pm blib/lib/Net/DNS/RR/PTR.pm
cp lib/Net/DNS/RR/NS.pm blib/lib/Net/DNS/RR/NS.pm
cp lib/Net/DNS/RR/TSIG.pm blib/lib/Net/DNS/RR/TSIG.pm
cp lib/Net/DNS/Update.pm blib/lib/Net/DNS/Update.pm
cp lib/Net/DNS/Resolver.pm blib/lib/Net/DNS/Resolver.pm
cp lib/Net/DNS/RR/PX.pm blib/lib/Net/DNS/RR/PX.pm
cp lib/Net/DNS/Nameserver.pm blib/lib/Net/DNS/Nameserver.pm
cp lib/Net/DNS/RR/NULL.pm blib/lib/Net/DNS/RR/NULL.pm
cp lib/Net/DNS/RR/LOC.pm blib/lib/Net/DNS/RR/LOC.pm
cp lib/Net/DNS/RR/SRV.pm blib/lib/Net/DNS/RR/SRV.pm
cp lib/Net/DNS/RR/RT.pm blib/lib/Net/DNS/RR/RT.pm
cp lib/Net/DNS/RR/AFSDB.pm blib/lib/Net/DNS/RR/AFSDB.pm
cp lib/Net/DNS/RR/MR.pm blib/lib/Net/DNS/RR/MR.pm
cp lib/Net/DNS/RR/MINFO.pm blib/lib/Net/DNS/RR/MINFO.pm
cp lib/Net/DNS/FAQ.pod blib/lib/Net/DNS/FAQ.pod
cp lib/Net/DNS/RR/CNAME.pm blib/lib/Net/DNS/RR/CNAME.pm
cp lib/Net/DNS/Question.pm blib/lib/Net/DNS/Question.pm
cp lib/Net/DNS/RR/SSHFP.pm blib/lib/Net/DNS/RR/SSHFP.pm
cp lib/Net/DNS/RR/NAPTR.pm blib/lib/Net/DNS/RR/NAPTR.pm
cp lib/Net/DNS/RR/SPF.pm blib/lib/Net/DNS/RR/SPF.pm
cp lib/Net/DNS/Packet.pm blib/lib/Net/DNS/Packet.pm
cp lib/Net/DNS/RR.pm blib/lib/Net/DNS/RR.pm
cp lib/Net/DNS/RR/HINFO.pm blib/lib/Net/DNS/RR/HINFO.pm
cp lib/Net/DNS/RR/MG.pm blib/lib/Net/DNS/RR/MG.pm
cp lib/Net/DNS/RR/TKEY.pm blib/lib/Net/DNS/RR/TKEY.pm
cp lib/Net/DNS/RR/NSAP.pm blib/lib/Net/DNS/RR/NSAP.pm
cp lib/Net/DNS/RR/CERT.pm blib/lib/Net/DNS/RR/CERT.pm
cp lib/Net/DNS/Resolver/UNIX.pm blib/lib/Net/DNS/Resolver/UNIX.pm
cp lib/Net/DNS/RR/MB.pm blib/lib/Net/DNS/RR/MB.pm
cp lib/Net/DNS/Resolver/Base.pm blib/lib/Net/DNS/Resolver/Base.pm
cc -c   -D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBIAN -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2   -DVERSION=\"0.61\" -DXS_VERSION=\"0.61\" -fPIC "-I/usr/lib/perl/5.8/CORE"   netdns.c
ar cr netdns.a netdns.o
/usr/bin/perl /usr/share/perl/5.8/ExtUtils/xsubpp  -typemap /usr/share/perl/5.8/ExtUtils/typemap  DNS.xs > DNS.xsc && mv DNS.xsc DNS.c
cc -c   -D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBIAN -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2   -DVERSION=\"0.61\" -DXS_VERSION=\"0.61\" -fPIC "-I/usr/lib/perl/5.8/CORE"   DNS.c
Running Mkbootstrap for Net::DNS ()
chmod 644 DNS.bs
rm -f blib/arch/auto/Net/DNS/DNS.so
cc  -shared -L/usr/local/lib DNS.o  -o blib/arch/auto/Net/DNS/DNS.so netdns.a   \
                \

chmod 755 blib/arch/auto/Net/DNS/DNS.so
cp DNS.bs blib/arch/auto/Net/DNS/DNS.bs
chmod 644 blib/arch/auto/Net/DNS/DNS.bs
Manifying blib/man3/Net::DNS::RR::A.3pm
Manifying blib/man3/Net::DNS::RR::Unknown.3pm
Manifying blib/man3/Net::DNS::Resolver::Win32.3pm
Manifying blib/man3/Net::DNS::RR::IPSECKEY.3pm
Manifying blib/man3/Net::DNS::RR::EID.3pm
Manifying blib/man3/Net::DNS::RR::ISDN.3pm
Manifying blib/man3/Net::DNS::RR::MX.3pm
Manifying blib/man3/Net::DNS::Header.3pm
Manifying blib/man3/Net::DNS::RR::SOA.3pm
Manifying blib/man3/Net::DNS::RR::OPT.3pm
Manifying blib/man3/Net::DNS::RR::NIMLOC.3pm
Manifying blib/man3/Net::DNS::RR::TXT.3pm
Manifying blib/man3/Net::DNS::RR::DNAME.3pm
Manifying blib/man3/Net::DNS::RR::AAAA.3pm
Manifying blib/man3/Net::DNS.3pm
Manifying blib/man3/Net::DNS::RR::X25.3pm
Manifying blib/man3/Net::DNS::RR::RP.3pm
Manifying blib/man3/Net::DNS::RR::PTR.3pm
Manifying blib/man3/Net::DNS::Resolver::Cygwin.3pm
Manifying blib/man3/Net::DNS::Resolver::Recurse.3pm
Manifying blib/man3/Net::DNS::RR::TSIG.3pm
Manifying blib/man3/Net::DNS::RR::NS.3pm
Manifying blib/man3/Net::DNS::Update.3pm
Manifying blib/man3/Net::DNS::Resolver.3pm
Manifying blib/man3/Net::DNS::RR::PX.3pm
Manifying blib/man3/Net::DNS::Nameserver.3pm
Manifying blib/man3/Net::DNS::RR::NULL.3pm
Manifying blib/man3/Net::DNS::RR::LOC.3pm
Manifying blib/man3/Net::DNS::RR::SRV.3pm
Manifying blib/man3/Net::DNS::RR::RT.3pm
Manifying blib/man3/Net::DNS::RR::AFSDB.3pm
Manifying blib/man3/Net::DNS::RR::MINFO.3pm
Manifying blib/man3/Net::DNS::RR::MR.3pm
Manifying blib/man3/Net::DNS::FAQ.3pm
Manifying blib/man3/Net::DNS::RR::CNAME.3pm
Manifying blib/man3/Net::DNS::Question.3pm
Manifying blib/man3/Net::DNS::RR::SSHFP.3pm
Manifying blib/man3/Net::DNS::RR::NAPTR.3pm
Manifying blib/man3/Net::DNS::RR::SPF.3pm
Manifying blib/man3/Net::DNS::RR.3pm
Manifying blib/man3/Net::DNS::Packet.3pm
Manifying blib/man3/Net::DNS::RR::HINFO.3pm
Manifying blib/man3/Net::DNS::RR::MG.3pm
Manifying blib/man3/Net::DNS::RR::TKEY.3pm
Manifying blib/man3/Net::DNS::RR::NSAP.3pm
Manifying blib/man3/Net::DNS::RR::CERT.3pm
Manifying blib/man3/Net::DNS::Resolver::UNIX.3pm
Manifying blib/man3/Net::DNS::RR::MB.3pm
Manifying blib/man3/Net::DNS::Resolver::Base.3pm
  /usr/bin/make  -- OK
Running make test
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/00-load..................ok 1/79#
# These tests were ran with:
# Net::DNS::VERSION:               0.61
# set environment variable NET_DNS_DEBUG to get all versions
t/00-load..................ok
t/00-pod...................skipped
        all skipped: Test::Pod v0.95 required for testing POD
t/00-version...............ok
t/01-resolver-env..........ok
t/01-resolver-file.........ok
        7/8 skipped: Could not read configuration file
t/01-resolver-opt..........ok
t/01-resolver..............ok
t/02-header................ok
t/03-question..............ok
t/04-packet-unique-push....ok
t/04-packet................ok
t/05-rr-opt................ok
t/05-rr-rrsort.............ok
t/05-rr-sshfp..............skipped
        all skipped: Digest::BubbleBabble not installed.
t/05-rr-txt................ok
t/05-rr-unknown............ok
t/05-rr....................ok
t/06-update................ok
t/07-misc..................ok
   t/08-online................ok
t/09-tkey..................ok
t/10-recurse...............ok
t/11-escapedchars..........# Using the  XS compiled dn_expand function
t/11-escapedchars..........ok 1/141#
# disabling XS based dns_expand for a moment.
#
# Continuing to use the XS based dn_expand()
t/11-escapedchars..........ok
t/11-inet6.................ok
        10/11 skipped: Socket6 and or IO::Socket::INET6 not loaded
t/12-compression...........ok 1/5123456789112345678921234567893123456789412345678951234567896123...
truncated to 63 octets (RFC1035 2.3.1) at t/12-compression.t line 56
t/12-compression...........ok
All tests successful, 2 tests and 17 subtests skipped.
Files=25, Tests=1193, 43 wallclock secs ( 7.26 cusr +  0.71 csys =  7.97 CPU)
  /usr/bin/make test -- OK
Running make install
Installing /usr/local/lib/perl/5.8.8/auto/Net/DNS/DNS.so
Installing /usr/local/lib/perl/5.8.8/auto/Net/DNS/DNS.bs
Files found in blib/arch: installing files in blib/lib into architecture dependent library tree
Installing /usr/local/lib/perl/5.8.8/Net/DNS.pm
Installing /usr/local/lib/perl/5.8.8/Net/DNS/Header.pm
Installing /usr/local/lib/perl/5.8.8/Net/DNS/Update.pm
Installing /usr/local/lib/perl/5.8.8/Net/DNS/Resolver.pm
Installing /usr/local/lib/perl/5.8.8/Net/DNS/Nameserver.pm
Installing /usr/local/lib/perl/5.8.8/Net/DNS/FAQ.pod
Installing /usr/local/lib/perl/5.8.8/Net/DNS/Question.pm
Installing /usr/local/lib/perl/5.8.8/Net/DNS/Packet.pm
Installing /usr/local/lib/perl/5.8.8/Net/DNS/RR.pm
Installing /usr/local/lib/perl/5.8.8/Net/DNS/RR/A.pm
Installing /usr/local/lib/perl/5.8.8/Net/DNS/RR/Unknown.pm
Installing /usr/local/lib/perl/5.8.8/Net/DNS/RR/IPSECKEY.pm
Installing /usr/local/lib/perl/5.8.8/Net/DNS/RR/EID.pm
Installing /usr/local/lib/perl/5.8.8/Net/DNS/RR/ISDN.pm
Installing /usr/local/lib/perl/5.8.8/Net/DNS/RR/MX.pm
Installing /usr/local/lib/perl/5.8.8/Net/DNS/RR/SOA.pm
Installing /usr/local/lib/perl/5.8.8/Net/DNS/RR/OPT.pm
Installing /usr/local/lib/perl/5.8.8/Net/DNS/RR/NIMLOC.pm
Installing /usr/local/lib/perl/5.8.8/Net/DNS/RR/TXT.pm
Installing /usr/local/lib/perl/5.8.8/Net/DNS/RR/DNAME.pm
Installing /usr/local/lib/perl/5.8.8/Net/DNS/RR/AAAA.pm
Installing /usr/local/lib/perl/5.8.8/Net/DNS/RR/X25.pm
Installing /usr/local/lib/perl/5.8.8/Net/DNS/RR/RP.pm
Installing /usr/local/lib/perl/5.8.8/Net/DNS/RR/PTR.pm
Installing /usr/local/lib/perl/5.8.8/Net/DNS/RR/NS.pm
Installing /usr/local/lib/perl/5.8.8/Net/DNS/RR/TSIG.pm
Installing /usr/local/lib/perl/5.8.8/Net/DNS/RR/PX.pm
Installing /usr/local/lib/perl/5.8.8/Net/DNS/RR/NULL.pm
Installing /usr/local/lib/perl/5.8.8/Net/DNS/RR/LOC.pm
Installing /usr/local/lib/perl/5.8.8/Net/DNS/RR/SRV.pm
Installing /usr/local/lib/perl/5.8.8/Net/DNS/RR/RT.pm
Installing /usr/local/lib/perl/5.8.8/Net/DNS/RR/AFSDB.pm
Installing /usr/local/lib/perl/5.8.8/Net/DNS/RR/MR.pm
Installing /usr/local/lib/perl/5.8.8/Net/DNS/RR/MINFO.pm
Installing /usr/local/lib/perl/5.8.8/Net/DNS/RR/CNAME.pm
Installing /usr/local/lib/perl/5.8.8/Net/DNS/RR/SSHFP.pm
Installing /usr/local/lib/perl/5.8.8/Net/DNS/RR/NAPTR.pm
Installing /usr/local/lib/perl/5.8.8/Net/DNS/RR/SPF.pm
Installing /usr/local/lib/perl/5.8.8/Net/DNS/RR/HINFO.pm
Installing /usr/local/lib/perl/5.8.8/Net/DNS/RR/MG.pm
Installing /usr/local/lib/perl/5.8.8/Net/DNS/RR/TKEY.pm
Installing /usr/local/lib/perl/5.8.8/Net/DNS/RR/NSAP.pm
Installing /usr/local/lib/perl/5.8.8/Net/DNS/RR/CERT.pm
Installing /usr/local/lib/perl/5.8.8/Net/DNS/RR/MB.pm
Installing /usr/local/lib/perl/5.8.8/Net/DNS/Resolver/Win32.pm
Installing /usr/local/lib/perl/5.8.8/Net/DNS/Resolver/Recurse.pm
Installing /usr/local/lib/perl/5.8.8/Net/DNS/Resolver/Cygwin.pm
Installing /usr/local/lib/perl/5.8.8/Net/DNS/Resolver/UNIX.pm
Installing /usr/local/lib/perl/5.8.8/Net/DNS/Resolver/Base.pm
Installing /usr/local/man/man3/Net::DNS::RR::A.3pm
Installing /usr/local/man/man3/Net::DNS::RR::Unknown.3pm
Installing /usr/local/man/man3/Net::DNS::Resolver::Win32.3pm
Installing /usr/local/man/man3/Net::DNS::RR::IPSECKEY.3pm
Installing /usr/local/man/man3/Net::DNS::RR::EID.3pm
Installing /usr/local/man/man3/Net::DNS::RR::ISDN.3pm
Installing /usr/local/man/man3/Net::DNS::RR::MX.3pm
Installing /usr/local/man/man3/Net::DNS::Header.3pm
Installing /usr/local/man/man3/Net::DNS::RR::SOA.3pm
Installing /usr/local/man/man3/Net::DNS::RR::OPT.3pm
Installing /usr/local/man/man3/Net::DNS::RR::NIMLOC.3pm
Installing /usr/local/man/man3/Net::DNS::RR::TXT.3pm
Installing /usr/local/man/man3/Net::DNS::RR::DNAME.3pm
Installing /usr/local/man/man3/Net::DNS::RR::AAAA.3pm
Installing /usr/local/man/man3/Net::DNS.3pm
Installing /usr/local/man/man3/Net::DNS::RR::X25.3pm
Installing /usr/local/man/man3/Net::DNS::RR::RP.3pm
Installing /usr/local/man/man3/Net::DNS::RR::PTR.3pm
Installing /usr/local/man/man3/Net::DNS::Resolver::Cygwin.3pm
Installing /usr/local/man/man3/Net::DNS::Resolver::Recurse.3pm
Installing /usr/local/man/man3/Net::DNS::RR::TSIG.3pm
Installing /usr/local/man/man3/Net::DNS::RR::NS.3pm
Installing /usr/local/man/man3/Net::DNS::Update.3pm
Installing /usr/local/man/man3/Net::DNS::Resolver.3pm
Installing /usr/local/man/man3/Net::DNS::RR::PX.3pm
Installing /usr/local/man/man3/Net::DNS::Nameserver.3pm
Installing /usr/local/man/man3/Net::DNS::RR::NULL.3pm
Installing /usr/local/man/man3/Net::DNS::RR::LOC.3pm
Installing /usr/local/man/man3/Net::DNS::RR::SRV.3pm
Installing /usr/local/man/man3/Net::DNS::RR::RT.3pm
Installing /usr/local/man/man3/Net::DNS::RR::AFSDB.3pm
Installing /usr/local/man/man3/Net::DNS::RR::MINFO.3pm
Installing /usr/local/man/man3/Net::DNS::RR::MR.3pm
Installing /usr/local/man/man3/Net::DNS::FAQ.3pm
Installing /usr/local/man/man3/Net::DNS::RR::CNAME.3pm
Installing /usr/local/man/man3/Net::DNS::Question.3pm
Installing /usr/local/man/man3/Net::DNS::RR::SSHFP.3pm
Installing /usr/local/man/man3/Net::DNS::RR::NAPTR.3pm
Installing /usr/local/man/man3/Net::DNS::RR::SPF.3pm
Installing /usr/local/man/man3/Net::DNS::RR.3pm
Installing /usr/local/man/man3/Net::DNS::Packet.3pm
Installing /usr/local/man/man3/Net::DNS::RR::HINFO.3pm
Installing /usr/local/man/man3/Net::DNS::RR::MG.3pm
Installing /usr/local/man/man3/Net::DNS::RR::TKEY.3pm
Installing /usr/local/man/man3/Net::DNS::RR::NSAP.3pm
Installing /usr/local/man/man3/Net::DNS::RR::CERT.3pm
Installing /usr/local/man/man3/Net::DNS::Resolver::UNIX.3pm
Installing /usr/local/man/man3/Net::DNS::RR::MB.3pm
Installing /usr/local/man/man3/Net::DNS::Resolver::Base.3pm
Writing /usr/local/lib/perl/5.8.8/auto/Net/DNS/.packlist
Appending installation info to /usr/local/lib/perl/5.8.8/perllocal.pod
  /usr/bin/make install  -- OK

cpan> quit
Terminal does not support GetHistory.
Lockfile removed.

La page qui me guide indique qu’il faut redémarrer le système de mails :

# /etc/init.d/exim4 restart
Stopping MTA for restart: exim4_listener.
Restarting MTA: exim4.

Je réessaye la mise à jour des filtres de SpamAssassin :

sa-update

Euh… c’est court et bref !!!
Aucun message !

Mais en tout cas, plus d’erreur de compilation. ;-)

Je constate qu’un dossier a été ajouté dans la configuration de SpamAssassin :

# cd /etc/spamassassin/
ks12345:/etc/spamassassin# ls -l
total 20
-rw-r--r-- 1 root root  948 2007-02-15 06:28 init.pre
-rw-r--r-- 1 root root 1208 2007-02-15 06:28 local.cf
drwx------ 2 root root 4096 2007-10-30 02:15 sa-update-keys
-rw-r--r-- 1 root root 2179 2007-02-15 06:28 v310.pre
-rw-r--r-- 1 root root  806 2007-02-15 06:28 v312.pre

ks12345:/etc/spamassassin# cd sa-update-keys/
ks12345:/etc/spamassassin/sa-update-keys# ls -l
total 8
-rw------- 1 root root 2240 2007-10-30 02:15 pubring.gpg
-rw------- 1 root root    0 2007-10-30 02:15 pubring.gpg~
-rw------- 1 root root    0 2007-10-30 02:15 secring.gpg
-rw------- 1 root root 1200 2007-10-30 02:15 trustdb.gpg

Je dois encore m’assurer de l’exécution régulière de cette mise à jour sa-update.

Cette page « SARE rules » est intéressante aussi pour des règles à jour.

AJOUT le 4 novembre :

en lisant la page d’accueil de SpamAssassin Rules Emporium, je vois ceci :

Always run spamassassin -D –lint before making your rule changes live.

Euh… oui… ah…

J’essaye la commande :

# sa-update
# spamassassin -D --lint

Quelques heures après, en effet, les spams sont maintenant tous (ou presque… on verra après quelques jours) rejetés et déplacés automatiquement dans le dossier .Junk. :-)

Je vérifie l’entête de quelques spams, et effectivement le score de SpamAssassin s’est NETTEMENT amélioré. Les spams sont rejetés avec des scores de 6, 10 ou même 20 !!! (le minimum pour être considéré comme spam est 5). ;-)

Tout fonctionne bien maintenant.

Il me reste à automatiser la mise à jour des règles et la commande qui régénère ces règles pour SpamAssassin.

Donc SpamAssassin, c’est BIEN…
mais si vous restez avec le SpamAssassin de base, tel qu’installé par votre distribution, il est fort possible qu’il ne fera aucune mise à jour des règles…

Alors, pensez à un PC Windows avec un anti-virus qui tourne, mais qui n’a plus été mis à jour depuis 10 ou 12 mois !… :-(

Et bien, c’est la même chose (mais malgré tout avec moins de conséquence, à part des boîtes mails polluées par le spam) avec SpamAssassin !

Si vous ne le mettez pas à jour régulièrement, et régénérer les règles, il va vite perdre son efficacité … ;-)


Réseaux sociaux :
  • Print
  • Identi.ca
  • Twitter
  • Facebook
  • email
  • PDF
  • RSS
  • Digg
  • Sphinn
  • del.icio.us
  • Mixx
  • Google Bookmarks
  • MySpace
  • Netvibes
  • Technorati
  • Wikio
  • Wikio FR
  • LinkedIn
  • Add to favorites
  • FriendFeed
  • viadeo FR
  • Yahoo! Buzz
  • MisterWong
Si vous appréciez cet article, laissez un commentaire ou abonner vous au flux RSS feed pour avoir les articles futures délivrés dans votre Reader.

Articles relatifs

Written on octobre 30th, 2007 & filed under Serveurs Tags: , , ,