mk2014.tex
changeset 12 e3ac4157aae4
parent 11 3d9bb718ac1c
child 14 0f80f11be279
equal deleted inserted replaced
11:3d9bb718ac1c 12:e3ac4157aae4
    27 
    27 
    28 \begin{frame}{Inhalt}
    28 \begin{frame}{Inhalt}
    29 	\tableofcontents
    29 	\tableofcontents
    30 \end{frame}
    30 \end{frame}
    31 
    31 
    32 \section{Exim - Entwicklung und Positionierung}
    32 % --
    33 \input{frames/exim.tex}
    33 \input{frames/exim.tex}
    34 
    34 
    35 \section{Arbeitsweise und Anatomie}
    35 % --
    36 \input{frames/anatomie.tex}
    36 \input{frames/anatomie.tex}
    37 
    37 
    38 % --
    38 % -- Config
    39 \input{frames/konfiguration.tex}
    39 \input{frames/konfiguration.tex}
    40 
    40 
    41 \section{Routing}
    41 % -- Routing
    42 \subsection{Ablauf}
    42 \input{frames/routing.tex}
    43 
    43 
    44 \begin{frame}[fragile]{Routing}{Allgemein}
    44 % -- Transport
    45 \begin{itemize}
    45 \input{frames/transport.tex}
    46 \item Adresse wird an eine Kette von Routern übergeben (Reihenfolge!)
       
    47 \item Router entscheiden über den Fortgang der Bearbeitung
       
    48 \item Vorbedingungen entscheiden, ob der Router „befragt“ wird
       
    49 \item Router liefern für eine gegebene Adresse
       
    50 	\begin{description}
       
    51 		\item[accept] Zuordnung zu Transport oder erzeugung neuer Adressen
       
    52 		\item[pass] Weitergabe an anderen Router
       
    53 		\item[decline] Verweigerung
       
    54 		\item[fail] Bounce wird generiert
       
    55 		\item[defer] falscher Augenblick
       
    56 		\item[error] Panik
       
    57 	\end{description}
       
    58 \item werden auch von ACL genutzt (Adressüberpüfung)
       
    59 \item Router: dnslookup, manualroute, queryprogram, redirect, accept
       
    60 \item einfache Tests sind möglich mit \verb=exim -bt= (Adresstest -
       
    61 	Routing) bzw. \verb=exim -bv= (Adressüberprüfung - ACL)
       
    62 \end{itemize}
       
    63 \end{frame}
       
    64 
    46 
    65 \subsection{Konfiguration}
    47 % -- ACL
       
    48 % \input{frames/acl.tex}
    66 
    49 
    67 \begin{frame}[fragile]{Routing}{Konfiguration}
    50 % -- Example Emil
    68 Für jeden Router-Block
    51 \input{frames/emil.tex}
    69 \begin{itemize}
       
    70 \item Treiber
       
    71 \item Vorbedingungen (\verb=check_local_user=, \verb=domains=, \verb=condition=, …)
       
    72 \item Generische Optionen (\verb=caseful_local_part=, \verb=local_part_prefix=, …)
       
    73 \end{itemize}
       
    74 %\scriptsize
       
    75 \verbatiminput{routers.conf}
       
    76 \end{frame}
       
    77 
    52 
    78 \begin{frame}{Routing}{Schema}
    53 % -- Example multiple smarthosts
    79 \includegraphics[width=0.8\textwidth,angle=270]{routing}
    54 % \input{frames/smarthost.tex}
    80 \end{frame}
       
    81 
    55 
    82 \subsection{Test}
       
    83 
       
    84 \begin{frame}[fragile]{Routing}{Test}
       
    85 \begin{verbatim}
       
    86 	$ exim -bt hans@example.com
       
    87 	hans@example.com
       
    88 	  router = remote, transport = remote_smtp
       
    89 	  host example.com [2606:2800:220:6d:26bf:1447:1097:aa7] 
       
    90 	  host example.com [93.184.216.119]
       
    91 
       
    92 	$ exim -bt hans@localhost
       
    93 	hans@example.com
       
    94 	  <-- hans@localhost
       
    95 	  router = remote, transport = remote_smtp
       
    96 	  host example.com [2606:2800:220:6d:26bf:1447:1097:aa7] 
       
    97 	  host example.com [93.184.216.119]     
       
    98 
       
    99 	$ exim -bt heiko@localhost
       
   100 	heiko@localhost
       
   101 	  router = mbox, transport = local_mbox
       
   102 \end{verbatim}
       
   103 \end{frame}
       
   104 
       
   105 \begin{frame}[fragile]{Routing}{Remote}
       
   106 \scriptsize
       
   107 \begin{alltt}
       
   108 \input{routingremote.tt}
       
   109 \end{alltt}
       
   110 \end{frame}
       
   111 
       
   112 \begin{frame}[fragile]{Routing}{Alias}
       
   113 \scriptsize
       
   114 \begin{alltt}
       
   115 \input{routingalias.tt}
       
   116 \end{alltt}
       
   117 \end{frame}
       
   118 
       
   119 \begin{frame}[fragile]{Routing}{Local}
       
   120 \scriptsize
       
   121 \begin{alltt}
       
   122 \input{routinglocal.tt}
       
   123 \end{alltt}
       
   124 \end{frame}
       
   125 
       
   126 \section{Transport}
       
   127 
       
   128 \begin{frame}[fragile]{Transports}
       
   129 Die Router referenzieren ggf. einen „transport“.
       
   130 \begin{itemize}
       
   131 \item Reihenfolge egal
       
   132 \item Generische Optionen: \verb=headers_remove=,
       
   133 \verb=envelope_to_add=, \verb=transport_filter=, \verb=user=
       
   134 \item Treiber hat weitere Optionen
       
   135 \item Transports: appendfile, autoreply, lmtp, pipe, smtp
       
   136 \item Default TLS, wenn STARTTLS geboten wird
       
   137 \end{itemize}
       
   138 \begin{alltt}
       
   139 \input{transports.conf}
       
   140 \end{alltt}
       
   141 \end{frame}
       
   142 
       
   143 \section{Access Control Lists}
       
   144 \subsection{Konfiguration}
       
   145 
       
   146 \begin{frame}[<+->][fragile]{Acess Control Lists}
       
   147 Für jede Phase der SMTP-Kommunikation gibt es einen ACL-Einstiegspunkt. 
       
   148 Abarbeitung der Regeln bis zur Entscheidung.
       
   149 \pause
       
   150 \begin{description}
       
   151 \item[accept] alles gut, keine weiteren Regeln
       
   152 \item[deny] permanenter Fehler und passender Text dazu
       
   153 \item[require] permanenter Fehler oder nächste Regel
       
   154 \item[warn] Protokollierung und nächste Regel
       
   155 \item[defer] temporärer Fehler
       
   156 \end{description}
       
   157 \pause
       
   158 Verweis auf Blöcke im ACL-Abschnitt der Konfiguration
       
   159 \begin{verbatim}
       
   160 	acl_smtp_connect = acl_check_connect
       
   161 	acl_smtp_rcpt = acl_check_rcpt
       
   162 	acl_smtp_data = acl_check_data
       
   163 \end{verbatim}
       
   164 \end{frame}
       
   165 
       
   166 \begin{frame}[fragile]{Access Control Lists}{Konfiguration}
       
   167 \tiny
       
   168 \verbatiminput{acl.conf}
       
   169 \end{frame}
       
   170 
       
   171 \subsection{Features}
       
   172 
       
   173 \begin{frame}[<+->][fragile]{Access Control Lists}{Features}
       
   174 \begin{itemize}
       
   175 	\item Zugriff auf alles, was an Information verfügbar ist
       
   176 	\item Ratelimit mit beliebigen Keys
       
   177 	\item Überprüfung von Adressen \verb+verify = recipient+
       
   178 	\item Callout zur Überprüfung \verb+verify = recipient/callout=use_sender,defer_ok+
       
   179 	\item DNS-Blacklists \verb+dnslists = sbl.spamhaus.org+
       
   180 	\item Verschlüsselte Verbindung \verb+encrypted = *+
       
   181 	\item Content-Scan \verb+malware = *+, \verb+spam = …+
       
   182 	\item Header-Syntax \verb+verify = header_syntax+
       
   183 	\item Reverse-DNS \verb+verify = reverse_host_lookup+
       
   184 	\item ACL-Variablen für spätere Verarbeitung \verb+set acl_m_foo = bar+
       
   185 	\item Sub-ACL \verb+acl = foo_acl+
       
   186 	\item Generische Bedingung \verb+condition =+
       
   187 \end{itemize}
       
   188 \end{frame}
       
   189 
    56 
   190 \section{Logging}
    57 \section{Logging}
   191 
    58 
   192 \begin{frame}[fragile]{Logging}
    59 \begin{frame}[fragile]{Logging}
   193 Sicherheit heißt auch Logging. Auskunft über das Verarbeiten der
    60 Sicherheit heißt auch Logging. Auskunft über das Verarbeiten der