Bonkersoft Support

Support Seite der Bonkersoft
spamassassin mit postfix und procmail installieren.
 
Mail
Mailserver Spam und Vieren abwehr
Beitrag von: Christian
erstellt: 30.12.2009 10:41:46
Benötigte Pakete für spamassassin installieren:
apt install spamassassin razor pyzor libmoox-types-mooselike-numeric-perl libmail-spf-perl


spamd Benutzer anlegen:
Wird nicht benötigt. Debian legt den Benutzer debian-spamd  an
debian-spamd benötigt noch eine shell:
usermod -s /bin/sh debian-spamd


Die Datei /etc/default/spamassassin  muss noch angepasst werden.
Z.b.
# /etc/default/spamd
# 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.
 
# SpamAssassin uses a preforking model, so be careful! You need to
# make sure --max-children is not set to anything higher than 5,
# unless you know what you're doing.
 
#OPTIONS="-m 2 -c -u debian-spamd -l --socketpath=/var/run/spamd.sock --siteconfigpath=/etc/spamassassin"
OPTIONS="-l -x -u debian-spamd -m 5 -H /var/lib/spamassassin --socketpath=/var/run/spamd.sock --siteconfigpath=/etc/spamassassin"
 
# 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"
 
# Cronjob
# Set to anything but 0 to enable the cron job to automatically update
# spamassassin's rules on a nightly basis
CRON=1


Spamassassin tunen siehe Mit diesem Link verlassen sie Bonkersoft Support http://www.ende-der-vernu...ssin-optimieren Mit diesem Link verlassen sie Bonkersoft Support http://www.ende-der-vernu...-jahre-spaeter/

mkdir -m 700 /etc/spamassassin/sa-update-keys
chown debian-spamd:debian-spamd /etc/spamassassin/sa-update-keys
wget -qO - http://spamassassin.apache.org/updates/GPG.KEY | su debian-spamd -c "sa-update --gpghomedir /var/lib/spamassassin/sa-update-keys --import -"
rm -f GPG.KEY
 
su debian-spamd -c "sa-update"
su debian-spamd -c "sa-update --nogpg --channel spamassassin.heinlein-support.de"
su debian-spamd -c "sa-update --nogpg --channel sa.schaal-it.net"
su debian-spamd -c "sa-update --nogpg --channel sa.zmi.at"
su debian-spamd -c "sa-update --nogpg --channel sought.rules.yerp.org"


dcc ist ein Mist und bringt überhaupt nichts. Am besten sein lassen.

dcc installieren:
cd /tmp
wget https://www.dcc-servers.net/dcc/source/dcc.tar.Z -O /tmp/dcc.tar.Z
tar -xzf /tmp/dcc.tar.Z
cd /tmp/dcc-*
./configure --disable-server --disable-dccm --disable-dccifd --with-uid=debian-spamd --homedir=/var/lib/spamassassin/dccdir  --bindir=/var/lib/spamassassin/bin
make install
rm -rf /tmp/dcc.tar.Z /tmp/dcc-*


dcc Test:
su debian-spamd -c "/var/lib/spamassassin/bin/cdcc info"


/etc/spamassassin/local.cf anpassen:


Inhalt von /etc/spamassassin/keys
856AA88A
5244EC45



Inhalt von /etc/spamassassin/channels
updates.spamassassin.org



Die Datei keys und channels nur für debian-spamd zugänglich machen
chown debian-spamd:debian-spamd /etc/spamassassin/channels /etc/spamassassin/keys 
chmod 600 /etc/spamassassin/channels /etc/spamassassin/keys



sa-update ausführen.
su debian-spamd -c "sa-update -D --channelfile /etc/spamassassin/channels --gpgkeyfile /etc/spamassassin/keys --gpghomedir /etc/spamassassin/sa-update-keys"


Zum schluss sollte man nochmal alle Debug Ausgaben lesen und auf Fehler überprüfen
su debian-spamd -c "spamassassin -D --lint 2>&1 | grep failed"

und spamd neu starten
systemctl restart spamd.service



Nun zu Procmail.
aptitude install procmail


/etc/procmailrc mit folgendem Inhalt erstellen
#DROPPRIVS=yes
# Schalte mal zur Probe das Logfile ein
LOGFILE=/var/log/procmail
VERBOSE=ON
LOGABSTRACT=all
SHELL=/bin/sh
SENDMAIL="/usr/sbin/sendmail"
SENDMAILFLAGS="-oi -t"
# Fals du dovecot verwendest
#DELIVER="/usr/lib/dovecot/deliver -e -d ${LOGNAME}"
DEFAULT="$HOME/Maildir/"
LOG="--- Logging for ${LOGNAME}, "
SPAMDIR="$HOME/Maildir/.Spam/"
TRASHDIR="$HOME/Maildir/.Trash/"
 
# Zuerst pruefen, ob es ein subject gibt
:0 H
* !^Subject:
{
LOG="No Subject. "
:0 fhw
| /usr/bin/formail -I "Subject: Warning: without Subject!"
}
 
:0 H
#Nicht mehr scannen wenn schon auf eurem Server gescannt
* !^X-SPAM-CHECKER-VERSION: SpamAssassin [[:digit:]]\.[[:digit:]]\.[[:digit:]] on ${HOST}
{
:0 fw
# Ist die nachricht kleiner als 250KB
# (250 * 1024 = 256000 bytes) durch spamc leiten
* < 256000
| /usr/bin/spamc --socket=/var/run/spamd.sock -t 30 -u debian-spamd
}
 
# Work around procmail bug: any output on stderr will cause the "F" in "From"
# to be dropped.  This will re-add it.
:0 H
* ! ^From[ ]
* ^rom[ ]
{
LOG="*** Dropped F off From_ header! Fixing up. "
:0 fhw
| sed -e 's/^rom /From /'
}
 
# procmailrc des Benutzers laden
INCLUDERC="$HOME/.procmailrc"
LOG="---- POST ${LOGNAME} wird zugestellt ---- "
 
# Das Ergebnis der Zustellung wird geloggt:
#
:0 w
# Fals du dovecot verwendest
#| $DELIVER
EXITCODE=$?


In der /etc/postfix/main.cf den Eintrag ergänzen:
mailbox_command =/usr/bin/procmail -t -a "$EXTENSION"


In der /etc/postfix/master.cf folgenden Eintrag ergänzen:
procmail  unix  -       n       n       -       15       pipe
   flags=R user=nobody argv=/usr/bin/procmail -t -o SENDER=${sender} -m USER=${user} EXTENSION=${extension} -m /etc/procmailrc ${sender} ${recipient}


Postfix neu starten und Fehler prüfen!
_________________
zuletzt bearbeitet: 17.2.2018 19:01:55 von: Christian
_________________
zuletzt bearbeitet: 11.8.2023 20:47:29 von: Christian
_________________
zuletzt bearbeitet: 12.8.2023 8:55:53 von: Christian
Angehängte Datei
local.cf.txt
3,2 KB, 363 Hits

Beitrag von: Christian
erstellt: 15.2.2018 18:59:33
Ergibt
su debian-spamd -c "spamassassin -D --lint 2>&1 | grep failed"
folgende Fehler:
dbg: diag: [] module not installed: Digest::SHA1 (‘require’ failed)
dbg: diag: [] module not installed: Geo::IP (‘require’ failed)
dbg: diag: [] module not installed: Razor2::Client::Agent (‘require’ failed)
dbg: diag: [] module not installed: Mail::DKIM (‘require’ failed)
dbg: diag: [] module not installed: Encode::Detect (‘require’ failed)
dbg: diag: [] module not installed: Net::Patricia (‘require’ failed)


Kann mal wie diese beheben in dem man die fehlenden Module mittels CPAN nachinstalliert.
perl -MCPAN -e shell
cpan>install YAML
cpan>quit


perl -MCPAN -e 'install Digest::SHA1'
perl -MCPAN -e 'install Mail::DomainKeys'
perl -MCPAN -e 'install Geo::IP'
perl -MCPAN -e 'install Mail::DKIM'
perl -MCPAN -e 'install Encode::Detect'
perl -MCPAN -e 'install Net::Patricia'
perl -MCPAN -e 'install Razor2::Client::Agent'

_________________
zuletzt bearbeitet: 15.2.2018 19:07:21 von: Christian
_________________
zuletzt bearbeitet: 11.8.2023 20:48:11 von: Christian
Beitrag von: Christian
erstellt: 16.2.2018 22:59:24
Bayes-Datenbank trainieren.

Da ich eine serverweite Konfiguration verwende, muss man nur eine Bayes Datenbank trainieren. Zum Spass habe ich mir Mit diesem Link verlassen sie Bonkersoft Support hier ein Spam Archiv herunter geladen und entpackt. Vorsicht! eine kleine 34MB Datei hat nach dem entpacken 966MB. Das passt dann nicht mehr in /tmp und das entpacken mit
7z x 2017-01.7z
hat mal eben schlappe 2 Stunden gedauert. Wichtig ist das in der /etc/spamassassin/local.cf  folgendes eingetragen ist.
#bayes konfiguration
use_bayes 1
# Note that the argument to bayes_path is a combination of a directory (/var/spamassassin/bayes_db/) and a filename prefix (bayes).
bayes_path /var/lib/spamassassin/.spamassassin/bayes
# 
bayes_file_mode 0777
bayes_journal_max_size 15000000
bayes_expiry_max_db_size 20000000
bayes_auto_learn       1
bayes_learn_to_journal 1

Angenommen Spam Mails liegen in: /var/www/tmp/2017/01/ Bayes wie folgt trainieren.
sa-learn --no-sync --spam --dbpath /var/lib/spamassassin/.spamassassin --progress /var/www/tmp/2017/01/
sa-learn --dbpath /var/lib/spamassassin/.spamassassin --sync

Das dauert dann nur 1 Stunde sleep

Da bayes nun mittels Redis gespeichert wird, wie folgt vorgehen.
mkdir /var/www/tmp
cd /var/www/tmp
wget http://untroubled.org/spam/2023-01.7z
7z e 2023-01.7z
rm -f 2023-01.7z
su debian-spamd -c "sa-learn --spam --progress /var/www/tmp/"

_________________
zuletzt bearbeitet: 16.2.2018 23:40:14 von: Christian
_________________
zuletzt bearbeitet: 11.8.2023 22:02:19 von: Christian
Beitrag von: Christian
erstellt: 17.2.2018 1:00:21
spamassassin URIBL_BLOCKED ist recht einfach zu lösen: Mit diesem Link verlassen sie Bonkersoft Support spamassassin-und-dnsmasq-Loesung-fuer-URIBL_BLOCKED
_________________
zuletzt bearbeitet: 18.2.2018 0:04:01 von: Christian
Beitrag von: Christian
erstellt: 19.9.2019 10:57:57
Script um sa-update stündlich au zu führen.

Script anlegen in /etc/cron.hourly/sa-update
#!/bin/sh
 
# schaal @it
#
# Simple script to update SpamAssassin
 
SYSLOG_TAG=sa-update
 
compile=0
 
#logger -d -t $SYSLOG_TAG "Start SA-Update"
 
sa-update --nogpg
retval="$?"
if [ $retval -eq 0 ]
then
  compile=1
  echo "found update"
  logger -d -t $SYSLOG_TAG "found update"
fi
 
sa-update --nogpg --channel updates.spamassassin.org
retval="$?"
if [ $retval -eq 0 ]
then
  compile=1
  echo "found update.spamassassin.org"
  logger -d -t $SYSLOG_TAG "found update.spamassassin.org"
fi
 
sa-update --nogpg --channel sa.schaal-it.net
retval="$?"
if [ $retval -eq 0 ]
then
  compile=1
  echo "found sa.schaal-it.net"
  logger -d -t $SYSLOG_TAG "found sa.schaal-it.net"
fi
 
sa-update --nogpg --channel spamassassin.heinlein-support.de
retval="$?"
if [ $retval -eq 0 ]
then
  compile=1
  echo "found spamassassin.heinlein-support.de"
  logger -d -t $SYSLOG_TAG "found spamassassin.heinlein-support.de"
fi
 
sa-update --nogpg --channel sa.zmi.at
retval="$?"
if [ $retval -eq 0 ]
then
  compile=1
  echo "found sa.zmi.at"
  logger -d -t $SYSLOG_TAG "found sa.zmi.at"
fi
 
if [ $compile -eq 1 ]; then
        logger -d -t $SYSLOG_TAG "SA-Update found. sa-compile"
        sa-compile
        systemctl restart spamassassin.service
fi


und dann noch
chmod 755 /etc/cron.hourly/sa-update
Beitrag von: Christian
erstellt: 28.9.2019 8:45:39
Serverweite Bayes Datenbank mit Redis konfigurieren. Voraussetzung ist ein aktiver Redis Server.

folgendes Modul muss installiert sein.
perl -MCPAN -e "install Mail::SpamAssassin::BayesStore::Redis"
Konfiguration in /etc/spamassassin/bayes_redis.cf:
bayes_store_module  Mail::SpamAssassin::BayesStore::Redis
bayes_sql_dsn  server=127.0.0.1:6379;database=15
use_bayes 1
use_bayes_rules 1
bayes_auto_learn  1
use_learner 1
bayes_learn_to_journal 0
bayes_auto_expire  1
bayes_token_ttl 30d
bayes_seen_ttl  14d
Beispiel Mit diesem Link verlassen sie Bonkersoft Support Konfiguration ist hier zu finden.
Wichtig in der /etc/spamassassin/local.cf müssen folgende Zeilen entfernt oder auskommentiert werden.
#bayes_path /var/lib/spamassassin/.spamassassin/bayes
#bayes_file_mode 0777
#bayes_journal_max_size 15000000
#bayes_expiry_max_db_size 20000000

systemctl restart spamassassin.service


Zustand von Redis anzeigen lassen:
redis-cli info


......
# CPU
used_cpu_sys:1261.427747
used_cpu_user:639.427298
used_cpu_sys_children:10.032874
used_cpu_user_children:30.189596
 
# Cluster
cluster_enabled:0
 
# Keyspace
db0:keys=575,expires=54,avg_ttl=101435917
db1:keys=275,expires=6,avg_ttl=172032030
db15:keys=185282,expires=185278,avg_ttl=2569026144

_________________
zuletzt bearbeitet: 28.9.2019 9:02:20 von: Christian
Beitrag von: Christian
erstellt: 09.8.2023 22:22:02
SpamAssassin update:

perl -MCPAN -e shell
cpan>upgrade
cpan>quit


eventuell Module installieren:

perl -MCPAN -e 'install Digest::SHA1'
perl -MCPAN -e 'install Mail::DomainKeys'
perl -MCPAN -e 'install Geo::IP'
perl -MCPAN -e 'install Mail::DKIM'
perl -MCPAN -e 'install Encode::Detect'
perl -MCPAN -e 'install Net::Patricia'
perl -MCPAN -e 'install Razor2::Client::Agent'
perl -MCPAN -e 'install Net::LibIDN2'
perl -MCPAN -e 'install MaxMind::DB::Reader'
perl -MCPAN -e 'install MaxMind::DB::Reader::XS'
perl -MCPAN -e 'install IP::Country::DB_File'
perl -MCPAN -e 'install IP::Country::Fast'
perl -MCPAN -e 'install Razor2::Client::Agent'
perl -MCPAN -e 'install IO::Socket::INET6'
perl -MCPAN -e 'install Mail::DKIM'
perl -MCPAN -e 'install DBI'
perl -MCPAN -e 'install DBD::SQLite'
perl -MCPAN -e 'install LWP::UserAgent'
perl -MCPAN -e 'install Net::DNS::Nameserver'
perl -MCPAN -e 'install BSD::Resource'
perl -MCPAN -e 'install Archive::Zip'
perl -MCPAN -e 'install Mail::DMARC'

_________________
zuletzt bearbeitet: 11.8.2023 20:40:45 von: Christian
 
Mail
Mailserver Spam und Vieren abwehr