Exim - ein MTA (Framework)? =========================== Heiko Schlittermann 2014-12-21 Exim ist einer der meisten SMTP-Server im Internet, er ist der Standard-MTA der Debian GNU/Linux Distribution, er ist ausgesprochen gut dokumentiert und betriebssicher. Und er ist so flexibel, dass ich ihn gerne auch als MTA-Framework bezeichne. Diesen Exim möchte ich vorstellen Exims Konfiguration wird für *kompliziert* und *magisch* gehalten. Etwas von der Magie möchte ich nehmen, und ich möchte Anregungen geben, Exim für eigene Mailprojekte mit einzusetzen. Ich werde mit einem kurzen Exkurs über die Historie des Exim beginnen. Danach möchte ich die Arbeitsweise des Exim erläutern, welchen Weg durch interne Prozesse nehmen die Nachrichten vom Posteingang zum Postausgang. * Wie positioniert Exim sich gegenüber anderen MTA * Arbeitsweise und Anatomie: Receiving, Routing, Transport Schlüsselrolle für die Flexibilität des Exim ist seine Konfiguration. Sie wird zu großen Teilen erst während der Laufzeit interpretiert: Variablen werden interpoliert, Lookups werden ausgeführt, Transportmechanismen konfiguriert. Ich möchte einen kurzen systematischen Einblick in die Möglichkeiten dieser (Interpo|Manipu)lationen geben. * Konfiguration: Struktur und Syntax (Beispiel: Standard-Konfigurations-Datei) * String-Expansionen / Listen / File- und Datenbank-Lookups Nun möchte ich den eingangs gezeigten Nachrichtenfluss vor dem Hintergrund der Konfiguration ein weiteres mal erklären - von der Entscheidung über die Annahme der Nachricht in den ACL, über das Routing der Nachricht und den abschließenden Transport. * Router (allg. Optionen und die einzelnen Router accept, dnslookup, manualroute, …) * Transports (allg. Optionen und die einzelnen Transports smtp, appendfile, …) * ACL (SMTP-Phasen, Address-Überprüfung, Rate-Limiting, Content-Scan) //// Mit zwei Beispielen (Email Made in Germany und „Sender based Routing“) möchte ich die Grundidee hinter diesem leistungsfägigen MTA-Framework noch einmal zeigen. //// Fast abschließen möchte ich den Vortrag mit operativen Dingen, also aus Sicht des Administrators. * Logging (mainlog, rejectlog, paniclog) * Test und Betrieb * Sicherheitsbetrachtungen (Funktionssicherheit (Verlust von Mails), Einbruchssicherheit, Schreibrechte, Root-Rechte) * Möglichkeiten zur Leistungsverbesserung (Warteschlange, Parallelisierung, Blockierung, Ratelimit) Und weil die Entwicklung auch beim Exim sehr schnell weitergeht und E-Mail Made in Germany eigentlich schon in Form von DANE existiert, gibt es am Ende noch einen Ausblick auf aktuelle Entwicklungen im Exim: * PRDR, DANE, Enhanced Status Codes, Cut-Through-Routing == Links zum Thema == http://exim.org/:: Die offizielle Homepage des Exim-Projekts https://www.heinlein-support.de/mk/2014/vortrag/exim-mta-framework-oder-mta/:: Der Beitrag im Rahmen der Mailserver-Konferenz in Berlin http://schlittermann.de/:: Meine eigene Homepage // vim:ft=asciidoc:aw::