Postfix Mailserver

Postfix zielt insbesondere auf Sicherheit ab und ist eine kompatible Alternative zu Sendmail. Wie mal jemand sagte: "Wer Sendmail ein mal einrichtet und es läuft sofort, der ist genial. Wer aber Sendmail freiwillig ein zweites mal einrichtet, der ist ein Idiot." Das ist vor allem dem komplizierten und "zickigen" Setup von Sendmail geschuldet. Mit Postfix sollte es einfacher werden, was auch gut funktioniert. In diesem Tutorial zeige ich wie einfach der Postfix zu konfigurieren ist. Obendrein, weil es sich so schön anbietet, gibt es einen IMAP und POP3 Postkasten und - ganz wichtig! - den SMTP-Auth, dass niemand den Server als Spamschleuder missbrauchen kann.

Wozu einen Mailserver?

E-Mails sind heutzutage kaum wegzudenken. Schließlich ist es ein schneller Weg der Kommunikation und bindet die Teilnehmer nicht an ein Medium wie das Telefon. E-Mails können auch später gelesen und beantwortet werden. Beim Telefon geht das natürlich nicht. Es klingelt und entweder du gehst ran oder eben nicht.

Rahmenbedingungen für diesen Aufbau:

Es dient eine virtuelle Maschine in VMWare als Hostsystem. Installiert ist Debian 8 (Jessie) in einer Minimalinstallation, also nur die Systemtools. Auf das X-Window-System und sonstigen Schnickschnack habe ich wie immer verzichtet. Die VM hat 512 Mb Ram, 2 CPUs mit zwei Kernen und hat 20 Gb Plattenplatz.  Ein Internetzugriff findet über NAT statt für evtl. Nachinstallationen von Software. Wichtig ist, dass die VM eine feste IP hat und nicht vom DHCP bezogen wird. Ich habe als fixe IP 192.168.2.117 gesetzt. Das Gateway ist 192.168.2.1

Die Installation:

Zunächst starten wir die Installation von Postfix mit folgender Zeile. Vorausgesetzt, dass wir als Root im System angemeldet sind.

apt-get install postfix

Während der Installation bekommen wir zwei Fragen gestellt die wie folgt beantwortet werden. Natürlich ist die Domain anzupassen, also nicht einfach abschreiben sondern die eigene Domain und Computername eintragen.

Internet-Site

mailserver.brainworld.lpic

 

Dann legen wir mal mit der Konfiguration los. Zunächst ändern wir die /etc/postfix/main.cf. Eine funktionierendes Beispiel ist hier:

myhostname = lanmail.adler.lpic
myorigin = $myhostname
mydestination = lanmail.adler.lpic, adler.lpic, localhost, localhost.localdomain
mynetworks = 127.0.0.0/8 192.168.2.0/24 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
biff = no
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
message_size_limit = 204800000

Wichtig sind hier myhostname, myorigin, mynetworks und inet_interfaces. myhostname ist, denke ich selbsterklärend. myorigin ist default $myhostname und gibt an was hinter der Absendeadresse user@ steht - bspw. user.nachname@lanmail.brainworld.lpic. Das ist bei kleinen Netzwerken, die nur einen Mailserver haben kein Problem. In großen Netzwerken, wo viele Mailserver stehen kann man dann die eigentliche Domain verwenden (user.nachname@brainworld.lpic). Dann ist noch mydestination zu setzen. Darin legt man fest auf welche Domains der Postfix hört, also zuständig ist. Die Direktive mailbox_size_limit legt fest wie groß die Postfächer ALLER User sein sollen. Der Default liegt hier bei 50 Mb. Mit mynetworks legt man fest welche Netze zum versenden von E-Mails erlaubt sind ohne, dass die User sich mit SMTP-Auth identitifizieren müssen. Um festzulegen wie groß eine E-Mail maximal sein darf bevor sie vom Sytem abgelehnt wird, setzt man message_size_limit mit einem Wert. Der Defaultwert ist 10240000, was einer Größe von 10 Megabyte entspricht.

Den Postfix nun mit einem systemctl restart postfix neu starten und die Mails sollten nun problemlos verschickt und empfangen werden.

Allerdings ist die Sache die, dass wir diesen Server im Internet, also außerhalb unseres LAN-Netzwerks nicht so betreiben könnten. Warum? Wir könnten keine E-Mails verschicken, da wir unter mynetworks nur unser LAN-Netz stehen haben und da der Postfix außerhalb unseres Netzes steht, ist der Eintrag quasi nutzlos. Das bedeutet, dass der Postfix uns ein Versenden von Mails verweigern wird, weil wir nicht mit in SEINEM Netzwerk sind. Ein Eintragen des Netzwerks des Internetzugangs-Providers oder sogar ein Einstellen auf 0.0.0.0/8 würde dazu führen, dass unser Postfix als Spamschleuder missbraucht werden könnte. Aus diesem Grund brauchen wir nun SMTP-Auth damit sich die User zunächst am Postfix authentifizieren müssen. Oder anders ausgedrückt: Mit der Authentifizierung per SMTP-Auth dürfen wir Mails versenden. Und nur dann.

Weitere Informationen zu Direktiven findest du unter: http://www.postfix.org/postconf.5.html

Die aktuellen Direktiven, die Postfix jetzt gerade nutzt findest du mit: postconf -n
Alle möglichen Direktiven erhälst du mit: postconf
Wer Postfix etwas gesprächiger in den Logfiles machen möchte, der hängt in der ersten unkommentierten Zeile ein -v hinter das smtpd. Das sollte man natürlich nur solange machen wie man auf Fehlersuche ist. Danach wieder das -v entfernen, um die Logfiles nicht zu sehr vollzustopfen.
smtp      inet  n       -       n       -       -       smtpd -v
 
Mehr zu Dovecot findet man hier: http://wiki.dovecot.org/FrontPage?action=show&redirect=StartSeite#Dovecot_configuration