1 [[configuration]] |
1 [[config]] |
2 = Konfiguration = |
2 = Konfiguration = |
3 |
3 |
4 Die Konfigurationsdatei des Exim ist der „magischste“ Teil des Exim. |
4 Die Konfigurationsdatei des Exim ist der „magischste“ Teil des Exim. |
5 Viele Einstellungen in der Konfiguration werden erst zur Laufzeit |
5 Viele Einstellungen in der Konfiguration werden erst zur Laufzeit |
6 interpretiert. Ein Test, ob die Konfiguration syntaktisch |
6 interpretiert. Ein Test, ob die Konfiguration syntaktisch |
7 korrekt ist, lässt sich ausführen mit: |
7 korrekt ist, lässt sich ausführen mit: |
8 |
8 |
9 > exim -bV |
9 > exim -bV |
10 |
10 |
11 Syntaktische Korrektheit allein ist jedoch nicht ausreichend. Fehler |
11 Syntaktische Korrektheit allein ist jedoch nicht ausreichend. Fehler |
12 können auch später, z.B. durch durch <<expansion,Text-Expansion>>, auftreten. |
12 können auch später, z.B. durch durch <<config.expansion,Text-Expansion>>, auftreten. |
|
13 Für eine einfach Überprüfung der Konfiguration eignen sich die Kommandos |
|
14 zum Routing-Test: |
|
15 |
|
16 > exim -bt <Adresse> |
13 |
17 |
14 == Konfigurationsdatei |
18 == Konfigurationsdatei |
15 |
19 |
16 Exim sucht beim Start nach genau einer Konfigurationsdatei. |
20 Exim sucht beim Start nach genau einer Konfigurationsdatei. |
17 Je nach Build können mehrere Stellen in Frage kommen. Der Name der |
21 Je nach Build können mehrere Stellen in Frage kommen. Der Name der |
20 > exim -bP configure_file |
24 > exim -bP configure_file |
21 |
25 |
22 Alternativ kann dem Exim auch der Name einer Konfigurationsdatei auf der |
26 Alternativ kann dem Exim auch der Name einer Konfigurationsdatei auf der |
23 Kommandozeile übergeben werden. Jedoch wird Exim einer solchen |
27 Kommandozeile übergeben werden. Jedoch wird Exim einer solchen |
24 Konfiguration nur bedingt vertrauen und unter Umständen sofort auf seine |
28 Konfiguration nur bedingt vertrauen und unter Umständen sofort auf seine |
25 setuid-Eigenschaften verzichten. |
29 setuid-Eigenschaften verzichten. (Mehr dazu im Abschnitt über |
|
30 <<admin.permissions,Berechtigungen>>.) |
26 |
31 |
27 Diese eine Konfigurationsdatei kann `.include`-Anweisungen enthalten, um |
32 NOTE: Debian GNU/Linux verwendet hier ein sehr eigenes Schema. Die |
28 weitere Teile einzulesen. |
33 Konfiguration wird von einem Script erzeugt. Dieser Script wird |
|
34 gesteuert von `/etc/exim4/update-exim4.conf.conf` und einem Template |
|
35 `/etc/exim4/exim4.conf.template`. Die resultierende Datei heisst dann |
|
36 `/var/lib/exim4/exim4.conf.autogenerated`. Dieses Schema wird hier nicht |
|
37 besprochen. |
|
38 |
|
39 .Einlesen der Konfiguration |
|
40 Die Konfiguration wird eingelesen bei jedem Start einer Exim-Instanz. |
|
41 Das ist jeder Aufruf von `sendmail` und auch der Start des Servers. |
|
42 Aber auch zur Laufzeit des Servers werden neue Exim-Instanzen gestartet. |
|
43 Ein Hangup-Signal an den laufenden Server lässt auch diesen die |
|
44 Konfiguration neu einlesen. |
|
45 |
|
46 Fehlerhafte Konfiguration führt zu einem Eintrag im *paniclog* und einem |
|
47 Ende des jeweiligen Prozesses. Mails gehen hierbei nicht verloren, bis |
|
48 das Problem behoben ist, werden sie |
|
49 lediglich nicht weiter verarbeitet oder transportiert, bis das |
29 |
50 |
30 === Syntax der Konfigurationsdatei |
51 === Syntax der Konfigurationsdatei |
31 |
52 |
32 TIP: Eine leere Datei ist eine gültige Konfigurationsdatei, aber nicht |
53 TIP: Eine leere Datei ist eine gültige Konfigurationsdatei, aber nicht |
33 zwingend eine brauchbare Konfiguration. Für kurze Tests ist dieser Fakt |
54 zwingend eine brauchbare Konfiguration. Für kurze Tests ist dieser Fakt |
42 .Kommentare |
63 .Kommentare |
43 Zeilen, die mit `#` beginnen, werden ignoriert. Wird an anderen Stellen |
64 Zeilen, die mit `#` beginnen, werden ignoriert. Wird an anderen Stellen |
44 ein `#` verwendet, hat dieses Zeichen *nicht* die Bedeutung eines |
65 ein `#` verwendet, hat dieses Zeichen *nicht* die Bedeutung eines |
45 Kommentarzeichens. |
66 Kommentarzeichens. |
46 |
67 |
47 .Fortsetzungzeilen |
68 .Fortsetzungszeilen |
48 Zeilen, die mit einem `\` enden, werden durch die Folgezeile fortgesetzt, |
69 Zeilen, die mit einem `\` enden, werden durch die Folgezeile fortgesetzt, |
49 der Zeilenumbruch wird dabei entfernt. |
70 der Zeilenumbruch wird dabei entfernt. |
50 |
71 |
51 .Macrodefinitionen |
72 .Macrodefinitionen |
52 // spec:6.4 |
73 // spec:6.4 |
53 Macros werden häufig verwendet, um sehr lange Konfigurationsausdrücke zu |
74 Makros werden häufig verwendet, um sehr lange Konfigurationsausdrücke zu |
54 vereinfachen. Makros ermöglichen eine einfach Textersetzung beim |
75 vereinfachen. Makros ermöglichen eine einfach Textersetzung beim |
55 *Einlesen* der Konfiguration: |
76 *Einlesen* der Konfiguration: |
56 |
77 |
57 ---- |
78 ---- |
58 FOO = foo <1> |
79 FOO = foo <1> |
59 FOO == bar <2> |
80 FOO == bar <2> |
60 ---- |
81 ---- |
61 <1> Definition des Macros |
82 <1> Definition des Macros |
62 <2> Neu-Definition des Macros |
83 <2> Neu-Definition des Macros |
63 |
84 |
64 Macros können auf der Kommandozeile mit `-DFOO=foobar` gesetzt werden. |
85 Macros können auf der Kommandozeile mit `-DFOO=foobar` gesetzt bzw. |
|
86 überschrieben werden. |
65 |
87 |
66 .Einbettung weiterer Files |
88 .Einbettung weiterer Files |
67 In das Hauptkonfigurations-File können weitere Dateien eingebetten |
89 In das Hauptkonfigurations-File können weitere Dateien eingebettet |
68 werden: |
90 werden: |
69 |
91 |
70 ---- |
92 ---- |
71 .include other/file |
93 .include other/file |
72 ---- |
94 ---- |
92 === Aufbau der Konfigurationsdatei |
114 === Aufbau der Konfigurationsdatei |
93 |
115 |
94 Die Konfiguration ist entsprechend der Funktionsweise des Exim neben dem |
116 Die Konfiguration ist entsprechend der Funktionsweise des Exim neben dem |
95 globalen Teil in mehrere Abschnitte gegliedert: |
117 globalen Teil in mehrere Abschnitte gegliedert: |
96 |
118 |
97 ACL:: |
119 acl:: |
98 Access Control Lists steuern während einer eingehenden Verbindung |
120 Access Control Lists steuern während einer eingehenden Verbindung |
99 die Akzeptanz der Nachricht |
121 die Akzeptanz der Nachricht |
100 |
122 |
101 Routers:: |
123 routers:: |
102 Router sind Regeln, nach denen die Nachrichten weitergeleitet |
124 Router sind Regeln, nach denen die Nachrichten weitergeleitet |
103 werden. |
125 werden. |
104 |
126 |
105 Transports:: |
127 transports:: |
106 Im Transports-Abschnit wird festgelegt, wie die Nachrichten |
128 Im Transports-Abschnit wird festgelegt, wie die Nachrichten |
107 weitergeleitet werden. |
129 weitergeleitet werden. |
108 |
130 |
109 Rewrite:: |
131 rewrite:: |
110 In diesem Abschnitt sind die Regeln beschrieben, nach denen |
132 In diesem Abschnitt sind die Regeln beschrieben, nach denen |
111 Adress-Umschreibungen vorgenommen werden sollen. |
133 Adress-Umschreibungen vorgenommen werden sollen. |
112 |
134 |
113 Authentication:: |
135 authentication:: |
114 Konfiguration der Authentifizierungsparameter als Client und als |
136 Konfiguration der Authentifizierungsparameter als Client und als |
115 Server |
137 Server |
116 |
138 |
117 // vim:ft=asciidoc |
139 // vim:ft=asciidoc |