Spamfilter · 8 min read · Nov 14, 2025

Postfix Spamfilter mit Ubuntu Dapper, MailScanner, SpamAssassin, Razor, Pyzor, DCC und ClamAV - Seite 4

3 Pyzor, Razor, DCC, SpamAssassin und MailScanner Konfiguration

3.1 Pyzor Konfiguration

Wir müssen zuerst einige Berechtigungen für pyzor ändern:

chmod -R a+rX /usr/share/doc/pyzor /usr/bin/pyzor /usr/bin/pyzord

Dieser nächste Befehl muss geändert werden, wenn Sie eine andere Version von Python haben. Versuchen Sie, pyzor zu lokalisieren.

chmod -R a+rX /usr/lib/site-python/pyzor

Hier geben wir die IP-Adresse des Pyzor-Servers an Pyzor an. Dies wird ein .pyzor-Verzeichnis in beiden Benutzerverzeichnissen erstellen und die IP-Adresse des Servers in einer Serverdatei dort ablegen. Dann wird die Verbindung getestet. Wenn Sie hinter einer Firewall sind, öffnen Sie den Port 24441/udp ein- und ausgehend zu Ihrem Server. Während Sie dabei sind, öffnen Sie auch 6277/udp für DCC, 2703/tcp für Razor und 783/tcp für SpamAssassin:

pyzor ping

Normalerweise erhalten Sie eine Zeitüberschreitung von dem pyzor ping, also machen Sie sich keine Sorgen. Wir werden später erneut testen.

Wenn sich in Zukunft die IP-Adresse des Servers ändert, müssen Sie diesen Abschnitt erneut durchlaufen. Sie können die Adresse des aktuellen Pyzor-Servers hier finden http://pyzor.sourceforge.net/cgi-bin/inform-servers-0-3-x.

Wenn Pyzor funktioniert, sehen Sie “Pyzor: got response:” Pyzor fragt einen Pyzor-Server auf ähnliche Weise an, wie Ihr Computer einen DNS-Server abfragt. Der einzige praktische Unterschied ist die verwendete Portnummer. Wenn Pyzor nicht funktioniert, müssen Sie möglicherweise den Port in Ihrer Firewall öffnen oder der Pyzor-Server ist beschäftigt.

3.2 Razor Konfiguration

Erstellen Sie eine default.razor Konfiguration im Root-Heverzeichnis:

cd  
rm /etc/razor/razor-agent.conf  
razor-admin -create  
razor-admin -create

Razor v2 erfordert, dass Reporter registriert werden, damit ihre Rufwerte im Laufe der Zeit berechnet werden können und sie am Widerrufsmechanismus teilnehmen können. Die Registrierung erfolgt mit razor-admin -register. Wenn razor-admin -register als Root aufgerufen wird, verhandelt es eine Registrierung mit dem Nominierungsserver und schreibt die Identitätsinformationen in /root/.razor/identity-username. Manuell aufgerufen wird es auf eine der folgenden Arten:

  1. Um den Benutzer: foo und das Passwort: s1kret (foo und s1kret sind Beispiele) zu registrieren:
razor-admin -register -user=foo -pass=s1kr3t
  1. Um sich mit einer E-Mail-Adresse zu registrieren und das Passwort zuzuweisen:
razor-admin -register [email protected]
  1. Um sowohl (zufälligen) Benutzernamen als auch Passwort zuzuweisen:
razor-admin -register

Ich mache normalerweise nur Nummer 3. Machen Sie die folgenden Änderungen an /root/.razor/razor-agent.conf:

vi /root/.razor/razor-agent.conf

Ändern Sie debuglevel = 3 in debuglevel = 0 (ja, null, nicht “o”). Dies wird verhindern, dass Razor Ihre Festplatte mit Debug-Informationen füllt. Außerdem werden wir diese Konfigurationen an einen Ort verschieben, an dem der Postfix-Benutzer sie lesen kann, also fügen Sie die razorhome-Zeile ans Ende der Datei hinzu. Diese beiden Zeilen sollten am Ende so aussehen:

debuglevel             = 0
razorhome             = /var/lib/MailScanner/.razor/

Wir werden Razor später testen. man razor-agent.conf oder gehen Sie zu http://razor.sourceforge.net/docs/razor-agent.conf.php für weitere Informationen zu Razor.

3.3 DCC Einrichtung und Konfiguration

Installieren Sie DCC:

apt-get install dcc-client

Wir betreiben keinen DCC-Server, also müssen wir keine Zeit mit Selbstprüfungen verschwenden: Wenn Sie eine große Organisation sind (100.000 Nachrichten pro Tag), sollten Sie in Betracht ziehen, Ihren eigenen Server zu betreiben.

Sobald die Installation abgeschlossen ist, führen Sie aus:

cdcc "delete 127.0.0.1"  
cdcc "delete 127.0.0.1 Greylist"

Testen Sie unsere Installation mit:

cdcc info

Sie sollten ‘requests ok’ von den Servern erhalten.

4 MailScanner, ClamAV und SpamAssassin Konfiguration

4.1 MailScanner und ClamAV

Stoppen Sie Postfix:

postfix stop

Installieren Sie die Pakete:

apt-get install mailscanner clamav

Aktualisieren Sie die ClamAV-Virusdefinitionen:

freshclam

Lassen Sie uns mit MailScanner beginnen. Der MailScanner, der gerade aus den Repositories installiert wurde, ist eine sehr alte Version, also werden wir ihn jetzt entfernen und das MailScanner-Paket aus dem Quellcode installieren.

Laden Sie das Tarball von http://www.mailscanner.info/downloads.html … Zum Zeitpunkt des Schreibens ist es in der Version 4.56.8-1 und der Tarball-Link ist http://www.mailscanner.info/files/4/tar/MailScanner-install-4.56.8-1.tar.gz. Installieren Sie dann MailScanner mit dem install.sh-Skript.

cd  
apt-get remove mailscanner  
wget http://www.mailscanner.info/files/4/tar/MailScanner-install-4.56.8-1.tar.gz  
tar zxvf MailScanner-install-4.56.8-1.tar.gz  
cd MailScanner-install-4.56.8  
./install.sh

Ignorieren Sie vorerst die Nachricht über die Cron-Zeilen, die wir zu Cron hinzufügen müssen.

Sobald dies erledigt ist, müssen wir ein Verzeichnis für SpamAssassin im Spool erstellen und Postfix Berechtigungen dafür geben. Wenn Sie sa-learn –force als Root ausführen, wird die Bayes-Datenbank, die in diesen Verzeichnissen gespeichert ist, auf root:root geändert und SpamAssassin wird einen Fehler beim Zugriff auf die DB haben. Achten Sie einfach auf die mail.log und Sie werden sich daran erinnern, die Berechtigungen zurückzuändern. Deaktivieren Sie auch die Standardkonfigurationen von MailScanner:

mkdir /var/spool/MailScanner/spamassassin  
mv /etc/MailScanner /etc/MailScanner.dist

Sichern Sie Ihre MailScanner.conf-Datei:

cp /opt/MailScanner/etc/MailScanner.conf /opt/MailScanner/etc/MailScanner.conf.back

Bearbeiten Sie MailScanner.conf:

vi /opt/MailScanner/etc/MailScanner.conf

Ändern Sie die folgenden Parameter in MailScanner.conf:

%org-name% = YOURDOMAIN-COM
%org-long-name% = Ihr Unternehmensname INC
%web-site% = www.ihredomain.com
Run As User = postfix
Run As Group = postfix
Incoming Queue Dir = /var/spool/postfix/hold
Outgoing Queue Dir = /var/spool/postfix/incoming
MTA = postfix
Virus Scanners = clamav
Spam Subject Text = [SPAM]
Send Notices = no
Spam List = ORDB-RBL SBL+XBL
Required SpamAssassin Score = 6
High SpamAssassin Score = 10
Spam Actions = deliver striphtml
High Scoring Spam Actions = delete
Rebuild Bayes Every = 86400
Wait During Bayes Rebuild = yes
SpamAssassin User State Dir = /var/spool/MailScanner/spamassassin

Die ersten 9 Zeilen sind im Grunde erforderlich, damit alles funktioniert, der Rest ist empfohlen. Die MailScanner.conf ist gut dokumentiert, also lesen Sie die Notizen dort, wenn Sie Fragen zu den restlichen Optionen haben, die wir geändert haben. Stöbern Sie in dieser Datei von oben nach unten.

Sehen Sie sich auch den Abschnitt “Entfernen/Protokollieren gefährlicher oder potenziell anstößiger Inhalte” in der MailScanner.conf-Datei an. Ich musste die meisten davon deaktivieren, da Kunden über ‘{Disarmed}’-Nachrichten beschwerten.

4.2 SpamAssassin

Zuerst müssen wir die Standardkonfigurationsdatei von SpamAssassin deaktivieren:

mv /etc/spamassassin/local.cf /etc/spamassassin/local.cf.disabled

Jetzt sichern wir die SpamAssassin-Konfigurationsdatei in MailScanner und bearbeiten sie:

cp /opt/MailScanner/etc/spam.assassin.prefs.conf /opt/MailScanner/etc/spam.assassin.prefs.conf.back
vi /opt/MailScanner/etc/spam.assassin.prefs.conf

Fügen Sie diese beiden Zeilen an den Anfang von spam.assassin.prefs.conf hinzu:

pyzor_options --homedir /var/lib/MailScanner/
razor_config /var/lib/MailScanner/.razor/razor-agent.conf

Ändern Sie, wo SpamAssassin nach der Bayes-Datenbank sucht, kommentieren Sie den Standard-bayes_path aus oder ändern Sie ihn entsprechend:

#bayes_path /var/lib/MailScanner/bayes
bayes_path /var/spool/MailScanner/spamassassin/bayes

Suchen Sie nach diesen Zeilen und ändern Sie sie entsprechend:

bayes_ignore_header X-YOURDOMAIN-COM-MailScanner
bayes_ignore_header X-YOURDOMAIN-COM-MailScanner-SpamCheck
bayes_ignore_header X-YOURDOMAIN-COM-MailScanner-SpamScore
bayes_ignore_header X-YOURDOMAIN-COM-MailScanner-Information

“YOURDOMAIN-COM” sollte durch das ersetzt werden, was Sie für “%org-name%” in der MailScanner.conf-Datei verwendet haben. Lassen Sie das “X-“ an Ort und Stelle.

Stellen Sie sicher, dass “bayes_auto_expire 0” nicht auskommentiert ist:

bayes_auto_expire 0

Bearbeiten Sie die SpamAssassin v310.pre, um Razor und DCC zu aktivieren

vi /etc/spamassassin/v310.pre

Kommentieren Sie die folgenden Zeilen aus:

loadplugin Mail::SpamAssassin::Plugin::DCC
loadplugin Mail::SpamAssassin::Plugin::Razor2

5 Alles zusammenbringen

Kopieren Sie die Pyzor- und Razor-Konfigurationen an einen Ort, an dem der Postfix-Benutzer sie lesen kann:

cp -R /root/.pyzor /var/lib/MailScanner  
cp -R /root/.razor /var/lib/MailScanner

Jetzt, da wir alles dort haben, setzen Sie die richtigen Berechtigungen:

chown -R postfix.postfix /var/spool/MailScanner/  
chown -R postfix.postfix /var/lib/MailScanner/

Lassen Sie uns sehen, ob SpamAssassin zufrieden ist:

su postfix -p -c 'spamassassin -x -D -C /opt/MailScanner/etc/spam.assassin.prefs.conf --lint'

Sie sollten Zeilen sehen, die mit DCC, Pyzor und Razor erscheinen, die sagen, dass das Plugin geladen wird und hoffentlich keine Fehler.

HINWEIS: Wenn Sie jemals sa-learn ausführen, denken Sie daran, es so auszuführen: su postfix -p -c ‘sa-learn –sync –force-expire -C /opt/MailScanner/etc/spam.assassin.prefs.conf’, andernfalls kann SpamAssassin beim Wiederaufbau der Bayes-Datenbank nicht darauf zugreifen.

Wenn alles gut aussieht, fahren Sie fort, wenn nicht, beheben Sie das Problem und fahren Sie dann fort.

Um diesen Teil abzuschließen, müssen wir Cron-Jobs hinzufügen, die MailScanner reinigen/aktualisieren/ausführen, Sie haben wahrscheinlich die Nachricht darüber gesehen, nachdem das MailScanner-Installationsskript abgeschlossen war. Der Grund, warum wir es jetzt tun, ist, dass wir nicht wollen, dass MailScanner startet, während wir die SpamAssassin-Konfiguration abschließen.

crontab -e

Fügen Sie diese Zeilen hinzu:

37      5 * * * /opt/MailScanner/bin/update_phishing_sites
58     23 * * * /opt/MailScanner/bin/clean.quarantine
42      * * * * /opt/MailScanner/bin/update_virus_scanners
3,23,43 * * * * /opt/MailScanner/bin/check_mailscanner

Wir müssen eine Zeile zu rc.local hinzufügen, damit MailScanner beim Neustart startet:

vi /etc/rc.local

Fügen Sie vor der Zeile “Exit 0” hinzu:

/opt/MailScanner/bin/check_mailscanner

Es wäre auch gut, die Datei “check_mailscanner” in das Bin-Verzeichnis zu verlinken. So können Sie es ausführen, wann immer Sie MailScanner neu starten müssen:

cd /usr/bin  
ln -s /opt/MailScanner/bin/check_mailscanner check_mailscanner

Um Ihnen ein sauberes Protokoll zu geben, schauen Sie sich das an und starten Sie neu:

rm /var/log/mail.log  
reboot

Wenn Sie beim Neustart beim Starten von MailScanner Fehler über das Perl Sys/Hostname/Long.pm sehen, müssen Sie es wie folgt installieren:

perl -MCPAN -e shell

Wenn es Sie fragt, ob Sie es jetzt konfigurieren möchten, sagen Sie nein, es sei denn, Sie wissen, was Sie tun. Führen Sie jetzt Folgendes aus, um das Modul zu installieren:

install Sys::Hostname::Long

Wenn das erledigt ist, geben Sie “quit” ein, um zur Konsole zurückzukehren. Starten Sie neu oder starten Sie MailScanner mit dem Skript “check_mailscanner”.

An diesem Punkt sollten Sie einen voll funktionsfähigen Spamfilter haben. Werfen Sie einen Blick auf tail -f /var/log/mail.log, es sollte weitgehend fehlerfrei sein.

Diese README sollte für zukünftige Verwendung nützlich sein. Kopieren Sie sie in Ihren Spamfilter für eine schnelle Referenz.

POSTFIX, UBUNTU, MAILSCANNER README
************************************************
ADD DOMAIN
**********************************************
- Bearbeiten Sie '/etc/postfix/relay_recipients', 'relay_domains' und 'transport'.
- Führen Sie 'postmap /etc/postfix/relay_recipients' aus. Gleiches für 'relay_domains' und 'transport' nach der Bearbeitung, um Domains in die DB-Datei hinzuzufügen.
- 'postfix reload', damit Postfix die neuen DB-Dateien liest.
- Um Benutzer zu Domains hinzuzufügen, bearbeiten Sie die 'relay_recipients' und 'postmap' es.
**********************************************
CONTROLLING BLIST WLIST
**********************************************
- Bearbeiten Sie /etc/postfix/sender_access
- Führen Sie 'postmap /etc/postfix/sender_access' aus
- Führen Sie 'postfix reload' aus
**********************************************
ANDERE KONFIGURATIONSDATEIEN
**********************************************
- Um MailScanner-Einstellungen zu bearbeiten: "/opt/MailScanner/etc/MailScanner.conf"
- Um SpamAssassin-Einstellungen zu bearbeiten: "/opt/MailScanner/etc/spam.assassin.prefs.conf"
- Um ClamAV-Einstellungen zu bearbeiten: "/etc/clamav/clamd.conf"
**********************************************
SONSTIGES
************************************************
- Führen Sie 'LINUX2' aus, wenn Postfix-Fehler über nicht übereinstimmende Dateien im Jailroot auftreten.
- Führen Sie 'postfix check' aus, um zu sehen, ob Postfix mit dem Jailroot synchronisiert ist.
- Führen Sie newaliases aus, um die /etc/postfix/aliases-Datenbank zu aktualisieren, wenn Änderungen an dieser Datei vorgenommen werden.
- 'mailq' und 'qshape', um die Warteschlange zu überprüfen.
- 'check_mailscanner', um MailScanner neu zu starten.
Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.