Login


 
Newsletter
Werbung

So, 24. Mai 2009, 00:00

Mailserver auf Debian mit IMAP, Smarthost und Filter

Wir wollen uns für den Hausgebrauch einen kleinen Mailserver einrichten, der für uns einige Aufgaben erledigt. Was wollen wir eigentlich mit unserem Mailserver? Wir haben einige Mailboxen extern bei unseren Internetprovidern, Webdiensten oder eigene Webauftritte extern liegen. Diese Mails rufen wir normalerweise mit einem Mailprogramm auf unserem Rechner ab. Haben wir mehrere Rechner, so muss dies für jede Maschine mühevoll eingerichtet werden. Hier kommt nun unser kleiner Server ins Spiel, der bei uns daheim steht. Hierzu muss dieser natürlich ständig mit dem Internet verbunden sein, wodurch hier definitiv nur eine echte Flatrate in Frage kommt. Alles andere wäre nicht bezahlbar. Zudem wollen wir von extern mit einem Webmailer unsere Mails einsehen können und auch versenden. Dies setzt voraus, dass auf unserem Webserver ein Apache läuft. Entsprechende Sicherheitsmaßnahmen wie Firewall und einen IP-Filter wie Fail2ban sollten natürlich aktiviert sein. Als Basis verwende ich ein Linux Debian 5 »Lenny«.

Wir werden in diesem Tutorial lernen, wie wir E-Mails von unseren externen Mailboxen in einem kurzen Intervall regelmäßig abrufen, diese auf Viren und Spam überprüfen, dann über ein Verteilsystem in unsere lokalen Mailboxen vorsortieren und schon nach jeweiligen Inhalten (Werbung, Privates etc.) aufteilen können, ohne dass entsprechende Filterregeln von lokalen Mailprogrammen erst bemüht werden müssen.

Desweiteren müssen wir unserem Server beibringen, auch Mails über einen externen Mailserver (Smarthost) zu versenden, und wir richten uns einen kleinen Webmailer ein.

Den Weg einer Mail auf unserem Server habe ich einmal über ein Schema verdeutlicht, das uns zeigen soll, welche Bausteine wir benötigen, um eine Mail bei uns daheim sauber in die Kiste zu bringen:

[Mailserver-Schema]

Pierre Kretschmer

[Mailserver-Schema]

Hier also einmal der Ablauf: Eine Mail landet auf dem Server unseres Providers und liegt dort in seiner Mailbox. Sie wartet darauf, dass wir diese zunächst mit getmail abrufen. Hier wird bereits die Mail mit Spamassassin geprüft, ob es sich um Spam handelt. Die Mail wird dann an Procmail übergeben, der zum einen entscheidet, in welches Postfach und in welchen Ordner des Postfachs die Mail geht. Hierbei wird noch überprüft, ob die Mails frei von Viren sind. Dazu wird das Virenprüfprogramm ClamAV mit Clamassassin verwendet. Herr der Mailboxen und der Verzeichnisse ist der IMAP-Server Dovecot, der allen Mailprogrammen die Verzeichnisse im Netz intern und extern zur Verfügung stellt. Wer dann von außerhalb über einen Browser auf seine Mails zugreifen möchte, der kann das dann mit einem Webmailer auf dem Webserver Apache bewerkstelligen. Als Webmailer nehmen wir Squirrelmail, der unsere Schnittstelle nach außen darstellt. Es kann natürlich sein, dass man über den Webmailer eine Mail versenden will. Das übernimmt dann der MTA (Mail Transport Agent) Exim4, der diese Mail dann an einen externen SMTP-Server des Providers (Smarthost) weitergibt, der dann dafür sorgt, dass die Mail auch ihren Empfänger erreicht.

Installation und Konfiguration von Getmail

Wir installieren zuerst getmail mit apt-get install getmail4. Wir legen nun eine neuen User getmail an, der für uns in Zukunft die Sache erledigen wird: adduser getmail.

Vergeben Sie hier ein Passwort. Da es kein Standarduser sein soll, muss er ggf. vom FTP-Zugriff ausgeschlossen werden. Das erledigt man, indem man den User getmail in die Datei /etc/ftpusers einträgt. Nach einer Änderung ist proftpd neu zu starten: /etc/init.d/proftpd restart

Gleiches machen wir nun mit einem User postfach1. Den Namen kann man frei wählen, denn das werden die Mailnutzer werden, die dann via IMAP ihre Mails abrufen können.

Wir wollen auch nicht, dass eventuell über ssh auf die Mailboxen zugegriffen werden kann. Man kann das Anmelden (auch lokal am Rechner) unterbinden, indem man in der Datei /etc/passwd für den jeweiligen Benutzer am Zeilenende das /bin/bash in /bin/false abändert.

Um auch ganz sicher zu sein, dass das richtig konfiguriert ist, prüft man, dass keine Anmeldung an FTP und SSH möglich ist.

Nun wechseln wir in das Verzeichnis /home/getmail und legen ein neues verstecktes Verzeichnis an:

mkdir .getmail

Dort erstellen wir eine Konfigurationsdatei .getmail/mailbox1.conf mit folgenden Inhalt (ohne die mit # beginnenden Kommentare):

Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung