System vorbereiten:
Diesen User müsst ihr in /etc/passwd eintragen:
Dannach diese Gruppe in /etc/group hinzufügen:
Dannach ladet ihr euch die Sourcen von Spamassassin herunter von:
http://www.spamassassin.org
Dannach entpacken:
Jetzt ist Spamassassin auf dem Vserver installiert und der Deamon kann gestartet werden:
Als nächstes müsst ihr ein Program namens "Milter" installieren.
Hier herunterladen:
http://savannah.nongnu.org/download/spamass-milt/
Wobei zu beachten ist: @your.domain.de muss natürlich noch auf eure Domain vom Server eingerichtet werden. Wenn auf eurem Server mehrere Domains laufen nehmt am besten die, die die Standart-Domain darstellt.
Nun müsst ihr Milter / Spamassassin in die Sendmail Config einbinden. Dazu öffnet ihr: /etc/mail/sendmail.mc und hängt am Ende der Datei folgendes an:
Nun müsst ihr das neue .mc File nocheinmal Kompilieren damit Sendmail die Änderungen übernimmt:
Ihr bekommt hier keine Ausgabe, höchstens ein "Now entering /etc/mail...Now leaving /etc/mail" Solltet ihr keine Fehler erhalten habt ihr alles richtig gemacht und Spamassassin ist in Sendmail "reinkompiliert"
Den Spam leitet spamass-milter an "caughtspam@your.domain.de" weiter. Eine elegante Möglichkeit, die ich auf meinem Mailserver verwende, ist ein Auto-Reply an den Absender, der Ihn darueber informiert, daß er Spam versendet hat.
Es gibt bei Spam 3 verschiedene Formen von Absendeaddressen oder Reply-To's:
1. Eine ge-fakte Addresse, an die nicht versandt werden kann
2. Eine echte Addresse, die einem unschuldigen Besitzer gehört
3. Eine echte Addresse und der Spam war gar kein Spam (kommt selten vor)
Im 2. und 3. Fall ist ein Auto-Reply echt sinnvoll und im 1. Fall kommt dieser nicht an. Da wir jedoch meistens den 1. Fall haben, müssen wir uns vor den Mails von unserem sendmail schützen, die uns mitteilen, daß der Auto-Reply nicht versendet werden konnte. Daher versenden wir den Auto-Reply als "noreply@your.domain". Wie das ganze funktioniert schauen wir uns jetzt an.
Als erstes muss in /etc/mail/aliases die beiden Empfänger eingerichtet werden:
Damit wird "caughtspam" an unser Script geschickt, das einen Auto-Reply erzeugt und die Mail danach vernichtet. Alle Mails an "noreply" werden ebenfalls vernichtet und belästigen damit nicht den "postmaster". Nun braucht Ihr nur noch das nachfolgende Perlscript nach /usr/bin/echo_mail.pl kopieren und mit einem "chmod 755 /usr/bin/echo_mail.pl" ausführbar machen. Danach bekommt jeder "Spammer" einen netten Auto-Reply.
Als letztes müsst ihr Sendmail neustarten. Je nach dem ob ihr es über Xinetd laufen habt oder als eigenen Service funktioniert das auf zwei verschiedene weisen:
FERTIG!
Thx @ Huschi the Husch - el Buffo für den Hinweis mit der .mc - http://www.maymi.de/content/unix/sendmail.php
Diesen User müsst ihr in /etc/passwd eintragen:
Code:
spamd:x:110:110:Spamassassin:/nonexistent:/bin/false
Code:
spamd::110:
http://www.spamassassin.org
Dannach entpacken:
Code:
tar -xzf Mail-Spamassassin-x.xx.tar.gz
cd Mail-Spamassassin-x.xx
perl Makefile.PL
make all install
Code:
spamd -d -u spamd
Hier herunterladen:
http://savannah.nongnu.org/download/spamass-milt/
Code:
tar -xzf spamass-milter-x.x.x.tar.gz
cd spamass-milter-x.x.x
./configure
make all install
mkdir /var/spamd
chown spamd:spamd /var/spamd
chmod 755 /var/spamd
spamass-milter -p /var/spamd/spamass-milter.sock -b [email]caughtspam@your.domain.de[/email] -f
Nun müsst ihr Milter / Spamassassin in die Sendmail Config einbinden. Dazu öffnet ihr: /etc/mail/sendmail.mc und hängt am Ende der Datei folgendes an:
Code:
INPUT_MAIL_FILTER(`spamassassin',
S=local:/var/spamd/spamass-milter.sock,
F=,T=C:15m;S:4m;R:4m;E:10m')
dnl define(`confINPUT_MAIL_FILTERS', `clmilter,spamassassin')
Code:
make -C /etc/mail
Den Spam leitet spamass-milter an "caughtspam@your.domain.de" weiter. Eine elegante Möglichkeit, die ich auf meinem Mailserver verwende, ist ein Auto-Reply an den Absender, der Ihn darueber informiert, daß er Spam versendet hat.
Es gibt bei Spam 3 verschiedene Formen von Absendeaddressen oder Reply-To's:
1. Eine ge-fakte Addresse, an die nicht versandt werden kann
2. Eine echte Addresse, die einem unschuldigen Besitzer gehört
3. Eine echte Addresse und der Spam war gar kein Spam (kommt selten vor)
Im 2. und 3. Fall ist ein Auto-Reply echt sinnvoll und im 1. Fall kommt dieser nicht an. Da wir jedoch meistens den 1. Fall haben, müssen wir uns vor den Mails von unserem sendmail schützen, die uns mitteilen, daß der Auto-Reply nicht versendet werden konnte. Daher versenden wir den Auto-Reply als "noreply@your.domain". Wie das ganze funktioniert schauen wir uns jetzt an.
Als erstes muss in /etc/mail/aliases die beiden Empfänger eingerichtet werden:
Code:
caughtspam: |"/usr/bin/echo_mail.pl"
noreply: /dev/null
Code:
#!/usr/bin/perl
#
# (C) MaYmI 2004 under GPL
#
use strict;
my $domain = "your.domain";
my ($buf,$mail,$rcpt,$status,$tmp,$length);
$status = 0;
while (read(STDIN,$buf,256)) {
$mail .= $buf;
}
$length = length($mail);
if ($mail =~ /Subject: \[(.+)\].+\n/) { # if true, this was a mailinglist
$mail =~ /From:(.+)\n/;
if ($1) {
$rcpt = $1;
} else {
$status = 1;
}
} else {
$mail =~ /Reply-To:(.+)\n/;
if ($1) {
$rcpt = $1;
} else {
$mail =~ /From:(.+)\n/;
if ($1) {
$rcpt = $1;
} else {
$status = 1;
}
}
}
open (SENDMAIL,"|/usr/lib/sendmail -t");
print SENDMAIL <<EOF;
From: noreply\@$domain
To:$rcpt
Reply-To: noreply\@$domain
Subject: Your Mail was identified as spam / Ihre Mail wurde als Spam eingestuft
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary="LQksG6bCIzRHxTLp"
Content-Disposition: inline
Content-Length: $length
--LQksG6bCIzRHxTLp
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
------------------------------------------------------------
Hello,
your mail wasn't delivered because it's recogniced as spam.
Please verify the output attached to this mail and see why
this happend. This is an automatic mail. Replies to this
mail are redirected into the null-device.
regards,
The Webmaster
------------------------------------------------------------
--LQksG6bCIzRHxTLp
Content-Type: message/rfc822
Content-Disposition: inline
$mail
--LQksG6bCIzRHxTLp--
--LQksG6bCIzRHxTLp--
EOF
close (SENDMAIL);
Als letztes müsst ihr Sendmail neustarten. Je nach dem ob ihr es über Xinetd laufen habt oder als eigenen Service funktioniert das auf zwei verschiedene weisen:
Code:
Xinetd:
/etc/init.d/xinetd restart
ODER Sendmail:
/etc/ini.d/sendmail restart
FERTIG!
Thx @ Huschi the Husch - el Buffo für den Hinweis mit der .mc - http://www.maymi.de/content/unix/sendmail.php