diff -r 3d9bb718ac1c -r e3ac4157aae4 mk2014.tex --- a/mk2014.tex Fri May 09 10:38:05 2014 +0200 +++ b/mk2014.tex Fri May 09 13:26:43 2014 +0200 @@ -29,163 +29,30 @@ \tableofcontents \end{frame} -\section{Exim - Entwicklung und Positionierung} +% -- \input{frames/exim.tex} -\section{Arbeitsweise und Anatomie} +% -- \input{frames/anatomie.tex} -% -- +% -- Config \input{frames/konfiguration.tex} -\section{Routing} -\subsection{Ablauf} - -\begin{frame}[fragile]{Routing}{Allgemein} -\begin{itemize} -\item Adresse wird an eine Kette von Routern übergeben (Reihenfolge!) -\item Router entscheiden über den Fortgang der Bearbeitung -\item Vorbedingungen entscheiden, ob der Router „befragt“ wird -\item Router liefern für eine gegebene Adresse - \begin{description} - \item[accept] Zuordnung zu Transport oder erzeugung neuer Adressen - \item[pass] Weitergabe an anderen Router - \item[decline] Verweigerung - \item[fail] Bounce wird generiert - \item[defer] falscher Augenblick - \item[error] Panik - \end{description} -\item werden auch von ACL genutzt (Adressüberpüfung) -\item Router: dnslookup, manualroute, queryprogram, redirect, accept -\item einfache Tests sind möglich mit \verb=exim -bt= (Adresstest - - Routing) bzw. \verb=exim -bv= (Adressüberprüfung - ACL) -\end{itemize} -\end{frame} - -\subsection{Konfiguration} +% -- Routing +\input{frames/routing.tex} -\begin{frame}[fragile]{Routing}{Konfiguration} -Für jeden Router-Block -\begin{itemize} -\item Treiber -\item Vorbedingungen (\verb=check_local_user=, \verb=domains=, \verb=condition=, …) -\item Generische Optionen (\verb=caseful_local_part=, \verb=local_part_prefix=, …) -\end{itemize} -%\scriptsize -\verbatiminput{routers.conf} -\end{frame} - -\begin{frame}{Routing}{Schema} -\includegraphics[width=0.8\textwidth,angle=270]{routing} -\end{frame} - -\subsection{Test} - -\begin{frame}[fragile]{Routing}{Test} -\begin{verbatim} - $ exim -bt hans@example.com - hans@example.com - router = remote, transport = remote_smtp - host example.com [2606:2800:220:6d:26bf:1447:1097:aa7] - host example.com [93.184.216.119] - - $ exim -bt hans@localhost - hans@example.com - <-- hans@localhost - router = remote, transport = remote_smtp - host example.com [2606:2800:220:6d:26bf:1447:1097:aa7] - host example.com [93.184.216.119] - - $ exim -bt heiko@localhost - heiko@localhost - router = mbox, transport = local_mbox -\end{verbatim} -\end{frame} - -\begin{frame}[fragile]{Routing}{Remote} -\scriptsize -\begin{alltt} -\input{routingremote.tt} -\end{alltt} -\end{frame} +% -- Transport +\input{frames/transport.tex} -\begin{frame}[fragile]{Routing}{Alias} -\scriptsize -\begin{alltt} -\input{routingalias.tt} -\end{alltt} -\end{frame} - -\begin{frame}[fragile]{Routing}{Local} -\scriptsize -\begin{alltt} -\input{routinglocal.tt} -\end{alltt} -\end{frame} - -\section{Transport} - -\begin{frame}[fragile]{Transports} -Die Router referenzieren ggf. einen „transport“. -\begin{itemize} -\item Reihenfolge egal -\item Generische Optionen: \verb=headers_remove=, -\verb=envelope_to_add=, \verb=transport_filter=, \verb=user= -\item Treiber hat weitere Optionen -\item Transports: appendfile, autoreply, lmtp, pipe, smtp -\item Default TLS, wenn STARTTLS geboten wird -\end{itemize} -\begin{alltt} -\input{transports.conf} -\end{alltt} -\end{frame} - -\section{Access Control Lists} -\subsection{Konfiguration} +% -- ACL +% \input{frames/acl.tex} -\begin{frame}[<+->][fragile]{Acess Control Lists} -Für jede Phase der SMTP-Kommunikation gibt es einen ACL-Einstiegspunkt. -Abarbeitung der Regeln bis zur Entscheidung. -\pause -\begin{description} -\item[accept] alles gut, keine weiteren Regeln -\item[deny] permanenter Fehler und passender Text dazu -\item[require] permanenter Fehler oder nächste Regel -\item[warn] Protokollierung und nächste Regel -\item[defer] temporärer Fehler -\end{description} -\pause -Verweis auf Blöcke im ACL-Abschnitt der Konfiguration -\begin{verbatim} - acl_smtp_connect = acl_check_connect - acl_smtp_rcpt = acl_check_rcpt - acl_smtp_data = acl_check_data -\end{verbatim} -\end{frame} +% -- Example Emil +\input{frames/emil.tex} -\begin{frame}[fragile]{Access Control Lists}{Konfiguration} -\tiny -\verbatiminput{acl.conf} -\end{frame} - -\subsection{Features} +% -- Example multiple smarthosts +% \input{frames/smarthost.tex} -\begin{frame}[<+->][fragile]{Access Control Lists}{Features} -\begin{itemize} - \item Zugriff auf alles, was an Information verfügbar ist - \item Ratelimit mit beliebigen Keys - \item Überprüfung von Adressen \verb+verify = recipient+ - \item Callout zur Überprüfung \verb+verify = recipient/callout=use_sender,defer_ok+ - \item DNS-Blacklists \verb+dnslists = sbl.spamhaus.org+ - \item Verschlüsselte Verbindung \verb+encrypted = *+ - \item Content-Scan \verb+malware = *+, \verb+spam = …+ - \item Header-Syntax \verb+verify = header_syntax+ - \item Reverse-DNS \verb+verify = reverse_host_lookup+ - \item ACL-Variablen für spätere Verarbeitung \verb+set acl_m_foo = bar+ - \item Sub-ACL \verb+acl = foo_acl+ - \item Generische Bedingung \verb+condition =+ -\end{itemize} -\end{frame} \section{Logging}