--- /dev/null
+spamassassin-cn
+~~~~~~~~~~~~~~~
+
+Ovo je dodatak na standardni SpamAssassin paket. Glavne razlike su u
+mogucnosti upravljanja postavkama (Bayes klasifikator, Razor2, DCC, Pyzor)
+u local.cf te potpuniji local.cf predlozak sa postavkama spremnim za
+produkciju. Takodjer, koriste se popularna SARE pravila kroz sa-update
+mehanizam (GPG potpisani updateovi), a i sam SpamAssassin se automatski
+nadogradjuje kroz receni mehanizam.
+
+Logovi koji se generiraju kroz nadogradjivanje SpamAssassina se
+standardno spremaju u /var/log/sa-update.log. Daljnje modifikacije pravila
+koja se skidaju su moguca kroz datoteku
+/etc/spamassassin/sa-update.channels.
+
+Standardno Pyzor i Bayes nisu ukljuceni iz sljedecih razloga:
+ * Pyzor posluzitelji uglavnom timeoutaju i time ne predstavljaju ozbiljan
+ izbor za klasifikaciju,
+ * Naivni Bayes klasifikator je inicijalno nauciti kroz uzorak od 1000
+ spamova i 1000 hamova koristeci sa-learn. Nakon toga je isti takodjer
+ potrebno redovno trenirati na pogreskama, sto dakle ocekuje prilicnu
+ paznju od sistemaca.
+
+Takodjer se standardno ne omogucuje ni SpamAssassin daemon odnosno spamd,
+buduci da je na instalacijama sa Amavis posluziteljem suvisan.
+
+ -- Dinko Korunic <kreator@carnet.hr> Fri, 14 Sep 2007 15:23:37 +0200
--- /dev/null
+spamassassin-cn (2:3.1.7-1) sarge; urgency=low
+
+ * kompletan prelazak na sa-update odnosno nadogradnju kroz channels
+ mehanizam
+ * ovisnost o novom SpamAssassin paketu (>= 3.1.7) s obzirom na sa-update
+ mehanizam
+
+ -- Dinko Korunic <kreator@carnet.hr> Fri, 14 Sep 2007 10:47:11 +0200
+
+spamassassin-cn (2:3.0.3-5) sarge; urgency=low
+
+ * dependancy na dcc-client (zbog use_dcc)
+ * automatsko ciscenje AWL iskljucivo ako postoji AWL
+
+ -- Dinko Korunic <kreator@carnet.hr> Wed, 29 Nov 2006 18:59:56 +0100
+
+spamassassin-cn (2:3.0.3-4) sarge; urgency=low
+
+ * bugfix u detekciji postojecih vrijednosti u local.cf
+ * automatsko ciscenje AWL jednom mjesecno i odmah tijekom instalacije
+ * provjera/download/dogradnja SA pravila odmah tijekom instalacije
+
+ -- Dinko Korunic <kreator@carnet.hr> Fri, 24 Nov 2006 13:42:43 +0100
+
+spamassassin-cn (2:3.0.3-3) sarge; urgency=high
+
+ * uveden RulesDuJour kao automatsko nadogradjivanje statickih uzoraka na
+ dnevnoj bazi: konfiguracija u /etc/default/rulesdujour
+ * cisci i detaljniji defaultni set konfiguracije u local.cf
+ * definiran set SARE pravila koji se koristi
+ * po defaultu se ne koristi Pyzor i DCC kao ni Bayes
+ * po defaultu ne dizemo spamd na sustavima sa amavisom
+ * debconf komunikacija s korisnikom oko DCC/Razor2/Pyzor/Bayes/spamd
+ * niz dodatnih poboljsanja u postinst skripti
+ * omogucen merge stare i nove konfiguracije u slucaju da je instaliran
+ dovoljno svjez SpamAssassin paket (>= 2:3.0.3-3)
+
+ -- Dinko Korunic <kreator@carnet.hr> Wed, 15 Nov 2006 12:14:55 +0100
+
+spamassassin-cn (2:3.0.3-2.1) sarge; urgency=low
+
+ * spamd se od sad vrti pod ovlastima spamd:spamd
+
+ -- Ivan 'ico' Rako <irako@srce.hr> Sat, 25 Mar 2006 18:22:32 +0100
+
+spamassassin-cn (2:3.0.3-2) sarge; urgency=low
+
+ * sigurnosno izdanje koje rjesava problem potencijalnog DoS napada putem
+ prevelikih zaglavlja (CAN-2005-1266)
+
+ -- Ivan 'ico' Rako <irako@srce.hr> Fri, 1 Jul 2005 12:17:05 +0200
+
+spamassassin-cn (2:3.0.2-1.3) sarge; urgency=low
+
+ * provjera da li postoji .pyzor/servers
+ * ubijanje zaostalih 'pyzor check' procesa
+
+ -- Ivan 'ico' Rako <irako@srce.hr> Mon, 25 Apr 2005 22:40:14 +0200
+
+spamassassin-cn (2:3.0.2-1.2) sarge; urgency=low
+
+ * ovisnost o cvs verziji pyzora koja ispravlja bug sa 'pyzor check'
+
+ -- Ivan 'ico' Rako <irako@srce.hr> Mon, 18 Apr 2005 13:17:19 +0200
+
+spamassassin-cn (2:3.0.2-1.1) sarge; urgency=low
+
+ * koristenje funkcija iz carnet-tools-cn (>= 2.0)
+ * pokrece 'pyzor discover' za korisnika amavis (ako postoji)
+
+ -- Ivan 'ico' Rako <irako@srce.hr> Sun, 3 Apr 2005 21:02:01 +0200
+
+spamassassin-cn (2:3.0.2-1) sarge; urgency=low
+
+ * novi upstream
+ * novi /etc/default/spamassassin
+ * rewrite_subject -> rewrite_header u local.cf
+ * potpuno novi postinst
+
+ -- Ivan 'ico' Rako <irako@srce.hr> Tue, 18 Jan 2005 10:23:36 +0100
+
+spamassassin-cn (2:2.64-1) sarge; urgency=low
+
+ * dodan epoch zbog epocha na iso imageu
+ * maknuta ovisnost o razoru jer ga trenutno nema u testingu
+ * micanje /razor-agent.log-a u /tmp
+
+ -- Ivan 'ico' Rako <irako@srce.hr> Sun, 5 Sep 2004 14:00:19 +0200
+
+spamassassin-cn (2.63-2) sarge; urgency=low
+
+ * /usr/local/doc -> /usr/share/doc
+ * kozmetika postinsta
+
+ -- Ivan 'ico' Rako <irako@srce.hr> Thu, 24 Jun 2004 10:54:50 +0200
+
+spamassassin-cn (2.63-1) sarge; urgency=low
+
+ * nova upstream verzija
+ * hrpa ispravljenih sitnih bugova
+ * izmjena /etc/spamassassin/local.cf
+
+ -- Ivan 'ico' Rako <irako@srce.hr> Fri, 12 Dec 2003 17:31:05 +0100
+
+spamassassin-cn (2.61) sarge; urgency=low
+
+ * nova upstream verzija
+
+ -- Ivan 'ico' Rako <irako@srce.hr> Fri, 12 Dec 2003 17:31:05 +0100
+
--- /dev/null
+#!/usr/bin/perl
+#
+# TODO: should this be made a top-level script, called "sa-awl"?
+
+sub usage {
+ die "
+usage: check_whitelist [--clean] [--min n] [dbfile]
+";
+}
+
+use strict;
+use Fcntl;
+use Getopt::Long;
+
+use vars qw(
+ $opt_clean $opt_min $opt_help
+ );
+
+GetOptions(
+ 'clean' => \$opt_clean,
+ 'min:i' => \$opt_min,
+ 'help' => \$opt_help
+) or usage();
+$opt_help and usage();
+
+$opt_min ||= 2;
+
+BEGIN { @AnyDBM_File::ISA = qw(DB_File GDBM_File NDBM_File SDBM_File); }
+use AnyDBM_File ;
+
+my $db;
+if ($#ARGV == -1) {
+ $db = $ENV{HOME}."/.spamassassin/auto-whitelist";
+} else {
+ $db = $ARGV[0];
+}
+
+my %h;
+if ($opt_clean) {
+ tie %h, "AnyDBM_File",$db, O_RDWR,0600
+ or die "Cannot open r/w file $db: $!\n";
+} else {
+ tie %h, "AnyDBM_File",$db, O_RDONLY,0600
+ or die "Cannot open file $db: $!\n";
+}
+
+my @k = grep(!/totscore$/,keys(%h));
+for my $key (@k)
+{
+ my $totscore = $h{"$key|totscore"};
+ my $count = $h{$key};
+ next unless defined($totscore);
+
+ if ($opt_clean) {
+ if ($count >= $opt_min) { next; }
+ print "cleaning: ";
+ }
+
+ printf "% 8.1f %15s -- %s\n",
+ $totscore/$count, (sprintf "(%.1f/%d)",$totscore,$count),
+ $key;
+
+ if ($opt_clean) {
+ delete $h{"$key|totscore"};
+ delete $h{$key};
+ }
+}
+untie %h;
+
+=head1 NAME
+
+check_whitelist - examine and manipulate SpamAssassin's auto-whitelist db
+
+=head1 SYNOPSIS
+
+B<check_whitelist> [--clean] [--min n] [dbfile]
+
+=head1 DESCRIPTION
+
+Check or clean a SpamAssassin auto-whitelist (AWL) database file.
+
+The name of the file is specified after any options, as C<dbfile>.
+The default is C<$HOME/.spamassassin/auto-whitelist>.
+
+=head1 OPTIONS
+
+=over 4
+
+=item --clean
+
+Clean out infrequently-used AWL entries. The C<--min> switch can be
+used to select the threshold at which entries are kept or deleted.
+
+=item --min n
+
+Select the threshold at which entries are kept or deleted when C<--clean> is
+used. The default is C<2>, so entries that have only been seen once are
+deleted.
+
+=back
+
+=head1 OUTPUT
+
+The output looks like this:
+
+ AVG (TOTSCORE/COUNT) -- EMAIL|ip=IPBASE
+
+For example:
+
+ 0.0 (0.0/7) -- dawson@example.com|ip=208.192
+ 21.8 (43.7/2) -- mcdaniel_2s2000@example.com|ip=200.106
+
+C<AVG> is the average score; C<TOTSCORE> is the total score of all mails seen
+so far; C<COUNT> is the number of messages seen from that sender; C<EMAIL> is
+the sender's email address, and C<IPBASE> is the B<AWL base IP address>.
+
+B<AWL base IP address> is a way to identify the sender's IP address they
+frequently send from, in an approximate way, but remaining hard for spammers to
+spoof. The algorithm is as follows:
+
+ - take the last Received header that contains a public IP address -- namely
+ one which is not in private, unrouted IP space.
+
+ - chop off the last two octets, assuming that the user may be in an ISP's
+ dynamic address pool.
+
+=cut
+
--- /dev/null
+spamassassin-cn (2:3.1.7-1) sarge; urgency=low
+
+ * kompletan prelazak na sa-update odnosno nadogradnju kroz channels
+ mehanizam
+ * ovisnost o novom SpamAssassin paketu (>= 3.1.7) s obzirom na sa-update
+ mehanizam
+
+ -- Dinko Korunic <kreator@carnet.hr> Fri, 14 Sep 2007 10:47:11 +0200
+
+spamassassin-cn (2:3.0.3-5) sarge; urgency=low
+
+ * dependancy na dcc-client (zbog use_dcc)
+ * automatsko ciscenje AWL iskljucivo ako postoji AWL
+
+ -- Dinko Korunic <kreator@carnet.hr> Wed, 29 Nov 2006 18:59:56 +0100
+
+spamassassin-cn (2:3.0.3-4) sarge; urgency=low
+
+ * bugfix u detekciji postojecih vrijednosti u local.cf
+ * automatsko ciscenje AWL jednom mjesecno i odmah tijekom instalacije
+ * provjera/download/dogradnja SA pravila odmah tijekom instalacije
+
+ -- Dinko Korunic <kreator@carnet.hr> Fri, 24 Nov 2006 13:42:43 +0100
+
+spamassassin-cn (2:3.0.3-3) sarge; urgency=high
+
+ * uveden RulesDuJour kao automatsko nadogradjivanje statickih uzoraka na
+ dnevnoj bazi: konfiguracija u /etc/default/rulesdujour
+ * cisci i detaljniji defaultni set konfiguracije u local.cf
+ * definiran set SARE pravila koji se koristi
+ * po defaultu se ne koristi Pyzor i DCC kao ni Bayes
+ * po defaultu ne dizemo spamd na sustavima sa amavisom
+ * debconf komunikacija s korisnikom oko DCC/Razor2/Pyzor/Bayes/spamd
+ * niz dodatnih poboljsanja u postinst skripti
+ * omogucen merge stare i nove konfiguracije u slucaju da je instaliran
+ dovoljno svjez SpamAssassin paket (>= 2:3.0.3-3)
+
+ -- Dinko Korunic <kreator@carnet.hr> Wed, 15 Nov 2006 12:14:55 +0100
+
+spamassassin-cn (2:3.0.3-2.1) sarge; urgency=low
+
+ * spamd se od sad vrti pod ovlastima spamd:spamd
+
+ -- Ivan 'ico' Rako <irako@srce.hr> Sat, 25 Mar 2006 18:22:32 +0100
+
+spamassassin-cn (2:3.0.3-2) sarge; urgency=low
+
+ * sigurnosno izdanje koje rjesava problem potencijalnog DoS napada putem
+ prevelikih zaglavlja (CAN-2005-1266)
+
+ -- Ivan 'ico' Rako <irako@srce.hr> Fri, 1 Jul 2005 12:17:05 +0200
+
+spamassassin-cn (2:3.0.2-1.3) sarge; urgency=low
+
+ * provjera da li postoji .pyzor/servers
+ * ubijanje zaostalih 'pyzor check' procesa
+
+ -- Ivan 'ico' Rako <irako@srce.hr> Mon, 25 Apr 2005 22:40:14 +0200
+
+spamassassin-cn (2:3.0.2-1.2) sarge; urgency=low
+
+ * ovisnost o cvs verziji pyzora koja ispravlja bug sa 'pyzor check'
+
+ -- Ivan 'ico' Rako <irako@srce.hr> Mon, 18 Apr 2005 13:17:19 +0200
+
+spamassassin-cn (2:3.0.2-1.1) sarge; urgency=low
+
+ * koristenje funkcija iz carnet-tools-cn (>= 2.0)
+ * pokrece 'pyzor discover' za korisnika amavis (ako postoji)
+
+ -- Ivan 'ico' Rako <irako@srce.hr> Sun, 3 Apr 2005 21:02:01 +0200
+
+spamassassin-cn (2:3.0.2-1) sarge; urgency=low
+
+ * novi upstream
+ * novi /etc/default/spamassassin
+ * rewrite_subject -> rewrite_header u local.cf
+ * potpuno novi postinst
+
+ -- Ivan 'ico' Rako <irako@srce.hr> Tue, 18 Jan 2005 10:23:36 +0100
+
+spamassassin-cn (2:2.64-1) sarge; urgency=low
+
+ * dodan epoch zbog epocha na iso imageu
+ * maknuta ovisnost o razoru jer ga trenutno nema u testingu
+ * micanje /razor-agent.log-a u /tmp
+
+ -- Ivan 'ico' Rako <irako@srce.hr> Sun, 5 Sep 2004 14:00:19 +0200
+
+spamassassin-cn (2.63-2) sarge; urgency=low
+
+ * /usr/local/doc -> /usr/share/doc
+ * kozmetika postinsta
+
+ -- Ivan 'ico' Rako <irako@srce.hr> Thu, 24 Jun 2004 10:54:50 +0200
+
+spamassassin-cn (2.63-1) sarge; urgency=low
+
+ * nova upstream verzija
+ * hrpa ispravljenih sitnih bugova
+ * izmjena /etc/spamassassin/local.cf
+
+ -- Ivan 'ico' Rako <irako@srce.hr> Fri, 12 Dec 2003 17:31:05 +0100
+
+spamassassin-cn (2.61) sarge; urgency=low
+
+ * nova upstream verzija
+
+ -- Ivan 'ico' Rako <irako@srce.hr> Fri, 12 Dec 2003 17:31:05 +0100
+
--- /dev/null
+Source: spamassassin-cn
+Section: mail
+Priority: optional
+Maintainer: Dinko Korunic <kreator@carnet.hr>
+Build-Depends: debhelper (>= 4)
+Standards-Version: 3.7.2
+
+Package: spamassassin-cn
+Architecture: any
+Depends: spamassassin (>= 3.1.7-1~bpo.1), razor (>= 2.670-1sarge2), libnet-dns-perl, carnet-tools-cn (>= 2.0), dcc-client (>= 1.2.74-2), gnupg (>= 1.4.1-1.sarge7)
+Conflicts: pyzor (<< 1:0.4.0+cvs20030201-3)
+Recommends: amavis
+Description: Perl-based spam filter using text analysis
+ SpamAssassin is a very powerful and fully configurable spam filter
+ with numerous features including automatic white-listing, RBL
+ testing, Bayesian analysis, header and body text analysis. It is
+ designed to be called from a user's .procmail or .forward file, but
+ can also be integrated into a Mail Transport Agent (MTA).
+ .
+ This is a CARNet Debian customization package which enables sa-update,
+ and brings several useful SARE recipes, as well as more full-fledged
+ default configuration.
--- /dev/null
+#!/bin/sh
+# Dinko Korunic <kreator@carnet.hr>
+
+exec 1>> /var/log/sa-update.log
+exec 2>&1
+
+# announce
+echo "$(date +'%d-%m-%Y %T'): Fetching new SA rules..."
+
+# update SA from normal SA updates + SARE channels
+if [ -e /etc/spamassassin/sa-update.channels ]; then
+ sa-update \
+ --channelfile /etc/spamassassin/sa-update.channels \
+ --gpgkey 856AA88A \
+ --gpgkey 24F434CE \
+ --gpgkey BDE9DC10 || \
+ ( echo "$(date +'%d-%m-%Y %T'): No new rules. Exiting now."; exit )
+fi
+
+# restart of services
+echo "$(date +'%d-%m-%Y %T'): Will restart services due to updated rules..."
+if [ -x /usr/sbin/invoke-rc.d ]; then
+ [ -x /etc/init.d/spamassassin ] && \
+ invoke-rc.d --quiet spamassassin restart
+ [ -x /etc/init.d/amavis ] && \
+ invoke-rc.d --quiet amavis restart
+ [ -x /etc/init.d/postfix ] && \
+ invoke-rc.d --quiet postfix restart
+else
+ [ -x /etc/init.d/spamassassin ] && \
+ /etc/init.d/spamassassin restart
+ [ -x /etc/init.d/amavis ] && \
+ /etc/init.d/amavis restart
+ [ -x /etc/init.d/postfix ] && \
+ /etc/init.d/postfix restart
+fi
--- /dev/null
+#!/bin/sh
+# Dinko Korunic <kreator@carnet.hr>
+
+# autoclean SA AWL
+if getent passwd amavis >/dev/null 2>&1; then
+ if [ -s ~amavis/.spamassassin/auto-whitelist ]; then
+ su -c '/usr/bin/check_whitelist --clean' - amavis >/dev/null 2>&1
+ fi
+fi
--- /dev/null
+etc/spamassassin
+etc/cron.daily
+etc/logrotate.d
--- /dev/null
+changelog.CARNet
+README.CARNet
--- /dev/null
+etc-default-spamassassin-non-root
+etc-default-spamassassin-root
--- /dev/null
+sa-update.channels etc/spamassassin
+sa-keys.pgp etc/spamassassin
+spamassassin-cn etc/logrotate.d
+check_whitelist usr/bin
--- /dev/null
+#!/bin/sh
+# postinst script for spamassassin-cn
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <postinst> `configure' <most-recently-configured-version>
+# * <old-postinst> `abort-upgrade' <new version>
+# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+# <new-version>
+# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+# <failed-install-package> <version> `removing'
+# <conflicting-package> <version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+#
+
+case "$1" in
+ configure|reconfigure)
+ # continue below
+ ;;
+
+ *)
+ exit 0
+ ;;
+esac
+
+# import CN-functions
+. /usr/share/carnet-tools/functions.sh
+
+# load Debconf
+. /usr/share/debconf/confmodule
+db_version 2.0
+
+umask 022
+
+db_get spamassassin-cn/usebayes || true
+use_bayes="$RET"
+
+db_get spamassassin-cn/userazor2 || true
+use_razor2="$RET"
+
+db_get spamassassin-cn/usedcc || true
+use_dcc="$RET"
+
+db_get spamassassin-cn/runservice || true
+run_service="$RET"
+
+db_get spamassassin-cn/runasuser || true
+run_as_user="$RET"
+
+db_stop || true
+
+# run spamd service as non-root
+if [ "$run_as_user" = "non-root" ]; then
+ if ! grep -q '^OPTIONS=".*username=spamd"' \
+ /etc/default/spamassassin; then
+ if [ -x /usr/sbin/invoke-rc.d ]; then
+ invoke-rc.d --quiet spamassassin stop
+ else
+ /etc/init.d/spamassassin stop
+ fi
+ rstart=yes
+ fi
+
+ if ! getent group spamd >/dev/null 2>&1; then
+ echo "CN: Adding group spamd"
+ addgroup --system spamd >/dev/null 2>&1
+ fi
+ if ! getent passwd spamd >/dev/null 2>&1; then
+ echo "CN: Adding user spamd"
+ adduser --system --no-create-home --home /etc/spamassassin \
+ --gecos "SpamAssassin User" \
+ --ingroup spamd --disabled-password spamd >/dev/null 2>&1
+ fi
+
+ if [ ! -d "/var/run/spamd" ]; then
+ mkdir /var/run/spamd
+ fi
+
+ chown -R spamd:spamd /var/run/spamd/
+ dpkg-statoverride --remove /var/run/spamd >/dev/null 2>&1 || true
+ dpkg-statoverride --update --add spamd spamd 755 /var/run/spamd \
+ >/dev/null 2>&1 || true
+
+# nope, run spamd as root
+elif [ "$run_as_user" = "root" ]; then
+ if grep -q '^OPTIONS=".*username=spamd"' \
+ /etc/default/spamassassin; then
+ if [ -x /usr/sbin/invoke-rc.d ]; then
+ invoke-rc.d --quiet spamassassin stop
+ else
+ /etc/init.d/spamassassin stop
+ fi
+ restart=yes
+ fi
+
+ if [ -d "/var/run/spamd" ]; then
+ rm -rf /var/run/spamd
+ fi
+ dpkg-statoverride --remove /var/run/spamd >/dev/null 2>&1 || true
+fi
+
+examdir="/usr/share/doc/spamassassin-cn/examples"
+confdir="/etc/spamassassin"
+
+# check and replace local.cf if needed
+if [ -f $examdir/local.cf ]; then
+ # non-existant or zero
+ if [ ! -s $confdir/local.cf ]; then
+ rm -f $confdir/local.cf
+ fi
+
+ # old enough
+ if [ -s $confdir/local.cf ] &&
+ dpkg --compare-versions "$2" lt "2:3.0.3-3"; then
+ echo "CN: Backing up old version of $confdir/local.cf in /var/backups"
+ cp_backup_conffile $confdir/local.cf
+ rm -f $confdir/local.cf
+ fi
+
+ # copy template
+ cp -f $examdir/local.cf $confdir/local.cf.$$
+
+ # merge both configurations
+ if [ -s $confdir/local.cf ]; then
+ #cat $confdir/local.cf > $confdir/local.cf.$$
+
+ # merge old and new in one conf, primarily respecting old
+ script='
+ my %confhash = ();
+ my ($key, $value);
+
+ # read template
+ open (NEW, "<", $ARGV[0]);
+ while (<NEW>)
+ {
+ chomp();
+ if (/^(\S+)\s+(.+)$/o)
+ {
+ my ($key, $value) = ($1, $2);
+ $hash{$key} = $value;
+ }
+ }
+ close(NEW);
+
+ # read old configuration
+ open (OLD, "<", $ARGV[1]);
+ while (<OLD>)
+ {
+ chomp();
+ if (/^(\S+)\s+(.+)$/o)
+ {
+ my ($key, $value) = ($1, $2);
+ delete($hash{$key}) if exists($hash{$key});
+ print $_, "\n";
+ }
+ else
+ {
+ print $_, "\n";
+ }
+ }
+
+ # print missing configuration lines
+ for (keys %hash)
+ {
+ print $_, " ", $hash{$_}, "\n";
+ }
+ close(OLD);
+ '
+ perl -e "$script" $confdir/local.cf.$$ $confdir/local.cf > \
+ $confdir/local.cf.$$.$$ && \
+ mv -f $confdir/local.cf.$$.$$ $confdir/local.cf.$$
+
+ rm -f $confdir/local.cf.$$.$$
+ fi
+
+ # set bayes/razor2/dcc in local.cf.$$
+ for i in bayes razor2 dcc; do
+ use_name="use_$i"
+ use_value=$(eval echo \$$use_name)
+ if [ "$use_value" = "true" ]; then
+ use_value=1
+ else
+ use_value=0
+ fi
+ cp_check_and_sed "^$use_name " \
+ "s/^$use_name .*/$use_name $use_value/g" \
+ $confdir/local.cf.$$ || true
+ done
+
+ # different than template
+ if ! cmp -s $confdir/local.cf.$$ $confdir/local.cf; then
+ # backup if not zero size
+ if [ -s $confdir/local.cf ]; then
+ echo "CN: Backing up old version of $confdir/local.cf in /var/backups"
+ cp_backup_conffile $confdir/local.cf
+ fi
+
+ echo "CN: Installing new version of $confdir/local.cf"
+ mv -f $confdir/local.cf.$$ $confdir/local.cf
+
+ restart=yes
+ fi
+
+ rm -f $confdir/local.cf.$$
+fi
+
+# check and replace /etc/default/spamasassin if needed
+if [ "$run_service" = "true" -a \
+ -f $examdir/etc-default-spamassassin-$run_as_user ]; then
+ if ! cmp -s $examdir/etc-default-spamassassin-$run_as_user \
+ /etc/default/spamassassin; then
+ echo "CN: Backing up old version of /etc/default/spamassassin in /var/backups"
+ cp_backup_conffile /etc/default/spamassassin
+
+ echo "CN: Installing new version of /etc/default/spamassassin"
+ cp -pf $examdir/etc-default-spamassassin-$run_as_user \
+ /etc/default/spamassassin
+
+ restart=yes
+ fi
+fi
+
+# do we run spamd at all?
+if [ "$run_service" = "true" ]; then
+ i_run_service=1
+else
+ i_run_service=0
+fi
+
+# enable or disable spamd in /etc/default/spamassassin
+if [ -f "/etc/default/spamassassin" ]; then
+ cp_check_and_sed '^ENABLED=' \
+ "s/^ENABLED=.*/ENABLED=$i_run_service/g" \
+ /etc/default/spamassassin || true
+ if [ "$run_service" = "true" ]; then
+ echo "CN: Will start spamd by default"
+ else
+ echo "CN: Will not start spamd by default"
+ fi
+ restart=yes
+fi
+
+# fix old /razor-agent.log bug
+if [ -f "/razor-agent.log" ]; then
+ mv -f /razor-agent.log /tmp
+ echo "CN: Moving razor logs (razor-agent.log) to /tmp"
+fi
+
+# fix razor agent position
+if [ -f "/etc/razor/razor-agent.conf" ]; then
+ cp_check_and_sed '^.*logfile.*=' \
+ "s,^.*logfile.*=.*,logfile=sys-syslog,g" \
+ /etc/razor/razor-agent.conf || true
+ restart=yes
+fi
+
+# cleanup the AWL
+if getent passwd amavis >/dev/null 2>&1; then
+ if [ -s ~amavis/.spamassassin/auto-whitelist ]; then
+ echo "CN: Cleaning the Amavis auto-whitelist"
+ su -c '/usr/bin/check_whitelist --clean' - amavis >/dev/null 2>&1
+ fi
+fi
+
+# import SA keys
+echo "CN: Importing SpamAssassin and SARE public PGP keys"
+echo "$(date +'%d-%m-%Y %T'): Importing new SA keys..." >> \
+ /var/log/sa-update.log
+if [ ! -d /etc/spamassassin/sa-update-keys ]; then
+ mkdir -p /etc/spamassassin/sa-update-keys
+ touch /etc/spamassassin/sa-update-keys/pubring.gpg \
+ /etc/spamassassin/sa-update-keys/secring.gpg
+ chmod -R go-rwx /etc/spamassassin/sa-update-keys
+fi
+sa-update --import /etc/spamassassin/sa-keys.pgp \
+ >>/var/log/sa-update.log 2>&1 || true
+
+# clean old RulesDuJour rules
+echo "CN: Cleaning old RulesDuJour and SARE rules..."
+rm -rf /etc/spamassassin/*_sare_*.cf /etc/spamassassin/RulesDuJour
+echo "CN: Please use /etc/spamassassin/sa-update.channels in future!"
+
+# get/update the rules
+echo "CN: Downloading new SpamAssassin rules and updating in background"
+echo "$(date +'%d-%m-%Y %T'): Fetching new SA rules..." >> \
+ /var/log/sa-update.log
+sa-update \
+ --channelfile /etc/spamassassin/sa-update.channels \
+ --gpgkey 856AA88A \
+ --gpgkey 24F434CE \
+ --gpgkey BDE9DC10 >>/var/log/sa-update.log 2>&1 || true
+echo "CN: SpamAssassin updates are now logged at /var/log/sa-update.log"
+
+# restart the spamasassin
+if [ "x$restart" = "xyes" ]; then
+ if [ -x /usr/sbin/invoke-rc.d ]; then
+ pkill -f /usr/sbin/spamd || true
+ invoke-rc.d --quiet spamassassin restart
+ else
+ /etc/init.d/spamassassin restart
+ fi
+fi
+
+# restart the amavis
+if [ "x$restart" = "xyes" -a -x /etc/init.d/amavis ]; then
+ if [ -x /usr/sbin/invoke-rc.d ]; then
+ invoke-rc.d --quiet amavis restart
+ else
+ /etc/init.d/amavis restart
+ fi
+fi
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
--- /dev/null
+#!/bin/sh
+# postrm script for bind9-cn
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <postrm> `remove'
+# * <postrm> `purge'
+# * <old-postrm> `upgrade' <new-version>
+# * <new-postrm> `failed-upgrade' <old-version>
+# * <new-postrm> `abort-install'
+# * <new-postrm> `abort-install' <old-version>
+# * <new-postrm> `abort-upgrade' <old-version>
+# * <disappearer's-postrm> `disappear' <r>overwrit>r> <new-version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+case "$1" in
+ purge)
+ # continue below
+ ;;
+
+ *)
+ exit 0
+ ;;
+esac
+
+# remove spamd run directory
+dpkg-statoverride --remove /var/run/spamd >/dev/null 2>&1 || true
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
--- /dev/null
+#!/usr/bin/make -f
+# Sample debian/rules that uses debhelper.
+# This file is public domain software, originally written by Joey Hess.
+#
+# This version is for packages that are architecture independent.
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+build: build-stamp
+build-stamp:
+ dh_testdir
+
+ # Add here commands to compile the package.
+ #$(MAKE)
+
+ touch build-stamp
+
+clean:
+ dh_testdir
+ dh_testroot
+ rm -f build-stamp
+
+ # Add here commands to clean up after the build process.
+ #-$(MAKE) clean
+ #-$(MAKE) distclean
+
+ dh_clean
+
+install: build
+ dh_testdir
+ dh_testroot
+ dh_clean -k
+ dh_installdirs
+
+ # Add here commands to install the package into debian/<packagename>.
+ #$(MAKE) prefix=`pwd`/debian/`dh_listpackages`/usr install
+
+# Build architecture-independent files here.
+binary-indep: build install
+ dh_testdir
+ dh_testroot
+ dh_installchangelogs
+ dh_installdocs
+ dh_installexamples
+ dh_install
+# dh_installmenu
+# dh_installdebconf
+# dh_installlogrotate
+# dh_installemacsen
+# dh_installcatalogs
+# dh_installpam
+# dh_installmime
+# dh_installinit
+ dh_installcron
+# dh_installinfo
+# dh_undocumented
+ dh_installman
+ dh_link
+ dh_compress
+ dh_fixperms
+# dh_perl
+# dh_python
+ dh_installdeb
+ dh_gencontrol
+ dh_md5sums
+ dh_builddeb
+
+# Build architecture-dependent files here.
+binary-arch: build install
+# We have nothing to do by default.
+
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary install
--- /dev/null
+# /etc/default/spamassassin
+# Duncan Findlay
+
+# WARNING: please read README.spamd before using.
+# There may be security risks.
+
+# Change to one to enable spamd
+ENABLED=1
+
+# Options
+# See man spamd for possible options. The -d option is automatically added.
+
+# NOTE: version 3.0.x has switched to a "preforking" model, so you
+# need to make sure --max-children is not set to anything higher than
+# 5, unless you know what you're doing.
+
+OPTIONS="--create-prefs --max-children 5 --helper-home-dir --username=spamd"
+
+# Pid file
+# Where should spamd write its PID to file? If you use the -u or
+# --username option above, this needs to be writable by that user.
+# Otherwise, the init script will not be able to shut spamd down.
+PIDFILE="/var/run/spamd/spamd.pid"
+
+# Set nice level of spamd
+#NICE="--nicelevel 15"
--- /dev/null
+# /etc/default/spamassassin
+# Duncan Findlay
+
+# WARNING: please read README.spamd before using.
+# There may be security risks.
+
+# Change to one to enable spamd
+ENABLED=1
+
+# Options
+# See man spamd for possible options. The -d option is automatically added.
+
+# NOTE: version 3.0.x has switched to a "preforking" model, so you
+# need to make sure --max-children is not set to anything higher than
+# 5, unless you know what you're doing.
+
+OPTIONS="--create-prefs --max-children 5 --helper-home-dir"
+
+# Pid file
+# Where should spamd write its PID to file? If you use the -u or
+# --username option above, this needs to be writable by that user.
+# Otherwise, the init script will not be able to shut spamd down.
+PIDFILE="/var/run/spamd.pid"
+
+# Set nice level of spamd
+#NICE="--nicelevel 15"
--- /dev/null
+# This is the right place to customize your installation of SpamAssassin.
+# See 'perldoc Mail::SpamAssassin::Conf' for details of what can be
+# tweaked.
+###########################################################################
+
+# Bayes database configuration
+# By default no Bayes, since it requires much administrator intervention (ie.
+# feeding hams and spams until mature, regular retraining, etc)
+use_bayes 0
+use_bayes_rules 0
+bayes_auto_learn 0
+bayes_auto_learn_threshold_nonspam -0.001
+bayes_auto_learn_threshold_spam 10.0
+bayes_use_hapaxes 1
+bayes_use_chi2_combining 1
+bayes_auto_expire 1
+bayes_ignore_header ReSent-Date
+bayes_ignore_header ReSent-From
+bayes_ignore_header ReSent-Message-ID
+bayes_ignore_header ReSent-Subject
+bayes_ignore_header ReSent-To
+bayes_ignore_header Resent-Date
+bayes_ignore_header Resent-From
+bayes_ignore_header Resent-Message-ID
+bayes_ignore_header Resent-Subject
+bayes_ignore_header Resent-To
+bayes_ignore_header X-Received-From-IP
+bayes_ignore_header X-Virus-Scanned
+bayes_ignore_header X-Spam-Status
+bayes_ignore_header X-Spam-Level
+bayes_ignore_header X-Sender
+bayes_ignore_header X-Mailer
+bayes_ignore_header X-CRM114
+bayes_ignore_header X-SA-Exim
+bayes_ignore_header X-PerlMX-Spam
+
+# Blackhole list options
+skip_rbl_checks 0
+rbl_timeout 10
+dns_available yes
+
+# Vipul's Razor options
+use_razor2 1
+razor_timeout 10
+
+# Distributed Checksum Clearinghouse (DCC) options
+use_dcc 1
+dcc_timeout 10
+dcc_timeout 10
+dcc_body_max 999999
+dcc_fuz1_max 999999
+dcc_fuz2_max 999999
+
+# Pyzor options!
+# We don't use it -- the project seems dead
+use_pyzor 0
+pyzor_timeout 10
+pyzor_max 5
+pyzor_path /usr/bin/pyzor
+
+# Auto-whitelist to track long-term average score for sender
+# AWL should be cleaned from time to time with check_whitelist program
+use_auto_whitelist 1
+
+# Break the X-Spam-Status header into multiple lines
+fold_headers 1
+
+# Encapsulate spam in an attachment
+# We don't change e-mail except adding X-Spam headers
+report_safe 0
+
+# Mail using languages used in these country codes will not be marked
+# as being possibly spam in a foreign language.
+# - english, croatian, bosnian, finnish, german, slovenian
+ok_languages en hr bs fi de sl
+
+# Privileged options
+allow_user_rules 0
+
+# Required score before a mail is considered spam
+# The following option has no effect if Amavisd is used, edit only if
+# standalone SA is used
+#required_score 6.3
+
+# Rewrite headers rules
+# The following option has no effect if Amavisd is used, edit only if
+# standalone SA is used
+#rewrite_header subject [SPAM:_SCORE_]
+
+# Specific whitelisting
+whitelist_from pomoc@iskon.hr
--- /dev/null
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: SKS 1.0.10
+
+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
+/vnTLxFoNsu4Ce42nAQ/A/jR
+=SY0J
+-----END PGP PUBLIC KEY BLOCK-----
+
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: SKS 1.0.10
+
+mQGiBETpq0cRBAD4H/0KXKzr7rrTzOJGpLYm/qNW6GBC+Jqzn6fYSyE5XKFZpaY6SzIL51Bc
+bhri7zzagMVWo7qNSGbhY6IG+drr99vURgDfxW4PC5DtqPsz/mU7RYIUnoaLL/p2XgceM6P/
+xxe/Gm/3CLgHvPvZkGw5y7scnNJLgYRxncX8eF5B3wCggB9ODKfecaYGz/8pp/3P+/NnS3UD
++wdRbxk8pA/vN3OnhLL1+7LK6upI0qJ+VHBeiK+vdVJ0DJ7VqMYKVCpvy39g1Hw1H45r6evZ
+8F5B7sRRJO27MU8zq2yX+WOo9sWU0FULSLJDb3RL957Q1aXz9t1NTVmjpbRNikGQ8RYSAFIq
+hRzasZGyHzQVM0Ylt4EIWcSk5BPKBACoROiRhXNmE4cTPNuAyMKigHYhncr7MofH8QkPqryS
+yooBo6CnyZuiIlhHJrjTM2Wov8P6HiLBijquoZO//3eItevdy4iuth0M6q/r5gHU8jZ3YaF/
+wS6tdRwMKk8T7rMQvQ2/YmlfnZpJGz0UOuOQigdOwuF8qOiEdRsy04/zTbRfT3BlbmNvbXB1
+dGluZyBUZWNobm9sb2dpZXMgKEtleSB0byBzaWduIGFsbCBmaWxlcyBmcm9tIG9wZW5wcm90
+ZWN0LmNvbSkgPGVtYWlsQG9wZW5wcm90ZWN0LmNvbT6IXgQTEQIAHgUCROmrRwIbAwYLCQgH
+AwIDFQIDAxYCAQIeAQIXgAAKCRAljNs6vencED6OAJwJxSxBE17IYlu6NUDH+cv9jXxFcACf
+SH6QWe0MBuOpEYmJwfcNpVFguvU=
+=vRh7
+-----END PGP PUBLIC KEY BLOCK-----
+
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1.4.4 (GNU/Linux)
+
+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
+=eTcH
+-----END PGP PUBLIC KEY BLOCK-----
--- /dev/null
+updates.spamassassin.org
+saupdates.openprotect.com
+70_sare_adult.cf.sare.sa-update.dostech.net
+70_sare_bayes_poison_nxm.cf.sare.sa-update.dostech.net
+70_sare_evilnum0.cf.sare.sa-update.dostech.net
+70_sare_evilnum1.cf.sare.sa-update.dostech.net
+70_sare_genlsubj.cf.sare.sa-update.dostech.net
+70_sare_header.cf.sare.sa-update.dostech.net
+70_sare_html.cf.sare.sa-update.dostech.net
+70_sare_obfu0.cf.sare.sa-update.dostech.net
+70_sare_obfu1.cf.sare.sa-update.dostech.net
+70_sare_oem.cf.sare.sa-update.dostech.net
+70_sare_random.cf.sare.sa-update.dostech.net
+70_sare_specific.cf.sare.sa-update.dostech.net
+70_sare_spoof.cf.sare.sa-update.dostech.net
+70_sare_stocks.cf.sare.sa-update.dostech.net
+70_sare_unsub.cf.sare.sa-update.dostech.net
+70_sare_uri0.cf.sare.sa-update.dostech.net
+70_sare_uri1.cf.sare.sa-update.dostech.net
+72_sare_bml_post25x.cf.sare.sa-update.dostech.net
+72_sare_redirect_post3.0.0.cf.sare.sa-update.dostech.net
+99_sare_fraud_post25x.cf.sare.sa-update.dostech.net
--- /dev/null
+/var/log/sa-update.log {
+ weekly
+ missingok
+ rotate 12
+ compress
+ delaycompress
+ create 640 root root
+}