\documentclass[12pt]{beamer}
\usepackage{amsmath}
\usepackage{url}
\usepackage{ucs}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}

\title{Port-Knocking}
\author{Ingo Blechschmidt \\\texttt{<iblech@web.de>}}
\institute{LUGA}
\date{4. Mai 2005}

\usetheme{Warsaw}
\usecolortheme{seahorse}
\setbeamercovered{transparent}

\begin{document}

\frame{\titlepage}

\section{}
\frame[t]{
  \frametitle{Inhalt}
  \tableofcontents
}

\section{Beschreibung}
\subsection{Allgemeine Idee}
\frame[t]{
  \frametitle{Allgemeine Idee}

  \begin{block}{Problem}
    Lauschen von Diensten ⇒
    Angriffspunkt
  \end{block}

  \pause

  \begin{block}{Lösung}
    Freischalten bestimmter Dienste erst nach einer "`Anklopfsequenz"' ⇒
    Machtlose(re) Angreifer
  \end{block}

  \begin{block}{Wichtig}
    Nicht Vernachlässigung der Sicherheit der durch Port-Knocking geschützten
    Dienste!
  \end{block}
}

\subsection{Umsetzung}
\frame[t]{
  \frametitle{Umsetzung}

  \begin{enumerate}
    \item<1-> Schließen von Port $p$
    \item<2-> Warten auf Anklopfsequenz \\
	      (z.B. UDP-Pakete an vorbestimmte Ports)
    \item<3-> Freischalten von Port $p$, evtl. Starten eines Dienstes, etc.
  \end{enumerate}

  \vfill\pause\pause\pause
  \begin{block}{Mögliche Anklopfsequenzen}
    \begin{itemize}
      \item<4-> UDP- oder TCP-Ports
      \item<5-> E-Mail
      \item<6-> Eintrag in einem öffentlichen Gästebuch, \\
                Einträge in öffentlichen Gästebüchern
    \end{itemize}
  \end{block}
}

\subsection{Vor- und Nachteile}
\frame{
  \frametitle{Vor- und Nachteile}

  \begin{block}{Vorteile}
    \begin{itemize}
      \item Sichereres System durch Diensteabschottung
      \item Keine einfache Möglichkeit, auf die Anwendung von Port-Knocking zu
	    testen
    \end{itemize}
  \end{block}

  \pause\vfill
  \begin{block}{Nachteile}
    \begin{itemize}
      \item Umständlicheres Verbinden
      \item Ausschließliche Verwendung einiger Ports für's Port-Knocking
      \item Fehler in Port-Knocking-Software ⇒ Unerreichbarkeit
    \end{itemize}
  \end{block}
}

\section{Implementationen}
\subsection{Überblick}
\frame{
  \frametitle{Implementationen}

  \begin{block}{"`Perl prototype"' von portknocking.org}
    \begin{itemize}
      \item Zahlreiche Features
      \item Nicht ganz einfache Konfiguration
    \end{itemize}
  \end{block}

  \pause\vfill
  \begin{block}{"`knock"}
    \begin{itemize}
      \item Anklopfsequenz: Nur vorbestimmte UDP- oder TCP-Ports
      \item Sehr einfache Konfiguration
    \end{itemize}
  \end{block}
}

\subsection{knock}
\frame[t]{
  \frametitle{knock}

  \small
  \begin{itemize}
    \item<1-> \texttt{%
      \# \textbf{apt-get install knockd}\ \ \ \ \ \ \ \# bzw.\\
      \# \textbf{emerge knock}\\
    }
    \item<2-> \texttt{%
      \# \textbf{\$EDITOR /etc/knockd.conf}\\
      \symbol{91}\color{blue!50!black}startSSH\color{black}\symbol{93}\\
      \ \ sequence\ \ \ \ = \color{red!50!black}42000,23000,1337\color{black}\\
      \ \ seq\symbol{95}timeout\ = 5\\
      \ \ command \ \ \ \ = \color{magenta!50!black}/etc/init.d/sshd start\color{black}\\
      \ \ tcpflags\ \ \ \ = syn\\
    }
    \item<2-> \texttt{%
      \# \textbf{/etc/init.d/knock start}\\
    }
    \item<3-> \texttt{%
      \$ \textbf{knock server \color{red!50!black}42000 23000 1337\color{black}}\\
      \$ \textbf{ssh iblech@server}\\
      \ldots\\
    }
  \end{itemize}
}

\section{Literatur}
\frame[t]{
  \frametitle{Literatur}

  \begin{itemize}
    \item \url{http://www.portknocking.org/view/resources/} \\
	  Viele weitere Literaturverweise
    \item Linux-Magazin 12/2004 \\
	  "`Port-Knocking: Die unsichtbare Hintertür"'
  \end{itemize}
}

\end{document}
