\section{Einleitung} \begin{frame}{Situation von IPv4 und IPv6} Allgemein: \begin{itemize} \item Öffentliche IPv4-Adressen sind fast vollständig erschöpft \begin{itemize} \item Internetanbieter setzen stellenweise auf Carrier-grade NAT \end{itemize} \item Immer mehr Internetanschlüsse werden auch mit IPv6 versorgt \end{itemize} In der Abteilung Informatik: \begin{itemize} \item IPv6 wird seit wenigen Jahren erprobt \item Seit Anfang 2018 über natives IPv6-Routing versorgt \end{itemize} \ \newline $\rightarrow$ Ein IPv6-fähiger VPN-Dienst soll den existierenden IPv4-VPN-Dienst ablösen. \end{frame} \begin{frame}{Definition: \textit{Virtual Private Network} (VPN)} \begin{itemize} \item \textit{Virtual}: Es existiert nur logisch, nicht physisch \item \textit{Private}: Nur die VPN-Teilnehmer wissen davon \item \textit{Network}: VPN-Teilnehmer werden direkt über das Netzwerk verbunden \end{itemize} \begin{block}{\textbf{Beispiel} Pen-\&-Paper-Rollenspiel} Spielteilnehmer tauschen Informationen über Zettel aus, als säßen sie gemeinsam an einem Tisch. \\ Die Zettel werden aber im Umschlag per Post zwischen den Teilnehmern transportiert. \end{block} \end{frame} \begin{frame}{Wie funktioniert ein VPN?} \begin{figure}[ht] \centering \includegraphics[trim=75 610 135 75,clip,width=\textwidth]{img/VPN-Skizze.pdf} \caption{Beispielszenario: VPN-Verbindung zwischen Alice und Bob} \end{figure} \end{frame} \section{Arbeitsauftrag} \begin{frame}{Arbeitsauftrag} Ein IPv6-fähiger VPN-Dienst soll konzipiert und umgesetzt werden, um den existierenden IPv4-VPN-Dienst abzulösen. \end{frame} \begin{frame}{Anforderungen (1/3)} \begin{itemize} \item \textbf{Dual-Stack-Betrieb}: Erreichbar über IPv6 und IPv4, Unterstützung von IPv6 und IPv4 innerhalb des VPNs \item \textbf{VPN-interner Datenverkehr}: Interne Abteilungsnetze sollen über VPN erreichbar sein, VPN-Clients dürfen nicht mit anderen VPN-Clients kommunizieren \item \textbf{VPN-externer Datenverkehr}: Authentisierte, vertrauliche Kommunikation zwischen VPN-Clients und -Server \end{itemize} \end{frame} \begin{frame}{Anforderungen (2/3)} \begin{itemize} \item \textbf{Benutzer}: Beschäftigte und Studierende der Abteilung Informatik, Kapazität für 50-500 Benutzer \item \textbf{Betrieb des VPN-Servers}: Debian~9 (oder höher) wird als Serverbetriebssystem vorgegeben \item \textbf{Betrieb der VPN-Clients}: Moderne Versionen von Linux, MacOS und Windows sollen unterstützt werden \end{itemize} \end{frame} \begin{frame}{Anforderungen (3/3)} \begin{itemize} \item \textbf{Betriebsprotokoll}: VPN-Dienst soll im Regelbetrieb DSGVO-konform protokollieren \item \textbf{Finanzieller Rahmen}: Es steht kein Geld zur Verfügung \end{itemize} \end{frame} \begin{frame}{Überblick: Netzwerk der Abteilung Informatik} \begin{figure}[ht] \centering \includegraphics[width=\textwidth]{img/Netzwerktopologie_simpelv2_with_addresses.pdf} \caption{Topologie des Abteilungsnetzes (vereinfachte Skizze)} \end{figure} \end{frame} \section{Konzept} \begin{frame}{Joah \dots ähm \dots also \dots jo.} Client-Server-Architektur, weil \dots \\ Authentisierung von Benutzern mit Zertifikaten, weil Passwörter weniger sicher sind usw. \dots \\ Authentisierung des Servers mit Zertifikat, weil \dots \\ Einrichtung einer eigenen CA auf separatem Server, weil \dots \\ IP-Adressen für VPN-Clients: NAT für IPV4, weil \dots \\ IP-Adressen für VPN-Clients: Öffentliches Netz für IPv6, weil \dots \\ Tunnel auf OSI-Schicht~3, weil \dots \\ Moderne Verschlüsselung der Kommunikation (inkl. PFS) , weil \dots \\ Konzepte des IT-Teams berücksichtigen für einfache Wartung und Pflege \\ Benutzerverwaltung durch Ausstellung und Widerrufen von Zertifikaten möglich \\ Automatische Aktualisierung der CRL auf VPN-Server, weil \dots \end{frame} \begin{frame}{VPN-Konzept} \begin{figure}[ht] \centering \includegraphics[width=\textwidth]{img/VPN-Service-Concept.pdf} \caption{Installationskonzept für den VPN-Dienst} \end{figure} \end{frame} \section{VPN-Software} \begin{frame}{VPN-Software} Als Serverbetriebssystem wurde Debian~9 (oder höher) vorgegeben. \\ $\rightarrow$ Debian-Paketquellen werden bevorzugt. \\ \ \\ Folgende Kandidaten wurden in der Arbeit näher betrachtet: \begin{itemize} \item OpenVPN \item IPsec mit StrongSwan \item Wireguard (zur Zeit experimentell, mehr dazu im Ausblick) \end{itemize} \end{frame} \begin{frame}{OpenVPN} OpenVPN wurde gegenüber IPsec mit StrongSwan gewählt. Läuft im Userspace und verwendet OpenSSL. Erhältlich für alle drei Plattformen. Konfiguration für Einsteiger leicht nachvollziehbar. IPsec mit StrongSwan fiel raus, weil: \\ Kompliziert, wenn man Wert auf StrongSwan legt. Nicht vollständig quelloffen, da IPsec im Kernel stattfindet. Flexibilität ermöglicht unsichere Konfiguration \end{frame} \section{Installation und Konfiguration} \begin{frame}{Warum OpenVPN? (Warum EasyRSA?)} \begin{itemize} \item Im Vergleich zu IPsec einfacher zu konfigurieren \item Vollständig quelloffen \item Plattformübergreifend identische Konfiguration und Usability (CLI) \end{itemize} \end{frame} \begin{frame}{Mehr \dots} \begin{itemize} \item Fest vorgegebene Kryptografie, um weniger Komplexität und Fehleranfälligkeit zu erhalten \item Nur korrekte Konfiguration führt zu einer dann auch vertraulichen Sitzung \item Kontrollkanal und Datenkanal müssen gleichermaßen geschützt werden, um Vertraulichkeit zu gewährleisten \end{itemize} \end{frame} \begin{frame}{VPN-Installationsplan} \begin{figure}[ht] \centering \includegraphics[width=\textwidth]{img/OpenVPN-Deployment.pdf} \caption{Installation des IPv6-VPN mit OpenVPN und EasyRSA} \label{fig:vpn_service_concept} \end{figure} \end{frame} \section{Fazit/Ausblick} \begin{frame}{Fazit} \begin{itemize} \item Neuer IPv6-VPN-Dienst steht und kann benutzt werden \item Sollte lange genug halten, bis neue Technik kommt \item Erweiterbarkeit in Hinblick auf lokale Firewall, Routing neuer Netze möglich \item Bei kaputter Krypto einmal alles austauschen, sollte aber sehr unwahrscheinlich sein. \end{itemize} \end{frame} \begin{frame}{Ausblick} \begin{itemize} \item OpenVPN~3 kommt bald \item TLS~1.3 kommt bald \item Mit Wireguard kann man sehr viel Spaß haben \end{itemize} \end{frame} \begin{frame}{Kurzer Überblick zum Schluss: Wireguard} Noch experimentell, aber klares Design, wenig Code, einfache Benutzung. Könnte die Zukunft sein. (Mehr dazu als Ausblick hinten dran) \end{frame} % The end.