diff -r 97c6afdbae1f -r a9c30a9d07e4 mk2014.tex --- a/mk2014.tex Mon Apr 28 17:47:53 2014 +0200 +++ b/mk2014.tex Fri May 02 13:01:50 2014 +0200 @@ -1,7 +1,9 @@ -\documentclass[draft]{beamer} +%\documentclass[draft]{beamer} +\documentclass{beamer} \usepackage[ngerman]{babel} \usepackage[utf8x]{inputenc} -%\setbeamercovered{transparent} +\usepackage{xmpmulti} +\setbeamercovered{transparent} \usetheme{Dresden} \title[Exim]{Exim - MTA-Framework oder MTA?} \subtitle{Mailserver-Konferenz Berlin 2014} @@ -14,10 +16,10 @@ \titlepage \end{frame} -%\begin{myFrame}[fragile]{Wie positioniert Exim sich gegenüber anderen MTA} -\begin{frame}[<+->][fragile] +\begin{frame}[<+->][fragile]{Wie positioniert Exim sich gegenüber anderen MTA} \begin{itemize} + \item seit 1995 Phil Hazel, seit ca. 2007 ca. 5…8 Aktive \item Lego vs. Playmobil (P. Heinlein) \item Klassisch Unix: Traditionelle Konfiguration und traditionelles Prozess-Management \item Flexibilität @@ -39,38 +41,86 @@ \end{itemize} \end{frame} -\begin{frame}{Arbeitsweise und Anatomie} +\begin{frame}{Arbeitsweise und Anatomie}{Überblick} \begin{itemize} -\item Binary: gesteuert über Options +\item Binary: (ca 1MB) großer Universalklumpen \item Queue: Verzeichnis, 2 Files je Message -\item IPC: nichts, außer „exec()“ +\item IPC: nichts, außer fork(2) oder exec(3) \item Shared: „Hint“-Files (z.B. retry info) \end{itemize} +\end{frame} + +\begin{frame}{Arbeitsweise und Anatomie}{Prozesse} +\includegraphics[width=0.8\textwidth,angle=270]{procs} +%\llap{\includegraphics[width=0.8\textwidth,angle=270]{procs-1}} +%\llap{\includegraphics[width=0.8\textwidth,angle=270]{procs-2}} +%\llap{\includegraphics[width=0.8\textwidth,angle=270]{procs-3}} +%\multiinclude[<+->][format=pdf,graphics={width=0.8\textwidth,angle=270}]{procs} +\end{frame} + +\begin{frame}{Arbeitsweise und Anatomie}{IN, OUT, Retry} +\begin{enumerate} + \item IN: ACL (Ratelimit, Blacklists, Routing-Test, Content-Scan) Enqueue + \item OUT: Dequeue, Routing, Transport + \item Retry: Queuerunner, Dequeue, Routing, Transport +\end{enumerate} +\end{frame} + +\begin{frame}[fragile]{Konfiguration}{Struktur} +\begin{itemize} + \item Main (global) + \item Access-Control-Lists für SMTP: \verb=begin acl= + \item Routing-Regeln (ACL und Routing): \verb=begin routers= + \item Transport-Definitionen: \verb=begin transports= + \item Retry-Vorgaben: \verb=begin retry= + \item Envelope/Header-Rewriting: \verb=begin rewrite= + \item SMTP-Authentifizierung: \verb=begin authenticators= +\end{itemize} +\end{frame} + +\begin{frame}[fragile]{Konfiguration}{Syntax} +\begin{exampleblock}{Macros}\scriptsize\begin{verbatim} + CF = /etc/exim4/ + USER_BASE = ou=users,BASE + BASE = dc=example,dc=com +\end{verbatim}\end{exampleblock} + +\begin{exampleblock}{Direktiven}\scriptsize\begin{verbatim} + primary_hostname = mail.example.com + smtp_active_hostname = ${lookup{$received_ip_address}lsearch{CF/hostnames}} +\end{verbatim}\end{exampleblock} + +\begin{exampleblock}{Listen}\scriptsize\begin{verbatim} + domainlist local_domains = example.com : example.org + domains = +local_domains +\end{verbatim}\end{exampleblock} \end{frame} -\begin{frame}{Wie positioniert Exim sich gegenüber anderen MTA} -\end{frame} -\begin{frame}{Arbeitsweise und Anatomie: Receiving, Routing, Transport} -\end{frame} -\begin{frame}{Konfiguration: Struktur und Syntax (Beispiel: Standard-Konfigurations-Datei)} -\end{frame} \begin{frame}{String-Expansionen / Listen / File- und Datenbank-Lookups} \end{frame} + \begin{frame}{Router (allg. Optionen und die einzelnen Router accept, dnslookup, manualroute, …)} \end{frame} + \begin{frame}{Transports (allg. Optionen und die einzelnen Transports smtp, appendfile, …)} \end{frame} + \begin{frame}{ACL (SMTP-Phasen, Address-Überprüfung, Rate-Limiting, Content-Scan)} \end{frame} + \begin{frame}{Logging (mainlog, rejectlog, paniclog)} \end{frame} + \begin{frame}{Test und Betrieb} \end{frame} + \begin{frame}{Sicherheitsbetrachtungen (Funktionssicherheit (Verlust von Mails), Einbruchssicherheit, Schreibrechte, Root-Rechte)} \end{frame} + \begin{frame}{Möglichkeiten zur Leistungsverbesserung (Warteschlange, Parallelisierung, Blockierung, Ratelimit)} \end{frame} + \begin{frame}{Ausblick/Offene Punkte: PRDR, DANE, Enhanced Status Codes} \end{frame}