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
2018-11-27 10:46:01 +01:00
\item Seit Anfang 2018 besteht Versorgung durch natives IPv6-Routing
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-27 10:46:01 +01:00
Ein IPv6-fähiger VPN-Dienst soll konzipiert und umgesetzt werden, um den existierenden IPv4-VPN-Dienst abzulösen. \\
\ \\
Ziel: Beschäftigte und Studierende der Abteilung Informatik sollen mit dem VPN arbeiten können, als wären Sie vor Ort.
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
2018-11-27 10:48:28 +01:00
\item \textbf { VPN-interner Datenverkehr} : Interne Abteilungsnetze sollen über VPN erreichbar sein, VPN-Clients dürfen nicht mit anderen VPN-Clients kommunizieren, NFS\footnote { Network File System} muss blockiert werden
2018-11-22 14:48:41 +01:00
\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-27 13:23:25 +01:00
\item VPN-Server ist Router zwischen VPN-Clients und Abteilungsnetz
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: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-27 13:12:15 +01:00
Einsatz von Kryptografie \\
$ \rightarrow $ Implementation von kryptografischen Algorithmen soll quelloffen sein. \\
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-27 13:26:07 +01:00
\item Dienst für IKE\footnote { \textit { Internet Key Exchange Protocol} (IKE)}
2018-11-25 17:21:59 +01:00
\item Ermöglicht ein VPN auf Basis von IPsec
2018-11-27 13:26:07 +01:00
\item Ist vollständig quelloffen; IPsec wird aber im Kernel verarbeitet!
2018-11-27 13:23:25 +01:00
\item Installation und Einrichtung je nach Plattform unterschiedlich schwierig
2018-11-25 17:46:11 +01:00
\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
2018-11-27 13:23:25 +01:00
\item Plattformübergreifend identische Konfiguration und Benutzbarkeit\footnote { Auf der Kommandozeile}
\item Zusätzliche grafische Oberflächen optional benutzbar
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-27 11:26:23 +01:00
\item CRL zum Blocken gesperrter Zertifikate wird über Cronjob aktualisier
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
\begin { itemize}
2018-11-27 09:59:07 +01:00
\item Der neue IPv6-VPN-Dienst kann benutzt werden (Testbetrieb)
2018-11-27 11:26:23 +01:00
\item Dokumentation für Installation und Administration ermöglichen Produktivbetrieb
2018-11-25 18:13:51 +01:00
\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.