Schutz vor Spam-Mails auf Uberspace

Erstellt am 25. März 2016 von Canoxnet @canoxnet

Bei mir häufen sich zurzeit mal wieder die Spam-Mails (es ging mit Locky schon los) und bei Uberspace kann man ganz leicht einen Spam-Schutz einrichten. Frank von intux.de hat auf seinem Blog gezeigt wie man den Spamschutz auf Uberspace einrichtet.

nano ~/.qmail-info (Dies gilt für die E-Mail-Adresse info@domain.tld)

Dort folgende Zeile einfügen und mit Strg + O, Enter & Strg +X speichern:

|maildrop

Möchtet ihr den Spamschutz nicht für die E-Mail Adresse info@domain.tld sondern zum Beispiel für anne.bauer@domain.tld müsst ihr die Datei ~./qmail-anne.bauer erstellen. anne.bauer ersetzt ihr durch eure E-Mail Adresse.

nano ~/.qmail-anne.bauer

Dort folgende Zeile einfügen und mit Strg + O, Enter & Strg +X speichern:

|maildrop
nano .mailfilter

Die nachfolgenden Regeln reichen für den Anfang  aus:

MAXSPAMSCORE="3" 
logfile "$HOME/mailfilter.log"
 
# set default Maildir
MAILDIR="$HOME/Maildir"
 
# check if we're called from a .qmail-EXT instead of .qmail
import EXT
if ( $EXT )
{
 # does a vmailmgr user named $EXT exist?
 # if yes, deliver mail to his Maildir instead
 CHECKMAILDIR = `dumpvuser $EXT | grep '^Directory' | awk '{ print $2 }'`
 if ( $CHECKMAILDIR )
 {
 MAILDIR="$HOME/$CHECKMAILDIR"
 }
}
 
# check if we're called from a .qmail-EXT instead of .qmail
import EXT
if ( $EXT )
{
 # does a vmailmgr user named $EXT exist?
 # if yes, deliver mail to his Maildir instead
 CHECKMAILDIR = `dumpvuser $EXT | grep '^Directory' | awk '{ print $2 }'`
 if ( $CHECKMAILDIR )
 {
 MAILDIR="$HOME/$CHECKMAILDIR"
 }
}
 
# check folder structure
`test -d "$MAILDIR/.0 Spamfilter"`
if( $RETURNCODE == 1 )
{
 `maildirmake "$MAILDIR/.0 Spamfilter"`
}
`test -d "$MAILDIR/.0 Spamfilter.als Spam erkannt"`
if( $RETURNCODE == 1 )
{
 `maildirmake "$MAILDIR/.0 Spamfilter.als Spam erkannt"`
}
`test -d "$MAILDIR/.0 Spamfilter.als Spam lernen"`
if( $RETURNCODE == 1 )
{
 `maildirmake "$MAILDIR/.0 Spamfilter.als Spam lernen"`
}
`test -d "$MAILDIR/.0 Spamfilter.als Ham lernen"`
if( $RETURNCODE == 1 )
{
 `maildirmake "$MAILDIR/.0 Spamfilter.als Ham lernen"`
}
 
# show the mail to SpamAssassin
xfilter "/usr/bin/spamc"
 
# now show the mail to DSPAM
xfilter "/package/host/localhost/dspam/bin/dspam --mode=teft --deliver=innocent,spam --stdout"
 
# if whitelisted by DSPAM just deliver
if ( /^X-DSPAM-Result: Whitelisted/)
{
 to "$MAILDIR"
}
 
# process SPAM
if ( /^X-Spam-Level: \*{$MAXSPAMSCORE,}$/ || /^X-DSPAM-Result: Spam/)
{
 MAILDIR="$MAILDIR/.0 Spamfilter.als Spam erkannt"
 # mark as read
 cc "$MAILDIR";
 `find "$MAILDIR/new/" -mindepth 1 -maxdepth 1 -type f -printf '%f\0' | xargs -0 -I {} mv "$MAILDIR/new/{}" "$MAILDIR/cur/{}:2,S"`
 exit
}
 
# and finally, deliver everything that survived our filtering
to "$MAILDIR"

Nach dem ihr die Datei mit Strg + O, Enter & Strg +X gespeichert habt müssen die Rechte der Datei auf 600 gesetzt werden.

chmod 600 ~/.mailfilter
uberspace-setup-spamd
test -d ~/service || uberspace-setup-svscan

runwhen-conf ~/etc/dspam-learn "/usr/local/bin/dspam-learn"

sed -i -e "s/^RUNWHEN=.*/RUNWHEN=\",M=`awk 'BEGIN { srand(); printf("%d\n",rand()*60) }'`\"/" ~/etc/dspam-learn/run

ln -s ~/etc/dspam-learn ~/service

test -d ~/service || uberspace-setup-svscan

runwhen-conf ~/etc/dspam_clean_hashdb "/usr/local/bin/dspam_clean_hashdb"

sed -i -e "s/^RUNWHEN=.*/RUNWHEN=\",H=`awk 'BEGIN { srand(); printf("%d\n",rand()*24) }'`\"/" ~/etc/dspam_clean_hashdb/run

ln -s ~/etc/dspam_clean_hashdb ~/service

Für die E-Mail Adresse info@domain.tld:

echo | EXT=info maildrop .mailfilter

und für die E-Mail Adresse anne.bauer@domain.tld (passt den Namen der Datei an):

echo | EXT=anne.bauer maildrop .mailfilter

Die gesendete Testnachricht  sollte im Verzeichnis „als Spam erkannt“ landen. Die Ordner müssen in RoundCube noch aktiviert werden.

Einstellungen -> Ordner

Unter Einstellungen -> Spezialordner wird „o Spamfilter“ als Spamordner gesetzt.

Ich hoffe ich konnte euch mit diesem Beitrag weiterhelfen.

Quelle: intux.de