\documentclass[12pt]{beamer}
\usepackage{amsmath}
\usepackage{url}
\usepackage{ucs}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
% Manual syntax highlighting
\newcommand{\synfunc} [1]{\color{blue!50!black}#1\color{black}}
\newcommand{\synstr} [1]{\color{red!50!black}#1\color{black}}
\newcommand{\synvar} [1]{\color{purple!50!black}#1\color{black}}
\newcommand{\synclass} [1]{\color{green!50!black}#1\color{black}}
\newcommand{\syncomment}[1]{\color{blue!20!black}#1\color{black}}
\newcommand{\syncool} [1]{\color{beamer@blendedblue}#1\color{black}}
\newcommand{\synoder} {\ \ \color{black}$\vee$\ \ }
\newcommand{\hr} {\rule[4pt]{\textwidth}{0.1pt}\\}
\title{NAT-Umgehung über UDP}
\author{Ingo Blechschmidt \\\texttt{<iblech@web.de>}}
\institute{LUGA}
\date{8. Juni 2005}
\usetheme{Warsaw}
\usecolortheme{seahorse}
\setbeamercovered{transparent}
\begin{document}
\frame{\titlepage}
\frame[t]{
\frametitle{Inhalt}
\tableofcontents
}
\section{Problem}
\frame[t]{
\frametitle{Problem}
\begin{itemize}
\item Wunsch: Bidirektionale Verbindung zwischen zwei sich hinter
NAT-Gateways befindlichen Computern
\item Problem: Regelwerk der Firewalls: \\
"`Erlaube nur Verbindungen von außen, wenn sie von innen initiiert
wurden."'
\item Aber wie eine Verbindung aufbauen, ohne öffentliche IP?
\end{itemize}
}
\section{L"osung}
\frame[t]{
\frametitle{Lösung}
\begin{itemize}
\item Versendung von UDP-Paketen von A an den NAT-Gateway von B
\item Blocken dieser Pakete durch die Firewall von B (klar)
\pause
\item Versendung von UDP-Paketen von B an den NAT-Gateway von A
\item Annahme dieser Pakete durch die Firewall von A, da Auffassung
als Antwort auf die durch A anfangs versendeten Pakete
\item Von nun an: Paketannahme bei beiden Firewalls (!)
\pause
\item Bereitstellung von IP mittels PPP-über-unseren-UDP-Tunnel
\end{itemize}
}
\section{Proof-of-Concept-Implementierung}
\subsection{Aufbau}
\frame[t]{
\frametitle{Aufbau der Proof-of-Concept-Implementierung}
\begin{enumerate}
\item Gegenseitiges Senden von "`Müll"'-Paketen (zum "`Austricksen"' der
Firewalls)
\item Gegenseitiges Senden eines Acknowledgement-Pakets
\item Warten auf ACK-Paket
\item Entweder Binden von \texttt{STDIN} und \texttt{STDOUT} an den Socket
und \text{exec()} eines Programms oder \\
Relayen von Tastatureingaben zur Gegenseite und umgekehrt
\end{enumerate}
}
\subsection{Beispielanwendung}
\frame[t]{
\frametitle{Beispielanwendung}
\texttt{%
root@A \# \textbf{./nat-udp.pl \textbackslash\\
\ \ --port=42000 \textbackslash\\
\ \ --peer=NAT-Gateway-von-B \textbackslash\\
\ \ --cmd="pppd updetach noauth passive notty \textbackslash\\
\ \ \ \ \ \ \ \ \ ipparam vpn 172.16.0.1:172.16.0.2"\ \textbackslash\\
\ \ --window=10}\\
\ \\
root@B \# \textbf{./nat-udp.pl \textbackslash\\
\ \ --port=42000 \textbackslash\\
\ \ --peer=NAT-Gateway-von-A \textbackslash\\
\ \ --cmd="pppd nodetach notty noauth"\ \textbackslash\\
\ \ --window=10}\\
}
}
\section{Quellen}
\frame[t]{
\frametitle{Quellen}
\begin{itemize}
\item \texttt{\#parrot} auf \texttt{irc.perl.org} (Ursprüngliche Idee)
\item \url{http://www.tldp.org/HOWTO/ppp-ssh/configclient.html\#AEN305} (pppd-Parameter)
\item \url{http://m19s28.vlinux.de/iblech/nat-udp.pl} (Implementierung)
\end{itemize}
}
\end{document}
Download