|
1 = Konfiguration = |
|
2 |
|
3 Die Konfigurationsdatei des Exim ist der „magischste“ Teil des Exim. |
|
4 Viele Einstellungen in der Konfiguration werden erst zur Laufzeit |
|
5 interpretiert. Ein Test, ob die Konfiguration syntaktisch |
|
6 korrekt ist, lässt sich ausführen mit: |
|
7 |
|
8 > exim -bV |
|
9 |
|
10 Syntaktische Korrektheit allein ist jedoch nicht ausreichend. Fehler |
|
11 können auch später, z.B. durch durch <<expansion,Text-Expansion>>, auftreten. |
|
12 |
|
13 == Konfigurationsdatei |
|
14 |
|
15 Exim sucht beim Start nach genau einer Konfigurationsdatei. |
|
16 Je nach Build können mehrere Stellen in Frage kommen. Der Name der |
|
17 verwendeten Konfigurationsdatei läßt sich ermitteln: |
|
18 |
|
19 > exim -bP configure_file |
|
20 |
|
21 Alternativ kann dem Exim auch der Name einer Konfigurationsdatei auf der |
|
22 Kommandozeile übergeben werden. Jedoch wird Exim einer solchen |
|
23 Konfiguration nur bedingt vertrauen und unter Umständen sofort auf seine |
|
24 setuid-Eigenschaften verzichten. |
|
25 |
|
26 Diese eine Konfigurationsdatei kann `.include`-Anweisungen enthalten, um |
|
27 weitere Teile einzulesen. |
|
28 |
|
29 === Syntax der Konfigurationsdatei |
|
30 |
|
31 TIP: Eine leere Datei ist eine gültige Konfigurationsdatei, aber nicht |
|
32 zwingend eine brauchbare Konfiguration. Für kurze Tests ist dieser Fakt |
|
33 aber sehr brauchbar. Z.B: `exim -C /dev/null -bP primary_hostname`, um |
|
34 Exims Vorstellung über den aktuellen Hostnamen zu überprüfen. |
|
35 |
|
36 Es gelten folgende einfache Regeln beim Lesen der Konfiguration: |
|
37 |
|
38 .Whitespace |
|
39 Leer- und Tabulatorzeichen am Zeilenanfang und -ende werden ignoriert. |
|
40 |
|
41 .Kommentare |
|
42 Zeilen, die mit `#` beginnen, werden ignoriert. Wird an anderen Stellen |
|
43 ein `#` verwendet, hat dieses Zeichen *nicht* die Bedeutung eines |
|
44 Kommentarzeichens. |
|
45 |
|
46 .Fortsetzungzeilen |
|
47 Zeilen, die mit einem `\` enden, werden durch die Folgezeile fortgesetzt, |
|
48 der Zeilenumbruch wird dabei entfernt. |
|
49 |
|
50 .Macrodefinitionen |
|
51 // spec:6.4 |
|
52 Macros werden häufig verwendet, um sehr lange Konfigurationsausdrücke zu |
|
53 vereinfachen. Makros ermöglichen eine einfach Textersetzung beim |
|
54 *Einlesen* der Konfiguration: |
|
55 |
|
56 ---- |
|
57 FOO = foo <1> |
|
58 FOO == bar <2> |
|
59 ---- |
|
60 <1> Definition des Macros |
|
61 <2> Neu-Definition des Macros |
|
62 |
|
63 Macros können auf der Kommandozeile mit `-DFOO=foobar` gesetzt werden. |
|
64 |
|
65 .Einbettung weiterer Files |
|
66 In das Hauptkonfigurations-File können weitere Dateien eingebetten |
|
67 werden: |
|
68 |
|
69 ---- |
|
70 .include other/file |
|
71 ---- |
|
72 |
|
73 Eine bedingte Einbettung ist mit `.include_if_exists` möglich. |
|
74 |
|
75 .Bedingtes Einlesen |
|
76 // spec:6.9 |
|
77 In Abhängigkeit von definierten Macros können Teile der |
|
78 Konfigurationsdatei überprungen werden: |
|
79 |
|
80 ---- |
|
81 .ifdef FOO |
|
82 primary_hostname = foo |
|
83 .endif |
|
84 ---- |
|
85 |
|
86 Verwendbar sind `.ifdef`, `.ifndef`, `.elifdef`, `.elifndef`, |
|
87 `.else` und `.endif`. Dies Auswertung erfolgt während des Einlesens der |
|
88 Konfiguration, also noch *vor* dem Start des Exim. |
|
89 |
|
90 [[config.structure]] |
|
91 === Aufbau der Konfigurationsdatei |
|
92 |
|
93 Die Konfiguration ist entsprechend der Funktionsweise des Exim neben dem |
|
94 globalen Teil in mehrere Abschnitte gegliedert: |
|
95 |
|
96 ACL:: |
|
97 Access Control Lists steuern während einer eingehenden Verbindung |
|
98 die Akzeptanz der Nachricht |
|
99 |
|
100 Routers:: |
|
101 Router sind Regeln, nach denen die Nachrichten weitergeleitet |
|
102 werden. |
|
103 |
|
104 Transports:: |
|
105 Im Transports-Abschnit wird festgelegt, wie die Nachrichten |
|
106 weitergeleitet werden. |
|
107 |
|
108 Rewrite:: |
|
109 In diesem Abschnitt sind die Regeln beschrieben, nach denen |
|
110 Adress-Umschreibungen vorgenommen werden sollen. |
|
111 |
|
112 Authentication:: |
|
113 Konfiguration der Authentifizierungsparameter als Client und als |
|
114 Server |
|
115 |