Bei einer einfachen Installation von Postfix aus den Paketen einer
Linux-Distribution oder den BSD Ports braucht der Systemadministrator
die master.cf
in der Regel nicht zu verändern. Er
sollte aber grundsätzlich verstehen was in dieser Datei
eingestellt werden kann.
master.cf
Das Postfix Paket selbst bringt ausführlich kommentierte
Konfigurationsdateien mit. Der grüßte Teil der
master.cf
besteht aus Erläuterungen. Die
Konfiguration erfolgt zeilenweise in einer Tabellenähnlichen
Datenstruktur. Jede Zeile definiert hier eine Komponente des
Postfixsystems, die vom Masterprozess gestartet werden kann. Die
einzelnen Spalten steuern wie und wann der zentrale Daemon die
jeweiligen Prozesse startet oder stoppt.
Eine Konfigurationszeile der Konfigurationsdatei beginnt immer in der ersten Spalte. Nach einem Zeilenumbruch wird sie nach einem Whitespace fortgesetzt. Es werden also keine \ benötigt um Zeilenumbrüche zu maskieren.
Jede Konfigurationszeile ist in maximal 8 Spalten unterteilt. Die Spalten werden durch Whitespaces voneinander getrennt. In jeder Zeile haben die einzelnen Spalten dieselbe Bedeutung für die jeweilige Teilkomponente. Einige der Spalten sind mit einem Defaultwert vorbelegt. Wenn in dieser Spalte ein "-" eingetragen wird kommt der Defaultwert zum tragen.
service
Hier wird der Service-Typ eingetragen, der zur folgenden Typ-Spalte passen muß. Jeder Bezeichner in dieser Spalte muss eindeutig sein.
Services, die in der zweiten
Spalte als inet definiert werden, müssen auf eine
Portnummer aufgelöst werden können. Das heisst, das dem
hier eingetragenen Service in der Datei /etc/services
eine
Portnummer zugeordnet sein muss. Alternativ zum Eintrag in
/etc/services kann auch direkt eine
Portnummer angegeben werden. Der Portnummer oder dem Dienstbezeichner
kann noch ein Hostname oder eine IP-Adresse vorangestellt werden. Der
Master Daemon bindet sich dann nur an das konfigurierte
Interface. Ein Eintrag hier kann also im Format
[host|ip:]<service|port> (z.B: localhost:smtp)
eingetragen werden
Ein hier angegebener Bezeichner für einen Service kann in einem transport adressiert werden. Dieses ist z.B. die empfohlene Vorgehensweise um die E-Mail an Cyrus Mailboxen auszuliefern.
type
Dieses Feld bietet die Möglichkeit den Typ des in Spalte 1 definierten Services festzulegen. Mögliche Typen sind inet für Internet Sockets, unix für Unix-Domain Sockets und fifo für Named Pipes.
Falls eine E-Mail an ein Programm übergeben werden soll, wird in der master.cf ein Service des Typs unix eingestellt. In der "command" Spalte wird das Kommando pipe eingestellt, das eine E-Mail an ein externes Programm übergibt.
private
(Default ja) Ein als privat gekennzeichneter Dienst darf nur vom Postfix-Mailsystem selbst angesprochen werden. Dieses ist auch die Defaulteinstellung. Dienste die als Internet Sockets definiert sind müssen als öffentlich ("n") deklariert werden.
unpriv
(Default ja)Der Parameter unpriv legt fest, ob der Dienst mit mit der Userid
eines unprivilegierten Accounts gestartet werden soll oder als
root. Die Benutzer ID des unprivilegierten Accounts wird in main.cf mit dem Parameter
mail_owner
bestimmt. Wenn der Dienst mit den
Rechten von root gestartet werden soll, wird hier ein "n"
eingetragen.
chroot
Mit chroot wird bestimmt, ob der Prozess in einer chroot Umgebung
laufen soll. Die Basis dieser Umgebung ist das Verzeichnis in dem die
Mail Queues von Postfix installiert sind. Dieses Verzeichnis wird mit
Hilfe des Parameters queue_directory
in der main.cf bestimmt. Alle Prozesse mit Ausnahme der
als PIPE definierten und den Daemons die die virtuelle oder lokale
Auslieferung von E-Mail übernehmen, können chroot gestartet
werden.
wakeup
Hier wird eingestellt, ob der in der "command" Spalte eingestellte Prozess in regelmässigen Abständen Aktionen durchführen soll, wie z.B. das Leeren die Queue.
maxproc
Die maximale Anzahl Prozesse, die von diesem Service gestartet werden können.
command
Das zu startende Kommando. Der Pfad ist relativ zum Postfix Kommandoverzeichnis (kann mit dem Parameter program_directory in main.cf eingestellt werden).
args
Die Argumente, die dem Kommando der Spalte "command" übergeben werden. Für die von Postfix selbst bereitgestellten Kommandos kann hier mit Hilfe eines oder mehreren -v Schaltern ein umfangreicheres Logging eingestellt werden.
Das Pipe Kommando bietet die umfangreichste Liste von möglichen Argumenten. Die Bedeutung der einzelnen Parameter ist in der Manpage pipe(8) dokumentiert.