[snapshot] almost done clt2015
authorHeiko Schlittermann (JUMPER) <hs@schlittermann.de>
Fri, 20 Mar 2015 18:08:07 +0100
branchclt2015
changeset 32 9665201a64b5
parent 31 855b60db0129
child 33 aca1a39c4ac9
[snapshot] almost done
clt2015.tex
dia/callout-cutthrough.dia
frames/acl.tex
frames/callforward.tex
frames/emig.tex
frames/konfiguration.tex
frames/routing.tex
frames/single-recipient.tex
frames/smart.tex
out/cutthrough.tt
--- a/clt2015.tex	Fri Mar 20 13:01:27 2015 +0100
+++ b/clt2015.tex	Fri Mar 20 18:08:07 2015 +0100
@@ -46,10 +46,6 @@
 
 \section{Beispiele}
 
-% -- Example CallForward/CutThrough
-% vielleicht gehört das nach die ACL geschoben, denn die braucht man, 
-% um das hier zu verstehen.
-\input{frames/callforward.tex}
 % -- Example Emig
 \input{frames/emig.tex}
 % -- Example Smarthosts
@@ -58,6 +54,12 @@
 % -- ACL
 \input{frames/acl.tex}
 
+% -- Example CallForward/CutThrough
+\input{frames/callforward.tex}
+
+% -- Example Single Recipient
+%\input{frames/single-recipient.tex}
+
 % -- logging
 \input{frames/logging.tex}
 
@@ -78,13 +80,13 @@
 	\item Header-Rewriting \verb=*@*.example.com $1@example.com Ff=
 	\item Retry-Rules \verb=*.example.com rcpt_4xx F,2h,5m;G,2d,15m=
 	\item SMTP-Authentifizierung (Client/Server)
-	\item Cut-Through-Routing, PRDR, DNSSEC, DANE, Enhanced Status Codes
+	\item PRDR (ok), DNSSEC (ok), DANE (ok), Enhanced Status Codes (??)
 \end{itemize}
 \end{frame}
 
 \begin{frame}[<+->][fragile]{DANKE}
 \begin{verbatim}
-2014-05-12 12:32:26 [2858] 1WjPOs-0000k4-B5 Completed
+2015-03-21 15:32:26 [2858] 1WjPOs-0000k4-B5 Completed
 \end{verbatim}
 \pause
 \vfill
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dia/callout-cutthrough.dia	Fri Mar 20 18:08:07 2015 +0100
@@ -0,0 +1,501 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<dia:diagram xmlns:dia="http://www.lysator.liu.se/~alla/dia/">
+  <dia:diagramdata>
+    <dia:attribute name="background">
+      <dia:color val="#ffffff"/>
+    </dia:attribute>
+    <dia:attribute name="pagebreak">
+      <dia:color val="#000099"/>
+    </dia:attribute>
+    <dia:attribute name="paper">
+      <dia:composite type="paper">
+        <dia:attribute name="name">
+          <dia:string>#A4#</dia:string>
+        </dia:attribute>
+        <dia:attribute name="tmargin">
+          <dia:real val="2.8222000598907471"/>
+        </dia:attribute>
+        <dia:attribute name="bmargin">
+          <dia:real val="2.8222000598907471"/>
+        </dia:attribute>
+        <dia:attribute name="lmargin">
+          <dia:real val="2.8222000598907471"/>
+        </dia:attribute>
+        <dia:attribute name="rmargin">
+          <dia:real val="2.8222000598907471"/>
+        </dia:attribute>
+        <dia:attribute name="is_portrait">
+          <dia:boolean val="false"/>
+        </dia:attribute>
+        <dia:attribute name="scaling">
+          <dia:real val="1"/>
+        </dia:attribute>
+        <dia:attribute name="fitto">
+          <dia:boolean val="false"/>
+        </dia:attribute>
+      </dia:composite>
+    </dia:attribute>
+    <dia:attribute name="grid">
+      <dia:composite type="grid">
+        <dia:attribute name="width_x">
+          <dia:real val="1"/>
+        </dia:attribute>
+        <dia:attribute name="width_y">
+          <dia:real val="1"/>
+        </dia:attribute>
+        <dia:attribute name="visible_x">
+          <dia:int val="1"/>
+        </dia:attribute>
+        <dia:attribute name="visible_y">
+          <dia:int val="1"/>
+        </dia:attribute>
+        <dia:composite type="color"/>
+      </dia:composite>
+    </dia:attribute>
+    <dia:attribute name="color">
+      <dia:color val="#d8e5e5"/>
+    </dia:attribute>
+    <dia:attribute name="guides">
+      <dia:composite type="guides">
+        <dia:attribute name="hguides"/>
+        <dia:attribute name="vguides"/>
+      </dia:composite>
+    </dia:attribute>
+  </dia:diagramdata>
+  <dia:layer name="Background" visible="true" active="true">
+    <dia:object type="Standard - Text" version="1" id="O0">
+      <dia:attribute name="obj_pos">
+        <dia:point val="1.5,2.12212"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="1.5,1.08212;4.555,3.16212"/>
+      </dia:attribute>
+      <dia:attribute name="text">
+        <dia:composite type="text">
+          <dia:attribute name="string">
+            <dia:string>#RCPT TO:&lt;...&gt;
+DATA
+...
+.#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="font">
+            <dia:font family="sans" style="0" name="Helvetica"/>
+          </dia:attribute>
+          <dia:attribute name="height">
+            <dia:real val="0.52916664630174637"/>
+          </dia:attribute>
+          <dia:attribute name="pos">
+            <dia:point val="1.5,1.47462"/>
+          </dia:attribute>
+          <dia:attribute name="color">
+            <dia:color val="#000000"/>
+          </dia:attribute>
+          <dia:attribute name="alignment">
+            <dia:enum val="0"/>
+          </dia:attribute>
+        </dia:composite>
+      </dia:attribute>
+      <dia:attribute name="valign">
+        <dia:enum val="2"/>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Standard - Text" version="1" id="O1">
+      <dia:attribute name="obj_pos">
+        <dia:point val="8.68364,0.438164"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="8.68364,0.0456637;12.4586,3.71316"/>
+      </dia:attribute>
+      <dia:attribute name="text">
+        <dia:composite type="text">
+          <dia:attribute name="string">
+            <dia:string>#EHLO ...
+MAIL FROM:&lt;...&gt; 
+RCPT TO:&lt;...&gt;
+DATA
+...
+.
+#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="font">
+            <dia:font family="sans" style="0" name="Helvetica"/>
+          </dia:attribute>
+          <dia:attribute name="height">
+            <dia:real val="0.52916664630174637"/>
+          </dia:attribute>
+          <dia:attribute name="pos">
+            <dia:point val="8.68364,0.438164"/>
+          </dia:attribute>
+          <dia:attribute name="color">
+            <dia:color val="#000000"/>
+          </dia:attribute>
+          <dia:attribute name="alignment">
+            <dia:enum val="0"/>
+          </dia:attribute>
+        </dia:composite>
+      </dia:attribute>
+      <dia:attribute name="valign">
+        <dia:enum val="3"/>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Standard - Line" version="0" id="O2">
+      <dia:attribute name="obj_pos">
+        <dia:point val="9.01974,4.01724"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="9.01974,3.7677;13.5,4.27089"/>
+      </dia:attribute>
+      <dia:attribute name="conn_endpoints">
+        <dia:point val="9.01974,4.01724"/>
+        <dia:point val="13.5,4.02134"/>
+      </dia:attribute>
+      <dia:attribute name="numcp">
+        <dia:int val="1"/>
+      </dia:attribute>
+      <dia:attribute name="line_color">
+        <dia:color val="#1a1a1a"/>
+      </dia:attribute>
+      <dia:attribute name="line_width">
+        <dia:real val="0"/>
+      </dia:attribute>
+      <dia:attribute name="start_arrow">
+        <dia:enum val="22"/>
+      </dia:attribute>
+      <dia:attribute name="start_arrow_length">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+      <dia:attribute name="start_arrow_width">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow">
+        <dia:enum val="22"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow_length">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow_width">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Standard - Text" version="1" id="O3">
+      <dia:attribute name="obj_pos">
+        <dia:point val="1.5,4.02135"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="1.5,3.6926;3.575,4.3501"/>
+      </dia:attribute>
+      <dia:attribute name="text">
+        <dia:composite type="text">
+          <dia:attribute name="string">
+            <dia:string>#250 OK#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="font">
+            <dia:font family="sans" style="0" name="Helvetica"/>
+          </dia:attribute>
+          <dia:attribute name="height">
+            <dia:real val="0.70555552840232849"/>
+          </dia:attribute>
+          <dia:attribute name="pos">
+            <dia:point val="1.5,4.2176"/>
+          </dia:attribute>
+          <dia:attribute name="color">
+            <dia:color val="#000000"/>
+          </dia:attribute>
+          <dia:attribute name="alignment">
+            <dia:enum val="0"/>
+          </dia:attribute>
+        </dia:composite>
+      </dia:attribute>
+      <dia:attribute name="valign">
+        <dia:enum val="2"/>
+      </dia:attribute>
+    </dia:object>
+    <dia:group>
+      <dia:object type="Standard - Box" version="0" id="O4">
+        <dia:attribute name="obj_pos">
+          <dia:point val="6,3.15532"/>
+        </dia:attribute>
+        <dia:attribute name="obj_bb">
+          <dia:rectangle val="6,3.15532;8.5,4.88737"/>
+        </dia:attribute>
+        <dia:attribute name="elem_corner">
+          <dia:point val="6,3.15532"/>
+        </dia:attribute>
+        <dia:attribute name="elem_width">
+          <dia:real val="2.5"/>
+        </dia:attribute>
+        <dia:attribute name="elem_height">
+          <dia:real val="1.7320508075688772"/>
+        </dia:attribute>
+        <dia:attribute name="border_width">
+          <dia:real val="0"/>
+        </dia:attribute>
+        <dia:attribute name="border_color">
+          <dia:color val="#1a1a1a"/>
+        </dia:attribute>
+        <dia:attribute name="show_background">
+          <dia:boolean val="true"/>
+        </dia:attribute>
+      </dia:object>
+      <dia:object type="Standard - Text" version="1" id="O5">
+        <dia:attribute name="obj_pos">
+          <dia:point val="7.25,4.02135"/>
+        </dia:attribute>
+        <dia:attribute name="obj_bb">
+          <dia:rectangle val="6.8125,3.6926;7.6875,4.3501"/>
+        </dia:attribute>
+        <dia:attribute name="text">
+          <dia:composite type="text">
+            <dia:attribute name="string">
+              <dia:string>#MX#</dia:string>
+            </dia:attribute>
+            <dia:attribute name="font">
+              <dia:font family="sans" style="0" name="Helvetica"/>
+            </dia:attribute>
+            <dia:attribute name="height">
+              <dia:real val="0.70555552840232849"/>
+            </dia:attribute>
+            <dia:attribute name="pos">
+              <dia:point val="7.25,4.2176"/>
+            </dia:attribute>
+            <dia:attribute name="color">
+              <dia:color val="#000000"/>
+            </dia:attribute>
+            <dia:attribute name="alignment">
+              <dia:enum val="1"/>
+            </dia:attribute>
+          </dia:composite>
+        </dia:attribute>
+        <dia:attribute name="valign">
+          <dia:enum val="2"/>
+        </dia:attribute>
+        <dia:connections>
+          <dia:connection handle="0" to="O4" connection="8"/>
+        </dia:connections>
+      </dia:object>
+    </dia:group>
+    <dia:object type="Standard - Line" version="0" id="O6">
+      <dia:attribute name="obj_pos">
+        <dia:point val="1,3.15532"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="1,2.90532;5,3.40532"/>
+      </dia:attribute>
+      <dia:attribute name="conn_endpoints">
+        <dia:point val="1,3.15532"/>
+        <dia:point val="5,3.15532"/>
+      </dia:attribute>
+      <dia:attribute name="numcp">
+        <dia:int val="1"/>
+      </dia:attribute>
+      <dia:attribute name="line_color">
+        <dia:color val="#1a1a1a"/>
+      </dia:attribute>
+      <dia:attribute name="line_width">
+        <dia:real val="0"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow">
+        <dia:enum val="22"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow_length">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow_width">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Standard - Line" version="0" id="O7">
+      <dia:attribute name="obj_pos">
+        <dia:point val="5,4.88737"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="1.03227,4.63737;5,5.13737"/>
+      </dia:attribute>
+      <dia:attribute name="conn_endpoints">
+        <dia:point val="5,4.88737"/>
+        <dia:point val="1.03227,4.88737"/>
+      </dia:attribute>
+      <dia:attribute name="numcp">
+        <dia:int val="1"/>
+      </dia:attribute>
+      <dia:attribute name="line_color">
+        <dia:color val="#1a1a1a"/>
+      </dia:attribute>
+      <dia:attribute name="line_width">
+        <dia:real val="0"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow">
+        <dia:enum val="22"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow_length">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow_width">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Standard - Text" version="1" id="O8">
+      <dia:attribute name="obj_pos">
+        <dia:point val="1.11329,2.88774"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="0.93329,2.55899;1.29329,3.21649"/>
+      </dia:attribute>
+      <dia:attribute name="text">
+        <dia:composite type="text">
+          <dia:attribute name="string">
+            <dia:string>#1#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="font">
+            <dia:font family="sans" style="0" name="Helvetica"/>
+          </dia:attribute>
+          <dia:attribute name="height">
+            <dia:real val="0.70555552840232849"/>
+          </dia:attribute>
+          <dia:attribute name="pos">
+            <dia:point val="1.11329,3.08399"/>
+          </dia:attribute>
+          <dia:attribute name="color">
+            <dia:color val="#000000"/>
+          </dia:attribute>
+          <dia:attribute name="alignment">
+            <dia:enum val="1"/>
+          </dia:attribute>
+        </dia:composite>
+      </dia:attribute>
+      <dia:attribute name="valign">
+        <dia:enum val="2"/>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Standard - Text" version="1" id="O9">
+      <dia:attribute name="obj_pos">
+        <dia:point val="11.2325,3.69825"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="11.0525,3.3695;11.4125,4.027"/>
+      </dia:attribute>
+      <dia:attribute name="text">
+        <dia:composite type="text">
+          <dia:attribute name="string">
+            <dia:string>#2#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="font">
+            <dia:font family="sans" style="0" name="Helvetica"/>
+          </dia:attribute>
+          <dia:attribute name="height">
+            <dia:real val="0.70555552840232849"/>
+          </dia:attribute>
+          <dia:attribute name="pos">
+            <dia:point val="11.2325,3.8945"/>
+          </dia:attribute>
+          <dia:attribute name="color">
+            <dia:color val="#000000"/>
+          </dia:attribute>
+          <dia:attribute name="alignment">
+            <dia:enum val="1"/>
+          </dia:attribute>
+        </dia:composite>
+      </dia:attribute>
+      <dia:attribute name="valign">
+        <dia:enum val="2"/>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Standard - Text" version="1" id="O10">
+      <dia:attribute name="obj_pos">
+        <dia:point val="4.5,4.56811"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="4.32,4.23936;4.68,4.89686"/>
+      </dia:attribute>
+      <dia:attribute name="text">
+        <dia:composite type="text">
+          <dia:attribute name="string">
+            <dia:string>#3#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="font">
+            <dia:font family="sans" style="0" name="Helvetica"/>
+          </dia:attribute>
+          <dia:attribute name="height">
+            <dia:real val="0.70555552840232849"/>
+          </dia:attribute>
+          <dia:attribute name="pos">
+            <dia:point val="4.5,4.76436"/>
+          </dia:attribute>
+          <dia:attribute name="color">
+            <dia:color val="#000000"/>
+          </dia:attribute>
+          <dia:attribute name="alignment">
+            <dia:enum val="1"/>
+          </dia:attribute>
+        </dia:composite>
+      </dia:attribute>
+      <dia:attribute name="valign">
+        <dia:enum val="2"/>
+      </dia:attribute>
+    </dia:object>
+    <dia:group>
+      <dia:object type="Standard - Box" version="0" id="O11">
+        <dia:attribute name="obj_pos">
+          <dia:point val="14,3.15532"/>
+        </dia:attribute>
+        <dia:attribute name="obj_bb">
+          <dia:rectangle val="14,3.15532;16.8988,4.88737"/>
+        </dia:attribute>
+        <dia:attribute name="elem_corner">
+          <dia:point val="14,3.15532"/>
+        </dia:attribute>
+        <dia:attribute name="elem_width">
+          <dia:real val="2.8987850423728823"/>
+        </dia:attribute>
+        <dia:attribute name="elem_height">
+          <dia:real val="1.7320500000000001"/>
+        </dia:attribute>
+        <dia:attribute name="border_width">
+          <dia:real val="0"/>
+        </dia:attribute>
+        <dia:attribute name="border_color">
+          <dia:color val="#1a1a1a"/>
+        </dia:attribute>
+        <dia:attribute name="show_background">
+          <dia:boolean val="true"/>
+        </dia:attribute>
+      </dia:object>
+      <dia:object type="Standard - Text" version="1" id="O12">
+        <dia:attribute name="obj_pos">
+          <dia:point val="15.4494,4.02135"/>
+        </dia:attribute>
+        <dia:attribute name="obj_bb">
+          <dia:rectangle val="14.6169,3.6926;16.2819,4.3501"/>
+        </dia:attribute>
+        <dia:attribute name="text">
+          <dia:composite type="text">
+            <dia:attribute name="string">
+              <dia:string>#intern#</dia:string>
+            </dia:attribute>
+            <dia:attribute name="font">
+              <dia:font family="sans" style="0" name="Helvetica"/>
+            </dia:attribute>
+            <dia:attribute name="height">
+              <dia:real val="0.70555552840232849"/>
+            </dia:attribute>
+            <dia:attribute name="pos">
+              <dia:point val="15.4494,4.2176"/>
+            </dia:attribute>
+            <dia:attribute name="color">
+              <dia:color val="#000000"/>
+            </dia:attribute>
+            <dia:attribute name="alignment">
+              <dia:enum val="1"/>
+            </dia:attribute>
+          </dia:composite>
+        </dia:attribute>
+        <dia:attribute name="valign">
+          <dia:enum val="2"/>
+        </dia:attribute>
+        <dia:connections>
+          <dia:connection handle="0" to="O11" connection="8"/>
+        </dia:connections>
+      </dia:object>
+    </dia:group>
+  </dia:layer>
+</dia:diagram>
--- a/frames/acl.tex	Fri Mar 20 13:01:27 2015 +0100
+++ b/frames/acl.tex	Fri Mar 20 18:08:07 2015 +0100
@@ -1,5 +1,5 @@
 \section{Access Control Lists}
-\subsection{Konfiguration}
+%\subsection{Konfiguration}
 
 \begin{frame}[<+->][fragile]{Acess Control Lists}
 Für jede Phase der SMTP-Kommunikation gibt es einen ACL-Block 
@@ -28,7 +28,7 @@
 \end{small}
 \end{frame}
 
-\subsection{Features}
+%\subsection{Features}
 
 \begin{frame}[<+->][fragile]{Access Control Lists}{Features}
     Zugriff auf \textbf{alles}, was an Information verfügbar ist, u.a.:
@@ -49,7 +49,8 @@
 \end{frame}
 
 
-\subsection{Beispiel ACL}
+\section{Beispiel}
+\subsection{„Vereinzler“}
 
 \begin{frame}[<+->][fragile]{Access Control Lists}{Beispiel}
 \begin{block}{Aufgabe}
--- a/frames/callforward.tex	Fri Mar 20 13:01:27 2015 +0100
+++ b/frames/callforward.tex	Fri Mar 20 18:08:07 2015 +0100
@@ -1,4 +1,3 @@
-\subsection{EmiG}
 \begin{frame}[<+->][fragile]{Beispiel: Empfängerüberprüfung}{Callforward}
 \begin{block}{Aufgabenstellung}
 Exim sei MX und soll Nachrichten an einen internen Server weiterleiten,
@@ -6,9 +5,9 @@
 \end{block}
 \begin{block}{Lösung?}
 \begin{itemize}
-	\item Nutzerdatenbank duplizieren
-	\item Nutzerdatenbank (LDAP, AD, …) anzapfen? 
-	\item Also: die Entscheidung an den internen MTA zu delegieren.
+  \item Nutzerdatenbank duplizieren
+  \item Nutzerdatenbank (LDAP, AD, …) anzapfen? 
+  \item Also: die Entscheidung an den internen MTA zu delegieren.
 \end{itemize}
 \end{block}
 \begin{block}{Lösung!}
@@ -50,3 +49,27 @@
 \scriptsize
 \ttinput{out/callout-not-ok.tt}
 \end{frame}
+
+\begin{frame}[<+->][fragile]{Beispiel: Empfängerüberprüfung}{Callforward + Cutthrough}
+\begin{verbatim}
+begin acl
+
+  acl_check_recipient:
+    …
+    deny   domains = +internal_domains
+           control = cutthrough_delivery
+           !verify = recipient/callout=use_sender,defer_ok
+    accept
+
+\end{verbatim}
+\includegraphics[width=0.8\textwidth]{callout-cutthrough.eps}
+\begin{itemize}
+  \item Delivery nach intern noch während der externen Session
+  \item Resultat DATA wird nach außen weitergegeben
+\end{itemize}
+\end{frame}
+
+\begin{frame}[<+->][fragile]{Test Callforward}{cutthrough}
+\scriptsize
+\ttinput{out/cutthrough.tt}
+\end{frame}
--- a/frames/emig.tex	Fri Mar 20 13:01:27 2015 +0100
+++ b/frames/emig.tex	Fri Mar 20 18:08:07 2015 +0100
@@ -1,5 +1,5 @@
-\subsection{EmiG}
-\begin{frame}[<+->][fragile]{Beispiel: DANE für Arme}{Emig}
+\subsection{DANE für Arme}
+\begin{frame}[<+->][fragile]{Beispiel: DANE für Arme}{}
 \begin{block}{Aufgabenstellung}
 Es existiere ein JSON-File (\verb=mxinfra.json=), in dem je MX-Host die
 SSL-Zertifikatsinformation liegt. Nun soll Exim, wenn er sich mit einem
--- a/frames/konfiguration.tex	Fri Mar 20 13:01:27 2015 +0100
+++ b/frames/konfiguration.tex	Fri Mar 20 18:08:07 2015 +0100
@@ -1,6 +1,6 @@
 % konfiguration
 \section{Konfiguration}
-\subsection{File}
+%\subsection{File}
 
 \begin{frame}[<+->][fragile]{Konfiguration}{File}
 \begin{itemize}
@@ -14,7 +14,7 @@
 	\end{itemize}
 \end{frame}
 
-\subsection{Struktur}
+%\subsection{Struktur}
 
 \begin{frame}[<+->][fragile]{Konfiguration}{Struktur}
 Strukturiertes Konfigurationsfile mit mehreren Abschnitten, teilweise
@@ -42,7 +42,7 @@
 \end{description}
 \end{frame}
 
-\subsection{Syntax}
+%\subsection{Syntax}
 
 \begin{frame}[fragile]{Konfiguration}{Syntax}
 \begin{block}{Macros, Kommentar, lange Zeilen}
@@ -66,7 +66,7 @@
 allen Spielarten.
 \end{frame}
 
-\subsection{String-Expansion}
+%\subsection{String-Expansion}
 
 \begin{frame}[<+->][fragile]{Konfiguration}{Expansion}
 	Etwa die Hälfte der Konfigurationsdirektiven erlaubt Variablensubstitution (Expansion) 
--- a/frames/routing.tex	Fri Mar 20 13:01:27 2015 +0100
+++ b/frames/routing.tex	Fri Mar 20 18:08:07 2015 +0100
@@ -1,5 +1,5 @@
 \section{Routing}
-\subsection{Ablauf und Konfiguration}
+%\subsection{Ablauf und Konfiguration}
 
 \begin{frame}[<+->][fragile]{Routing}{Allgemein}
 \begin{itemize}
@@ -38,7 +38,7 @@
 \end{description}
 \end{frame}
 
-\subsection{Test}
+%\subsection{Test}
 
 \begin{frame}[fragile]{Routing}{Test}
 \begin{alltt}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/frames/single-recipient.tex	Fri Mar 20 18:08:07 2015 +0100
@@ -0,0 +1,37 @@
+\begin{frame}[<+->][fragile]{Beispiel: Alle Empfänger in der selben Domain}{}
+\begin{block}{Aufgabenstellung}
+Aus diversen Gründen (Spam-Policy per Domain, …) sollen nur weitere
+Empfänger akteptiert werden, wenn diese zur selben Domain gehören wie
+der erste Empfänger
+\end{block}
+\begin{block}{Lösung in ACL}
+\begin{itemize}
+  \item erster Empfänger wird aktzeptert, Domain wird „gemerkt“:
+  ACL-Variable
+  \item weitere Empfänger werden gegen diese „gemerkte“ Domain
+        geprüft
+\end{itemize}
+\end{block}
+
+\begin{block}{ACL Konfiguration}
+\begin{verbatim}
+begin acl
+    …
+    acl_check_rcpt:
+        …
+        defer   condition = ${if >={$recipients_count}{1}}
+                domains   = !$acl_c_domain
+                message   = same domain as 1st rcpt please ($acl_c_domain)
+
+        accept  verify    = recipient
+                set acl_c_domain = $domain
+
+        deny    message   = sorry
+\end{verbatim}
+\end{block}
+\end{frame}
+
+\begin{frame}[<+->][fragile]{Test Callforward}{existierender Empfänger}
+\scriptsize
+\ttinput{out/callout-ok.tt}
+\end{frame}
--- a/frames/smart.tex	Fri Mar 20 13:01:27 2015 +0100
+++ b/frames/smart.tex	Fri Mar 20 18:08:07 2015 +0100
@@ -1,6 +1,6 @@
-\subsection{Viele Smarthosts}
+\subsection{Source based Routing}
 
-\begin{frame}[<+->][fragile]{Beispiel: Source based Routing}{Viele Smarthosts - Vorversuche}
+\begin{frame}[<+->][fragile]{Beispiel: Source based Routing}{Vorversuche}
 \begin{block}{Aufgabe}
 Wir haben mehrere Smarthosts und müssen je nach Sender-Adresse über
 einen anderen Smarthost versenden.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/out/cutthrough.tt	Fri Mar 20 18:08:07 2015 +0100
@@ -0,0 +1,33 @@
+swaks --attach eicar.com -f hs@schlittermann.de -t hs@schlittermann.de --pipe 'exim -bhc 8.8.4.4'
+=== Trying pipe to exim -bhc 8.8.4.4...
+<-  **** SMTP testing session as if from host 8.8.4.4
+<-  **** This is not for real!
+<-  220 hs12.schlittermann.de ESMTP Exim 4.85_RC1-53-a466d09-XX Fri, 20 Mar 2015 14:04:10 +0100
+…
+>>> using ACL "acl_check_rcpt"
+>>> check control = cutthrough_delivery
+>>> check !verify = recipient/callout=use_sender,defer_ok
+>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+>>> routing hs@schlittermann.de
+…
+>>>   SMTP>> EHLO hs12.schlittermann.de
+>>>   SMTP<< 250-ssl.schlittermann.de Hello hs12.schlittermann.de [84.19.194.10]
+>>>   SMTP>> MAIL FROM:<hs@schlittermann.de>
+>>>   SMTP<< 250 OK
+>>>   SMTP>> RCPT TO:<hs@schlittermann.de>
+>>>   SMTP<< 250 Accepted
+ -> DATA
+>>> processing "accept"
+ …
+ -> WDVPIVAlQEFQWzRcUFpYNTQoUF4pN0NDKTd9JEVJQ0FSLVNUQU5EQVJELUFOVElWSVJVUy1URVNU
+ -> LUZJTEUhJEgrSCogCg==
+>>>   SMTP>> .
+>>>   SMTP<< 550-Classified by clamav as malware (Eicar-Test-Signature).
+>>>          550-Server time: Fri, 20 Mar 2015 14:04:14 +0100
+>>>          550 Server spool id: 1YYwaz-0007uU-UZ
+>>>   SMTP>> QUIT
+>>> ----------- cutthrough shutdown (target timeout on read) ------------
+<** 550-Classified by clamav as malware (Eicar-Test-Signature).
+<** 550-Server time: Fri, 20 Mar 2015 14:04:14 +0100
+<** 550 Server spool id: 1YYwaz-0007uU-UZ
+ -> QUIT