mastercolloquium/MA-KO-Inhalt.tex

256 lines
9.4 KiB
TeX
Raw Normal View History

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 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}
\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}
\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}
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
\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
\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}
\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
\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-24 22:55:48 +01:00
\section{Auswahl der VPN-Software}
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. \\
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}
\item Ist ein IKE\footnote{\textit{Internet Key Exchange Protocol} (IKE)}-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 unterschiedlich schwierig
2018-11-25 17:46:11 +01:00
\item Installation auf Windows mit Einschränkungen verbunden
\item Ist vollständig quelloffen; IPsec wird aber im Kernel verarbeitet!
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\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}
\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-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}
\item Der neue IPv6-VPN-Dienst kann benutzt werden (Testbetrieb)
\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.
\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}
% The end.