Spamfilter · 5 min read · Nov 13, 2025

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

Einführung

Dies ist eine ähnliche Version des HOWTO, das hier zu finden ist: http://www200.pair.com/mecham/spam/spamfilter20050628.html. Wenn Sie sich dieses Howto ansehen, wird davon ausgegangen, dass Sie über ein gewisses Maß an Erfahrung mit E-Mail-Servern, DNS, TCP/IP, Firewalls und Linux im Allgemeinen verfügen.

1 Einrichtung des Ubuntu-Servers

Bitte sehen Sie sich die bereits online verfügbaren Dokumentationen zur Einrichtung eines Ubuntu-Servers an. HowToForge hat einige sehr detaillierte HowTos. Es gibt jedoch einige Installationskonfigurationen, die hier skizziert sind und die bei der Einrichtung des Servers berücksichtigt werden sollten, da sie von anderen HowTos abweichen könnten.

HINWEIS: Ubuntu wird standardmäßig als setuid-System installiert. Das bedeutet, dass das Root-Konto deaktiviert ist und Sie alles mit einem 'sudo' davor ausführen müssen, um es als Root auszuführen. Der Weg darum herum ist, 'sudo su -' auszuführen, und Sie müssen 'sudo' nicht mehr vor dem Befehl eingeben, da Sie sich in einer Bash-Sitzung als Root befinden. Für den Rest dieses Dokuments wird davon ausgegangen, dass Sie dies getan haben und eine Bash-Sitzung als Root ausführen, sodass keine sudo-Befehle gegeben werden. Die Moral der Geschichte ist, wenn Sie sich über SSH oder die Konsole in Ubuntu einloggen, denken Sie daran, 'sudo su -' auszuführen, bevor Sie mit dem Bearbeiten von Systemdateien, dem Verschieben/Erstellen von Verzeichnissen oder dem Installieren/Deinstallieren von Software und Diensten beginnen.

1.1 Partitionen

Die Partitionierung des Laufwerks auf diese Weise ist keine Voraussetzung, aber sie verhindert, dass Ihr Server vollständig keinen Speicherplatz mehr hat, falls im /var-Verzeichnis etwas schiefgeht. Außerdem ermöglicht die Partitionierung des Laufwerks auf diese Weise, dass Sie einige zusätzliche Grafiken mit MailScannerMRTG erstellen können, die /var, /var/log und /var/spool separat betrachten können. MailScannerMRTG überprüft den Speicherplatz auf Verzeichnissen nicht, es kann nur die Größe nach Partitionen berechnen.

Beispiel meiner Partitionstabelle:
/boot       50MB        Boot-Partition      EXT3 (PRIMÄR)
Swap        2GB     Swap-Partition (Größe hängt von Ihrem Speicher ab, das Doppelte Ihres Speichers sollte in Ordnung sein) (PRIMÄR)
/       2GB     Root-Partition      EXT3 (LOGISCH)
/var        1GB     Variable Datenpartition EXT3 (LOGISCH)
/var/log    3GB     Variable Datenpartition EXT3 (LOGISCH)
/var/spool  2GB     Variable Datenpartition Spool   EXT3 (LOGISCH)
/usr        4GB     Benutzerinstallierte Programme      EXT3 (LOGISCH)
/usr/local  2GB     Benutzerinstallierte Programme      EXT3 (LOGISCH)
/home       JEDER       Heimverzeichnisse (Guter Platz, um zusätzlichen Speicher zu platzieren, Sie können die Partitionierung ändern, wenn Sie keinen Speicherplatz mehr haben und dies verwenden.)    EXT3 (LOGISCH)

1.2 Netzwerk-Einstellungen überprüfen

Wir müssen sicherstellen, dass das System mit einer gültigen statischen IP eingerichtet ist, die richtigen DNS-Server in /etc/resolv.conf stehen und Ihr Server in der Datei /etc/hosts identifiziert ist.

vi /etc/network/interfaces

Die Datei für die Netzwerk-Schnittstellen sollte ungefähr so aussehen:

auto lo eth0
iface lo inet loopback
# Die primäre Netzwerkschnittstelle
iface eth0 inet static
        address  192.168.1.100
        netmask  255.255.255.0
        network  192.168.1.0
        broadcast 192.168.1.255
        gateway  192.168.1.1

Starten Sie den Netzwerkdienst neu, um diese Änderungen wirksam zu machen:

/etc/init.d/networking restart

Bearbeiten Sie die resolv.conf-Datei, um DNS-Server hinzuzufügen:

vi /etc/resolv.conf

Stellen Sie sicher, dass Ihr Domainname oben in der resolv.conf steht, es sollte ungefähr so aussehen:

search example.com
nameserver 192.168.0.1
nameserver 192.168.0.2
vi /etc/hosts

Der obere Teil der Datei sollte ungefähr so aussehen:

127.0.0.1 localhost.localdomain localhost
192.168.0.100 sfp.example.com sfp

Da wir hier sind, können Sie auch andere Hosts hinzufügen, die unser Spamfilter kennen sollte. Fügen Sie hier interne Mailserver hinzu. Fügen Sie einfach weitere Einträge am Ende der Liste hinzu.

1.3 APT und andere Anpassungen

Apt muss so eingerichtet werden, dass es in den Universe- und Multiverse-Repositories sucht. Sichern Sie Ihre aktuelle /etc/apt/sources.list:

cp /etc/apt/sources.list /etc/apt/sources.list.default

Ersetzen Sie es durch die folgende sources.list-Datei:

vi /etc/apt/sources.list
deb http://us.archive.ubuntu.com/ubuntu dapper main restricted
deb-src http://us.archive.ubuntu.com/ubuntu dapper main restricted
deb http://us.archive.ubuntu.com/ubuntu dapper-updates main restricted
deb-src http://us.archive.ubuntu.com/ubuntu dapper-updates main restricted
deb http://us.archive.ubuntu.com/ubuntu dapper universe multiverse
deb-src http://us.archive.ubuntu.com/ubuntu dapper universe multiverse
deb http://security.ubuntu.com/ubuntu dapper-security main restricted
deb-src http://security.ubuntu.com/ubuntu dapper-security main restricted
deb http://security.ubuntu.com/ubuntu dapper-security universe multiverse
deb-src http://security.ubuntu.com/ubuntu dapper-security universe multiverse

Wir müssen den apt-Cache aktualisieren/auffrischen und einige Software installieren. Um den Cache zu aktualisieren, führen Sie aus:

apt-get update

Hinweis: Dies ist ein guter Zeitpunkt, um Ihr Kernel-Image auf das richtige zu ändern, höchstwahrscheinlich benötigen Sie das ‘linux-image-i686’. Wenn Sie nicht wissen, was das bedeutet, suchen Sie es nach. Führen Sie ein apt-get upgrade aus und nehmen Sie sich einen Moment Zeit, um eventuelle Fehler oder Probleme zu beheben, die Sie möglicherweise haben. Wir wollen alles beseitigen, was in Zukunft Probleme verursachen könnte. Denken Sie daran, einmal neu zu starten, wenn alles bereit ist, und führen Sie ein schnelles dmesg | less aus, es kann viel bewirken.

apt-get install ssh

Sobald ssh installiert ist, sollten Sie sich über ssh mit dem Server verbinden, indem Sie PuTTY von Ihrem Linux- oder Windows-Desktop verwenden. Dies würde es einfacher machen, den Rest dieses Howtos zu erledigen, da Sie in der Lage sind, in das Terminal vom Desktop aus zu kopieren/einzufügen. Also, legen Sie los, sshen Sie dieses Teil.

Ich stelle normalerweise die BIOS-Uhr auf die lokale Zeit ein und führe dann Folgendes aus, um die Uhr zu synchronisieren.

apt-get install ntpdate  

hwclock --systohc

Jetzt installieren wir die meisten der Dinge, die wir benötigen. Ich habe die Liste in 4 APT-Installationsläufe aufgeteilt. 5-15 Installationen auf einmal erscheinen sinnvoll, liegt an Ihnen:

apt-get install libc6-dev dpkg-dev db4.3-util libdb4.3-dev vim lynx bzip2 unzip perl-doc libwww-perl ntp-simple  
  
apt-get install zlib1g-dev zip libdbi-perl libconvert-binhex-perl gcc make autoconf automake libtool libmail-spf-query-perl rblcheck libnet-ident-perl  
  
apt-get install flex bison libcompress-zlib-perl pax libberkeleydb-perl ncftp unzoo arj lzop nomarch arc zoo  
  
apt-get install postfix postfix-pcre postfix-mysql postfix-ldap cabextract lha unrar razor pyzor spamassassin

Wählen Sie KEINE KONFIGURATION, wenn Debconf für Postfix erscheint.

Installieren Sie unarj:

wget http://archive.ubuntu.com/ubuntu/pool/universe/a/arj/unarj_3.10.21-2_all.deb  
  
dpkg -i unarj_3.10.21-2_all.deb

Jetzt müssen wir auch einige Programme entfernen, hoffentlich benötigen Sie keine PCMCIA- oder Druckerunterstützung. Dieser Server benötigt auch keine Einwahlunterstützung. Sie haben möglicherweise nicht alle diese Programme installiert.

Deinstallieren Sie die folgende Software (alles in einer Zeile):

apt-get remove ipchains lpr nfs-common portmap pidentd pcmcia-cs pcmciautils pppoe pppoeconf ppp pppconfig uw-imapd qpopper mailagent

1.6 Dienste bereinigen

Einige Dienste könnten auch nach der Deinstallation der Daemons weiterhin bestehen. Zuerst müssen wir inet.d sichern:

cp -R /etc/init.d /etc/init.d.backup

Jetzt können wir alle Dienste stoppen, die möglicherweise laufen und die wir nicht benötigen:

/etc/init.d/lpd stop  
update-rc.d -f lpd remove  
  
/etc/init.d/nfs-common stop  
update-rc.d -f nfs-common remove  
  
/etc/init.d/portmap stop  
update-rc.d -f portmap remove  
  
/etc/init.d/pcmcia stop  
update-rc.d -f pcmcia remove  
  
/etc/init.d/pcmciautils stop  
update-rc.d -f pcmciautils remove  
  
/etc/init.d/ppp stop  
update-rc.d -f ppp remove  
  
/etc/init.d/exim4 stop  
update-rc.d -f exim4 remove  
  
update-rc.d -f ntpdate remove

Deaktivieren Sie alle Dienste, die wir gestoppt haben:

update-inetd --disable time  
  
update-inetd --disable daytime  
  
update-inetd --disable echo  
  
update-inetd --disable chargen  
  
update-inetd --disable ident  
  
update-inetd --disable discard

Der letzte könnte Sie nach “mehreren Einträgen” fragen, antworten Sie mit Ja (y).

Überprüfen Sie, ob wir alles haben:

lsof -i | grep LISTEN

Der einzige Daemon, den Sie zu diesem Zeitpunkt sehen sollten, ist *:ssh. Möglicherweise müssen Sie dies erneut ausführen:

update-inetd --disable discard

Wenn andere Programme angezeigt werden, versuchen Sie, neu zu starten und erneut zu testen.

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.