exim.txt
changeset 1 8ca8d1b61947
parent 0 1a57317575ca
child 2 130fc78aac2a
equal deleted inserted replaced
0:1a57317575ca 1:8ca8d1b61947
     1 Exim
     1 = Exim - Konfiguration und Betrieb =
     2 ====
     2 :Author:    Heiko Schlittermann
     3 Heiko Schlittermann
     3 :Email:	    hs@schlittermann.de
       
     4 :Date:	    2014-12-21
       
     5 :Revision:  0.1
     4 :doctype: book
     6 :doctype: book
       
     7 :toc:
     5 
     8 
     6 Im folgenden nehme ich Bezug auf Exim 4.85.
     9 [[preface]]
     7 Ultimative Referenz ist immer das Spec-File, also die
    10 = Vorwort =
     8 Referenzdokumentation, die den Exim begleitet. Einige Details werden
       
     9 hier ausgelassen werden.
       
    10 
    11 
    11 == Konfigurationsdatei
    12 SMTP-Server gehören neben Webservern vermutlich zur am häufigsten
       
    13 genutzen Art von Servern. Sie treten jedoch deutlich selterner in
       
    14 Erscheinung, jedoch beruht ein Großteil dessen, was wir als _Internet_
       
    15 bezeichnen auf der Funktion von SMTP-Servern.
    12 
    16 
    13 Exim sucht beim Start nach genau einer Konfigurationsdatei.
    17 Seit etwa 1996 beschäftige ich mich mit dem Betrieb von SMTP-Servern,
    14 Diese lässt sich mit 
    18 seit etwa 1997 ist es der Exim. Durch meine Arbeit konnte ich viel über
       
    19 die Interna des Exim lernen. 
    15 
    20 
    16     exim -bP configure_file
    21 .Für wen ist dieses Buch?
       
    22 Sie möchten Ihrem Exim konfigurieren und betreiben und Sie möchten dabei
       
    23 verstehen, was Sie tun. Dieses Buch soll kein Ersatz für die überaus
       
    24 hervorragende <<spec-file,Exim-Spezifikation>> sein, sondern eine
       
    25 Ergänzung.
    17 
    26 
    18 anzeigen.
    27 .Referenz
       
    28 Dieses Buch bezieht sich auf die Exim-Version 4.85.  An einigen Stellen
       
    29 wurden die Darstellungen vereinfacht. Die ultimative Informationsquelle
       
    30 ist immer das <<spec-file,Spec-File>>
    19 
    31 
       
    32 == Typographische Konventionen
    20 
    33 
    21 === Format der Konfigurationsdatei
    34 Folgende Konventionen werden im folgenden verwendet:
    22 
    35 
    23 Die Konfigurationsdatei beginnt mit einem globalen Teil, es folgen
    36 'exim.conf'::
    24 Abschnitte für ACL, Router, Transports, Address-Rewriting,
    37     verwenden wir für Pfad- und Dateinamen.
    25 Retry-Verhalten und Authentifizierung.
       
    26 
    38 
    27 Kommentare sind erlaubt - das sind Zeilen, die mit dem Rautenzeichen (#)
    39 `ls -l`::
    28 beginnen. Vor der Raute ist lediglich Whitespace erlaubt. Rautenzeichen
    40     verwenden wir für Kommandos.
    29 an anderen Stellen sind *kein* Kommentar.
       
    30 
    41 
    31 Der Parser der Konfigurationsdatei ist relativ simpel:
    42 *router*::
       
    43     verwenden wir für Namen von Exim-Routern, -Transports und -Authenticators
    32 
    44 
    33 . Kommentarzeilen werden entfernt
    45 include::operation.txt[]
    34 . Fortsetzungszeilen werden zusammengesetzt
    46 include::config.txt[]
       
    47 include::appendix.txt[]
    35 
    48 
    36 Es ist also möglich, auch innerhalb von Fortsetzungszeilen Kommentare zu
    49 // vim:ft=asciidoc
    37 verwenden:
       
    38 
       
    39 ----
       
    40     domainlist local_domains = example.com \
       
    41 			       # foo bar comment
       
    42 			       : example.org \
       
    43 			       : example.net
       
    44 ----
       
    45 
       
    46 
       
    47 ==== Macros
       
    48 
       
    49 In der Konfigurationsdatei dürfen Macros enthalten sein. Macros bestehen
       
    50 ausschließlich aus Großbuchstaben und Ziffern.
       
    51 
       
    52 ----
       
    53     FOOBAR = foo bar
       
    54     FOO = bar
       
    55 ----
       
    56 
       
    57 Die Macros sind ein sehr einfacher Textersetzungsmechanismus, der
       
    58 während des Einlesens der der Konfiguration stattfindet. Die Gültigkeit
       
    59 der Macros beginnt an der Stelle ihrer Definition. Macro-Namen dürfen
       
    60 nicht in später definierten Macro-Namen enthalten sein. Eine
       
    61 Neudefinition von Macros ist jederzeit möglich:
       
    62 
       
    63 ----
       
    64     FOO = bar
       
    65
       
    66     FOO == foobar
       
    67 ----
       
    68 
       
    69 Macros, die auf der Kommandozeile beim Aufruf des Exim gesetzt werden,
       
    70 haben Vorrang vor denen, die in der Konfiguration definiert sind. Aus
       
    71 Sicherheitsgründen legt Exim aber seine setuid-Rechte ab, sobald auf der
       
    72 Kommandozeile Macros definiert sind.
       
    73 footnote:[Mit Ausnahme von Macros, die in einer zur Build-Zeit
       
    74 definierten Whitelist stehen.]
       
    75 
       
    76     exim -DFOO=bar …
       
    77 
       
    78 ==== Includes
       
    79 
       
    80 Die Konfigurationsdatei darf weitere Konfigurationsdateien
       
    81 referenzieren. Diese werden mit `.include`  oder mit
       
    82 `.include_if_exists` eingelesen. Ebenso ist ein bedingtes Lesen von
       
    83 Teilen der Konfiguration möglich: `.ifdef` erlaubt hier den Test von
       
    84 Macros.