Der SMTP Server Postfix


1. Einleitung

Wir empfehlen, auf den Linux Systemen als SMTP Server das Programm Postfix anstelle von Sendmail zu verwenden.

Postfix ist in seiner Architektur „sauberer“ als Sendmail und gilt als schneller und sicherer.

Ein wesentlicher Vorteil ist aber auf jeden Fall die Konfiguration. Diese ist weitaus übersichtlicher als jene von Sendmail.

2. Installation

Installieren Sie das Paket postfix. Unter Red Hat Linux 7.3 müssen Sie dazu zuerst das Paket sendmail deinstallieren. Ab Red Hat Linux 8.0 können sendmail und postfix installiert sein. In diesem Fall sollten Sie auch das Paket redhat-switchmail installiert haben. Führen Sie dann folgenden Befehl aus:

redhat-switchmail-nox

Wählen Sie hier als Mail Dämon postfix. Dann stoppen Sie sendmail:

/sbin/service sendmail stop

3. Konfiguration

Editieren Sie nun die Datei /etc/postfix/main.cf und setzen Sie folgende Variablen (ersetzen Sie bestehende Werte oder fügen Sie diese, falls noch nicht gesetzt, am Ende hinzu):

inet_interfaces = all
mynetworks_style = host
relayhost = smtp.uibk.ac.at
smtpd_banner = $myhostname ESMTP $mail_name
disable_vrfy_command = yes
  • inet_interfaces bewirkt, dass Postfix, entgegen der Red Hat Linux Standardeinstellung, auch von anderen Rechnern aus erreichbar ist (es bindet an alle Netzwerkinterfaces, nicht nur loopback).

  • Durch Setzen von mynetworks_style nimmt Postfix zwar Mails von anderen Rechner entgegen, die für den eigenen Rechner bestimmt sind. Postfix dient aber nicht als Relay für andere Systeme (Sie können kein Mail abliefern, das weder vom Postfix Rechner stammt noch an einen Empfänger an diesem adressiert ist).

  • Mit Hilfe von relayhost legt man fest, dass Postfix alle Mails an andere Systeme beim Mail Relay smtp.uibk.ac.at abliefern soll.

  • Die obige Einstellung von smtpd_banner bewirkt, dass zwar sichtbar ist, dass Postfix als Mail Server verwendet wurde. Im Gegensatz zur Standardeinstellung wird dabei aber nicht die Version von Postfix angezeigt.

  • disable_vrfy_command bewirkt schließlich, dass bei einer Verbindung zu Postfix der Befehl VRFY nicht verwendet werden kann, da es darüber möglich ist, gewisse Information über die Benutzer des Systems zu erhalten.

Dann editieren Sie die Datei /etc/postfix/aliases. Suchen Sie dort die Zeile, die mit „root:“ beginnt normalerweise sollte hier „root: postfix“ stehen). Ersetzen Sie hier den Teil nach dem Doppelpunkt durch Ihre eigene Mail Adresse, also beispielsweise:

root:   meine.adresse@uibk.ac.at

Damit erhalten Sie an Ihrer offiziellen Mail Adresse alle Mails, die an root an Ihrer Maschine gehen (etwa wichtige Systemmeldungen).

Wenn Sie die Firewallkonfiguration wie von uns empfohlen durchgeführt haben, müssen Sie nun noch den SMTP Port in der Datei /etc/sysconfig/iptables freischalten:

-A INPUT -p tcp -m tcp -s 138.232.0.0/16 --dport 25 -j ACCEPT
-A INPUT -p tcp -m tcp -s 193.171.64.0/25 --dport 25 -j ACCEPT

Fügen Sie das am Besten in jenem Abschnitt der Konfigurationsdatei ein, der in unserer Musterkonfiguration mit „Examples of User-Defined Policies follows“ betitelt ist.

Prüfen Sie mit

/sbin/chkconfig --list postfix

sicherheitshalber noch einmal, ob Postfix auch wirklich aktiviert ist. Starten Sie nun außerdem Postfix noch einmal:

/sbin/service postfix restart

4. Sonstiges

Wir empfehlen dringend, dass jeder Benutzer in seinem Verzeichnis eine Datei .forward anlegt. Diese sollte als einzige Zeile die offizielle E-Mail Adresse beinhalten:

meine.adresse@uibk.ac.at

Damit gehen alle Mails an die offizielle Adresse, anstatt auf der Maschine liegen zu bleiben und dort nie gelesen zu werden ...

Alternativ kann dies für jeden Benutzer auch in der Datei /etc/postfix/aliases erfolgen.

5. finally()

Die Konfigurationsdatei main.cf ist gut kommentiert, viele Einstellungen sollten sich rein aufgrund der Kommentare verstehen lassen.

Unter /usr/share/doc/postfix-[verison]/ findet sich auch eine umfangreiche Dokumentation. Außerdem gibt es hier auch zahlreiche Konfigurationsbeispiele.