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/interfacesDie 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.1Starten Sie den Netzwerkdienst neu, um diese Änderungen wirksam zu machen:
/etc/init.d/networking restartBearbeiten Sie die resolv.conf-Datei, um DNS-Server hinzuzufügen:
vi /etc/resolv.confStellen 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.2vi /etc/hostsDer obere Teil der Datei sollte ungefähr so aussehen:
127.0.0.1 localhost.localdomain localhost
192.168.0.100 sfp.example.com sfpDa 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.defaultErsetzen Sie es durch die folgende sources.list-Datei:
vi /etc/apt/sources.listdeb 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 multiverseWir müssen den apt-Cache aktualisieren/auffrischen und einige Software installieren. Um den Cache zu aktualisieren, führen Sie aus:
apt-get updateHinweis: 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 sshSobald 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 --systohcJetzt 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 spamassassinWä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.debJetzt 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 mailagent1.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.backupJetzt 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 removeDeaktivieren 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 discardDer letzte könnte Sie nach “mehreren Einträgen” fragen, antworten Sie mit Ja (y).
Überprüfen Sie, ob wir alles haben:
lsof -i | grep LISTENDer einzige Daemon, den Sie zu diesem Zeitpunkt sehen sollten, ist *:ssh. Möglicherweise müssen Sie dies erneut ausführen:
update-inetd --disable discardWenn andere Programme angezeigt werden, versuchen Sie, neu zu starten und erneut zu testen.
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.