--- 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}