2018-11-21 13:59:24 +01:00
\section { Einleitung}
2018-11-25 17:26:44 +01:00
\subsection { Situation von IPv4 und IPv6}
2018-11-21 13:59:24 +01:00
\begin { frame} { Situation von IPv4 und IPv6}
2018-11-21 15:00:03 +01:00
Allgemein:
2018-11-21 13:59:24 +01:00
\begin { itemize}
2018-11-21 15:00:03 +01:00
\item Öffentliche IPv4-Adressen sind fast vollständig erschöpft
2018-11-21 13:59:24 +01:00
\begin { itemize}
2018-11-21 15:00:03 +01:00
\item Internetanbieter setzen stellenweise auf Carrier-grade NAT
2018-11-21 13:59:24 +01:00
\end { itemize}
2018-11-21 15:00:03 +01:00
\item Immer mehr Internetanschlüsse werden auch mit IPv6 versorgt
2018-11-21 13:59:24 +01:00
\end { itemize}
2018-11-21 15:00:03 +01:00
In der Abteilung Informatik:
2018-11-21 13:59:24 +01:00
\begin { itemize}
2018-11-21 15:00:03 +01:00
\item IPv6 wird seit wenigen Jahren erprobt
\item Seit Anfang 2018 über natives IPv6-Routing versorgt
2018-11-22 22:47:18 +01:00
\item Existierende Dienste werden um IPv6 erweitert
2018-11-21 13:59:24 +01:00
\end { itemize}
2018-11-21 15:13:38 +01:00
\ \newline
2018-11-25 17:26:44 +01:00
$ \rightarrow $ IPv6-fähiger VPN-Dienst soll bisherigen IPv4-VPN-Dienst ablösen
2018-11-21 13:59:24 +01:00
\end { frame}
2018-11-25 17:26:44 +01:00
\subsection { Definition: \textit { Virtual Private Network} (VPN)}
2018-11-21 15:13:38 +01:00
\begin { frame} { Definition: \textit { Virtual Private Network} (VPN)}
2018-11-20 15:56:38 +01:00
\begin { itemize}
2018-11-21 16:04:07 +01:00
\item \textit { Virtual} : Es existiert nur logisch, nicht physisch
\item \textit { Private} : Nur die VPN-Teilnehmer wissen davon
2018-11-25 17:33:13 +01:00
\item \textit { Network} : VPN-Teilnehmer können über VPN Nachrichten versenden und empfangen
2018-11-20 15:56:38 +01:00
\end { itemize}
2018-11-21 15:13:38 +01:00
2018-11-21 15:23:54 +01:00
\begin { block} { \textbf { Beispiel} Pen-\& -Paper-Rollenspiel}
2018-11-21 15:21:22 +01:00
Spielteilnehmer tauschen Informationen über Zettel aus, als säßen sie gemeinsam an einem Tisch. \\
2018-11-21 20:42:26 +01:00
Die Zettel werden aber im Umschlag per Post zwischen den Teilnehmern transportiert.
2018-11-21 15:21:22 +01:00
\end { block}
2018-11-20 15:56:38 +01:00
\end { frame}
2018-11-25 17:33:13 +01:00
\subsection { Beispiel: Funktionsweise eines VPNs}
\begin { frame} { Beispiel: Funktionsweise eines VPNs}
2018-11-21 12:28:21 +01:00
\begin { figure} [ht]
\centering
2018-11-21 14:30:12 +01:00
\includegraphics [trim=75 610 135 75,clip,width=\textwidth] { img/VPN-Skizze.pdf}
2018-11-21 12:36:54 +01:00
\caption { Beispielszenario: VPN-Verbindung zwischen Alice und Bob}
2018-11-21 12:28:21 +01:00
\end { figure}
\end { frame}
2018-11-21 13:59:24 +01:00
\section { Arbeitsauftrag}
2018-11-20 14:44:31 +01:00
2018-11-25 17:26:44 +01:00
\subsection { Arbeitsauftrag}
2018-11-20 14:44:31 +01:00
\begin { frame} { Arbeitsauftrag}
2018-11-22 15:32:54 +01:00
Ein IPv6-fähiger VPN-Dienst soll konzipiert und umgesetzt werden, um den existierenden IPv4-VPN-Dienst abzulösen.
2018-11-20 14:44:31 +01:00
\end { frame}
2018-11-25 17:26:44 +01:00
\subsection { Anforderungen}
2018-11-22 14:55:19 +01:00
\begin { frame} { Anforderungen (1/3)}
2018-11-22 14:48:41 +01:00
\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}
2018-11-22 14:55:19 +01:00
\begin { frame} { Anforderungen (2/3)}
2018-11-22 14:48:41 +01:00
\begin { itemize}
2018-11-22 14:55:19 +01:00
\item \textbf { Benutzer} : Beschäftigte und Studierende der Abteilung Informatik, Kapazität für 50-500 Benutzer
2018-11-22 14:48:41 +01:00
\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
2018-11-22 14:55:19 +01:00
\end { itemize}
\end { frame}
\begin { frame} { Anforderungen (3/3)}
\begin { itemize}
2018-11-22 14:51:17 +01:00
\item \textbf { Betriebsprotokoll} : VPN-Dienst soll im Regelbetrieb DSGVO-konform protokollieren
2018-11-22 15:01:39 +01:00
\item \textbf { Finanzieller Rahmen} : Es steht kein Geld zur Verfügung
2018-11-10 18:53:33 +01:00
\end { itemize}
\end { frame}
2018-11-25 17:26:44 +01:00
\subsection { Überblick: Netzwerk der Abteilung Informatik}
2018-11-21 16:03:10 +01:00
\begin { frame} { Überblick: Netzwerk der Abteilung Informatik}
2018-11-21 15:59:35 +01:00
\begin { figure} [ht]
\centering
\includegraphics [width=\textwidth] { img/Netzwerktopologie_ simpelv2_ with_ addresses.pdf}
2018-11-21 16:00:45 +01:00
\caption { Topologie des Abteilungsnetzes (vereinfachte Skizze)}
2018-11-21 15:59:35 +01:00
\end { figure}
\end { frame}
2018-11-20 14:33:51 +01:00
\section { Konzept}
2018-11-25 17:26:44 +01:00
\subsection { Entwurf der Architektur}
2018-11-24 22:45:28 +01:00
\begin { frame} { Entwurf der Architektur (1/2)}
\begin { itemize}
\item VPN-Server wird in DMZ-Netz platziert
2018-11-25 17:05:34 +01:00
\item VPN-Tunnel auf OSI-Schicht~3, transportiert IP-Pakete
2018-11-24 22:45:28 +01:00
\item IP-Adressen für VPN-Clients
\begin { itemize}
2018-11-25 17:05:34 +01:00
\item Private Adressen mit NAT für IPv4
2018-11-24 22:45:28 +01:00
\item Öffentliches Netz für IPv6
\end { itemize}
2018-11-25 17:36:51 +01:00
\item VPN-Server ist Router zwischen VPN-Clients und Abteilungsnetz
2018-11-25 17:39:15 +01:00
\item Lokale Firewall wird auf VPN-Server installiert
2018-11-24 22:45:28 +01:00
\end { itemize}
\end { frame}
\begin { frame} { Entwurf der Architektur (2/2)}
\begin { itemize}
\item VPN-Server und -Benutzer authentisieren sich mit Zertifikaten
\item PKI für Zertifikate wird auf separatem Server eingerichtet
\item VPN-Server blockiert gesperrte Benutzer mit Hilfe der CRL\footnote { \textit { Certificate Revocation List} (CRL)} der PKI
\item PKI-Server stellt CRL über Webserver zur Verfügung
2018-11-25 17:39:15 +01:00
\item Administratoren des VPN-Dienst erhalten SSH-Zugang zum PKI-Server
\item PKI-Server wird in Mitarbeiter-Netz platziert
2018-11-24 22:45:28 +01:00
\end { itemize}
2018-11-20 14:44:31 +01:00
\end { frame}
2018-11-25 17:26:44 +01:00
\subsection { Überblick: Geplante Architektur}
2018-11-24 22:55:48 +01:00
\begin { frame} { Überblick: Geplante Architektur}
2018-11-20 14:28:53 +01:00
\begin { figure} [ht]
\centering
2018-11-21 14:30:12 +01:00
\includegraphics [width=\textwidth] { img/VPN-Service-Concept.pdf}
2018-11-25 17:05:34 +01:00
\caption { Konzept zur Installation des VPN-Dienstes}
2018-11-20 14:28:53 +01:00
\end { figure}
\end { frame}
2018-11-10 18:53:33 +01:00
2018-11-24 22:55:48 +01:00
\section { Auswahl der VPN-Software}
2018-11-20 14:33:51 +01:00
2018-11-25 17:46:11 +01:00
\subsection { Betrachtete Kandidaten für VPN-Software}
\begin { frame} { Betrachtete Kandidaten für VPN-Software}
2018-11-25 17:26:44 +01:00
Als Serverbetriebssystem wurde Debian~9 vorgegeben. \\
$ \rightarrow $ Debian-Paketquellen sind erste Anlaufstelle. \\
2018-11-22 15:38:34 +01:00
\ \\
2018-11-25 17:16:32 +01:00
Folgende Kandidaten wurden näher betrachtet:
2018-11-22 15:38:34 +01:00
\begin { itemize}
\item OpenVPN
2018-11-25 17:16:32 +01:00
\item StrongSwan (für IPsec-VPN)
2018-11-22 16:34:09 +01:00
\item Wireguard (zur Zeit experimentell, mehr dazu im Ausblick)
2018-11-22 15:38:34 +01:00
\end { itemize}
\end { frame}
2018-11-20 14:44:31 +01:00
\begin { frame} { OpenVPN}
2018-11-24 22:55:48 +01:00
\begin { itemize}
2018-11-25 17:21:59 +01:00
\item Läuft komplett im Benutzerkontext
\item Benutzt OpenSSL für kryptografische Operationen
\item Stellt VPN über virtuelle Netzwerkkarte zur
2018-11-24 22:55:48 +01:00
Verfügung
2018-11-25 17:46:11 +01:00
\item Ist vollständig quelloffen
2018-11-25 17:21:59 +01:00
\item VPN-Clients für alle drei Betriebssysteme kompiliert verfügbar
\item Für Einsteiger leicht verständliche Konfiguration
2018-11-24 22:55:48 +01:00
\end { itemize}
\end { frame}
2018-11-20 14:44:31 +01:00
2018-11-24 22:55:48 +01:00
\begin { frame} { StrongSwan}
\begin { itemize}
2018-11-25 17:46:11 +01:00
\item Ist ein IKEv2\footnote { \textit { Internet Key Exchange Protocol} (IKE) Version 2} -Dienst
2018-11-25 17:21:59 +01:00
\item Ermöglicht ein VPN auf Basis von IPsec
\item Installation und Einrichtung je nach Plattform
2018-11-25 17:46:11 +01:00
\item Ist vollständig quelloffen; IPsec wird aber im Kernel verarbeitet!
\item Installation auf Windows mit Einschränkungen verbunden
2018-11-25 17:21:59 +01:00
\item Zu viel Komplexität ermöglicht unsichere Konfigurationen
2018-11-24 22:55:48 +01:00
\end { itemize}
2018-11-20 14:44:31 +01:00
\end { frame}
2018-11-25 17:26:44 +01:00
\subsection { Auswahl der VPN-Software}
2018-11-25 17:46:11 +01:00
\begin { frame} { Auswahl der VPN-Software}
OpenVPN wird zur Umsetzung des VPN-Dienstes gewählt.
2018-11-22 15:17:53 +01:00
\begin { itemize}
2018-11-25 17:46:11 +01:00
\item Einfache Konfiguration im Vergleich zu IPsec/Strongswan
\item Vollständig quelloffene Verarbeitung des VPN-Verkehrs
\item Einheitliches Sicherheitsniveau über alle Plattformen garantierbar
\item Plattformübergreifend identische Konfiguration und Benutzbarkeit (CLI)
2018-11-22 15:17:53 +01:00
\end { itemize}
\end { frame}
2018-11-22 22:47:18 +01:00
\section { Installation und Konfiguration}
2018-11-25 18:13:51 +01:00
\subsection { Aspekte der OpenVPN-Konfiguration}
\begin { frame} { Aspekte der OpenVPN-Konfiguration}
\begin { itemize}
\item OpenVPN-Server gibt Routen für Netze der Abteilung vor
\item OpenVPN unterscheidet Kontrollkanal und Datenkanal
\begin { itemize}
\item Beide sind für Vertraulichkeit gleichermaßen wichtig
\end { itemize}
\item Fest vorgegebene Kryptografie reduziert Fehleranfälligkeit durch Komplexität
2018-11-22 15:32:54 +01:00
\begin { itemize}
2018-11-25 18:13:51 +01:00
\item Nur korrekte Konfiguration führt zu einer VPN-Sitzung
\item Ungeschützte Sitzungen werden ausgeschlossen
\end { itemize}
2018-11-22 15:32:54 +01:00
\end { itemize}
\end { frame}
2018-11-25 17:33:13 +01:00
\subsection { Überblick: Konkrete Architektur mit OpenVPN}
\begin { frame} { Überblick: Konkrete Architektur mit OpenVPN}
2018-11-20 14:44:31 +01:00
\begin { figure} [ht]
\centering
2018-11-21 14:30:12 +01:00
\includegraphics [width=\textwidth] { img/OpenVPN-Deployment.pdf}
2018-11-20 14:44:31 +01:00
\caption { Installation des IPv6-VPN mit OpenVPN und EasyRSA}
\label { fig:vpn_ service_ concept}
\end { figure}
\end { frame}
2018-11-25 18:13:51 +01:00
\section { Abschluss}
2018-11-20 14:33:51 +01:00
2018-11-25 18:13:51 +01:00
\subsection { Fazit}
2018-11-22 15:20:56 +01:00
\begin { frame} { Fazit}
2018-11-25 18:13:51 +01:00
Alle Anforderungen wurden erfolgreich umgesetzt!
\begin { itemize}
\item Der neue IPv6-VPN-Dienst kann benutzt werden
\item Problemlose Erweiterbarkeit in Hinblick auf lokale Firewall und Routing neuer Netze
\item Fest vorgegebene Kryptografie verhindert unsichere Sitzungen bei Fehlkonfiguration
\item Gebrochene Kryptografie erfordert neue Konfiguration von VPN-Server und -Clients
2018-11-22 15:20:56 +01:00
\begin { itemize}
2018-11-25 18:13:51 +01:00
\item Wahrscheinlichkeit dafür wird als gering eingestuft
\end { itemize}
2018-11-22 15:20:56 +01:00
\end { itemize}
\end { frame}
2018-11-25 18:13:51 +01:00
\subsection { Ausblick}
2018-11-22 15:21:46 +01:00
\begin { frame} { Ausblick}
2018-11-22 15:20:56 +01:00
\begin { itemize}
2018-11-25 18:13:51 +01:00
\item OpenVPN~3 befindet sich in Entwicklung
\begin { itemize}
\item Modulare Ansatz in der Softwarearchitektur reduziert Risiken durch Sicherheitslücken
\item Kryptografie auf Basis elliptischer Kurven wird besser unterstützt
\end { itemize}
\item TLS~1.3 kann erprobt werden, sobald VPN-Server und -Clients es unterstützen
\begin { itemize}
\item Vollständiger Umstieg erfordert Unterstützung bei allen verwendeten VPN-Clients
2018-11-22 15:20:56 +01:00
\end { itemize}
2018-11-25 18:13:51 +01:00
\end { itemize}
\dots und dann gibt es noch Wireguard.
2018-11-10 18:53:33 +01:00
\end { frame}
2018-11-25 18:13:51 +01:00
\subsection { Wireguard: VPN-Software der Zukunft?}
\begin { frame} { Wireguard: VPN-Software der Zukunft?}
\begin { itemize}
\item Zur Zeit noch experimentelle Software
\item Implementation umfasst etwa 4000 Zeilen Quellcode als Linux-Kernelmodul
\item Implementationen in Go und Rust können auf anderen Betriebssystemen benutzt werden
\item Kryptografie im Quellcode fest vorgeschrieben
\item Unkomplizierte Administration
2018-11-25 18:16:28 +01:00
\item Effiziente Verarbeitung von VPN-Verkehr liefert hohen Datendurchsatz bei geringer CPU-Auslastung
2018-11-25 18:13:51 +01:00
\end { itemize}
2018-11-22 16:27:07 +01:00
\end { frame}
2018-11-20 14:33:51 +01:00
% The end.