From e6b14eab9ae7321e6a9c3fd92dc713b48aa9a4cc Mon Sep 17 00:00:00 2001 From: Jan Philipp Timme Date: Tue, 16 Oct 2018 16:45:57 +0200 Subject: [PATCH] Begin refactoring after receiving feedback --- MA-Inhalt.tex | 40 ++++++++++++++++++++++++++-------------- 1 file changed, 26 insertions(+), 14 deletions(-) diff --git a/MA-Inhalt.tex b/MA-Inhalt.tex index df38c99..c573ea5 100644 --- a/MA-Inhalt.tex +++ b/MA-Inhalt.tex @@ -14,6 +14,7 @@ Damit ist die Voraussetzung gegeben, um Netzwerkgeräte für IPv6 zu konfigurier Mitarbeitern und Studenten der Abteilung Informatik steht ein VPN-Dienst zur Ver\-fü\-gung, um Zugang in das Netz der Abteilung aus dem Internet heraus zu erhalten. Bisher ist dieser Dienst nur über IPv4 erreichbar und ermöglicht den Zugang in das Abteilungsnetz ausschließlich über IPv4. + \newpage Im Rahmen dieser Masterarbeit soll ein neuer, IPv6-fähiger VPN-Dienst konzipiert werden, der die Idee des bisherigen IPv4-VPN-Dienst aufgreift. Dafür wird zunächst die zukünftige Umgebung des VPN-Dienstes, die Netzarchitektur der Abteilung Informatik, inklusive ihrem Firewallkonzept vorgestellt. @@ -24,6 +25,10 @@ Anschließend wird ein Konzept zur Verwaltung der VPN-Benutzer erschaffen und di Die im Rahmen dieser Arbeit erzeugten Dokumente sind dem Anhang beigefügt. +\chapter{Arbeitsauftrag} \label{cpt:the_task} +\todo{Die Abteilung Informatik benötigt einen neuen VPN-Dienst, der IPv6 gleichermaßen wie IPv4 unterstützt.} + + \chapter{Netzarchitektur der Abteilung Informatik} \label{cpt:netarchitecture} Das Netz der Abteilung Informatik wird durch eine Firewall vom Netz der Hochschule Hannover und dem Internet getrennt. An der Firewall sind zwei lokale Netze angeschlossen: Die \textit{Demilitarisierte Zone} (DMZ) und das interne Abteilungsnetz, welches durch einen zentralen Switch in mehrere \textit{virtuelle Netze} (VLANs) unterteilt wird. @@ -37,8 +42,7 @@ Eine Skizze der Netztopologie mit den für diese Arbeit relevanten Teilen ist in \label{fig:topology_simple} \end{figure} - -\section{Firewallkonzept} \label{sct:firewall} +\paragraph{Firewallkonzept} \label{par:firewall} Die im Netz der Abteilung Informatik verwendeten LANs und VLANs werden im Firewallkonzept als verschiedene Sicherheitszonen betrachtet. Im Rahmen dieser Arbeit sind die folgenden Zonen relevant: @@ -91,11 +95,8 @@ Labor-Netze & erlaubt & erlaubt & erlaubt & erlaubt & --- \\ \end{table} -\chapter{Auswahl der VPN-Software} \label{cpt:choosing_vpn_software} -Das Umfeld, in dem der VPN-Dienst errichtet werden soll, wurde im vorherigen Kapitel bereits vorgestellt. -In diesem Kapitel wird die Software ausgesucht, mit der der VPN-Dienst umgesetzt werden soll. -Dazu werden zunächst die Anforderungen ermittelt und analysiert. -Im Anschluss werden dann passende Softwarekandidaten vorgestellt und für die Auswahl der in dieser Arbeit zu verwendenden Software gegenübergestellt. +\chapter{Konzeption des neuen VPN-Dienst} \label{cpt:concept_vpn_service} +\todo{Wir schauen mal, was so gebraucht wird und wie es aussehen soll.} \section{Anforderungsanalyse} \label{sct:requirements} @@ -116,7 +117,7 @@ Darunter fallen Microsoft Windows 10 (Version~1709 oder höher), Apple MAC OS (a \item \label{req:finance} \textbf{Finanzieller Rahmen:} Es stehen keine finanziellen Mittel für den Erwerb einer VPN-Lösung zur Verfügung. \end{enumerate} -Anhand der Anforderungen~\ref{req:dualstack} bis \ref{req:finance} werden vorhandene Programme ermittelt, die sich als Kandidat zur Umsetzung des VPN-Dienstes eignen. +Anhand der Anforderungen~\ref{req:dualstack} bis \ref{req:finance} aus Abschnitt~\ref{sct:requirements} werden vorhandene Programme ermittelt, die sich als Kandidat zur Umsetzung des VPN-Dienstes eignen. Aufgrund des finanziellen Rahmens (\ref{req:finance}) kommt nur kostenfreie Software in Frage, deren Serverkomponente mit aktuellem Debian (\ref{req:serveros}) kompatibel ist. Die Clientkomponenten der gesuchten Software müssen unter den aktuellen Betriebssystemen lauffähig sein (\ref{req:clientos}). @@ -129,6 +130,16 @@ Das wirkt sich auch auf Reaktionszeiten der Software-Distributoren aus: Entsprec Weiterhin soll die gesuchte Software IPv4 und IPv6 unterstützen (\ref{req:dualstack}), die Routingtabellen der VPN-Clients (\ref{req:routing}) anpassen können und in Bezug auf Protokollierung (\ref{req:logging}) konfigurierbar sein. +\section{Konzeption des neuen VPN-Dienst} \label{sct:concept_vpn_service} +\todo{Aufgrund der Anforderungen ergibt sich, dass der VPN-Dienst in Client-Server-Architektur aufgesetzt wird, über Dualstack erreichbar ist, eigene IPv4- und IPv6-Adressen an VPN-Clients austeilt, Routen für die relevanten Informatik-Netzt auf den Clients einrichtet, verschlüsselt kommuniziert und Benutzer erst nach Authentisierung zulässt.} + + +\chapter{Auswahl der VPN-Software} \label{cpt:choosing_vpn_software} +Das Umfeld, in dem der VPN-Dienst errichtet werden soll, wurde im vorherigen Kapitel bereits vorgestellt. +In diesem Kapitel wird die Software ausgesucht, mit der der VPN-Dienst umgesetzt werden soll. +Dazu werden zunächst die Anforderungen ermittelt und analysiert. +Im Anschluss werden dann passende Softwarekandidaten vorgestellt und für die Auswahl der in dieser Arbeit zu verwendenden Software gegenübergestellt. + \section{Kandidaten für VPN-Serversoftware} \label{sct:software_candidates} Ausgangspunkt für die Suche nach passender VPN-Software ist die Wahl der Serverkomponente: Sie soll quelloffen sein und auf einem Server mit aktuellem Debian eingesetzt werden können. Deshalb sind die Debian-Paketquellen die erste Anlaufstelle für die Suche. @@ -388,14 +399,14 @@ Außerdem ist die Angriffsfläche beim Einsatz von Zertifikaten geringer, da kei Unter Abwägung dieser Vor- und Nachteile werden im Rahmen dieser Arbeit Zertifikate zur Authentisierung von Benutzern verwendet. -\section{Zertifikatgestützte Benutzerauthentisierung} \label{sct:ca_concept} +\chapter{Zertifikatgestützte Benutzerauthentisierung} \label{cpt:ca_concept} Die VPN-Software OpenVPN bringt OpenSSL als Abhängigkeit mit. OpenSSL stellt eine Menge von Funktionen als Kommandozeilenwerkzeug zur Verfügung, mit denen alle Basisfunktionen einer Zertifizierungsstelle wie zum Beispiel die Erzeugung von Schlüssel\-paaren und Zertifikatsanträgen, sowie das Ausstellen von Zertifikaten auf Basis von Zertifikatsanträgen möglich ist. Im Prinzip ist es möglich, durch manuelle Bedienung von OpenSSL eine \textit{Zertifizierungsstelle} (CA) zu betreiben. Diese Vorgehensweise verlangt jedoch Fachwissen und Sorgfalt von den Betreibern der CA und eignet sich aufgrund des hohen Aufwands nur für die Verwaltung weniger Benutzer oder zu Zwecken der Lehre. -\subsection{Zertifizierungsstelle mit EasyRSA} \label{ssct:easyrsa_intro} +\section{Zertifizierungsstelle mit EasyRSA} \label{sct:easyrsa_intro} Mit der Installation von OpenVPN wird die Installation der Software \enquote{EasyRSA} durch den Debian-Paketmanager empfohlen, welches ebenfalls von den OpenVPN-Entwicklern geschrieben wurde. Dieses Paket enthält eine Sammlung von Shellskripten, welche die Funktionalität von OpenSSL kapseln um damit einen erleichterten Betrieb einer CA zu ermöglichen. Die enthaltenen Skripte abstrahieren allgemeine Aufgaben für den Betrieb einer CA. @@ -416,7 +427,7 @@ Eine auf diese Weise eingerichtete CA kann aus diesem Grund nicht durch den Debi Aufgrund des Installationsprozess und den in EasyRSA Version~3.0.5 enthaltenen Vorteilen wird entschieden, dass EasyRSA Version~3.0.5 zum Aufbau der CA für den VPN-Dienst eingesetzt wird. -\subsection{Konfiguration von EasyRSA} \label{ssct:easyrsa_config} +\section{Konfiguration von EasyRSA} \label{sct:easyrsa_config} Bevor mit EasyRSA~3.0.5 eine CA aufgebaut werden kann, muss die Konfiguration von EasyRSA an die Bedürfnisse der CA angepasst werden. Die anzupassenden Parameter werden in diesem Abschnitt beschrieben und die dazu getroffenen Entscheidungen erläutert. @@ -523,6 +534,9 @@ Details zur Benutzung der CA sind in dem Dokument \enquote{Dokumentation der Zer In diesem Kapitel wird gezeigt, wie der Server für den VPN-Dienst installiert und konfiguriert wird. Wie in Abschnitt~\ref{sct:requirements} bereits geklärt, wird laut Anforderung \ref{req:serveros} Debian~9 als Betriebssystem verwendet. Die Konfiguration des Betriebssystems erfolgt dabei nach den Vorgaben des IT-Teams, damit der Dienst ohne zusätzliche Arbeiten als Produktivsystem übernommen werden kann. + +\section{} \label{sct:} + OpenVPN unterstützt den Aufbau eines VPN-Tunnels auf OSI-Layer~2 und OSI-Layer~3. Im Prinzip könnten beide Tunnelvarianten für den Anwendungsfall dieser Arbeit verwendet werden. Da im Rahmen dieser Arbeit nur die Erreichbarkeit über IPv4 und IPv6 relevant ist, wird ein VPN-Tunnel auf OSI-Layer~2 nicht benötigt. @@ -570,7 +584,7 @@ Jeglicher weiterer Datenverkehr aus dem VPN-Netz heraus ist gestattet. Alle Details zu Installation und Betrieb des VPN-Servers sind in dem Dokument \enquote{IPv6-VPN Serverdokumentation} im Anhang dieser Arbeit zu finden. -\section{Konfiguration von OpenVPN} +\section{Entwurf der OpenVPN-Konfiguration} \label{sct:openvpn_config} Nach Einrichtung des Servers wird in diesem Schritt die Konfiguration des OpenVPN-Servers im Detail erläutert. Nähere Informationen zu den verwendeten Optionen können in \cite[][]{man:openvpn} nachgeschlagen werden. @@ -813,8 +827,6 @@ Die Verwaltung von VPN-Benutzern kann dabei unter anderem über X.509-Public-Key Die Installation und Konfiguration des VPN-Dienst konnte ohne Komplikationen durchgeführt werden und erfüllt alle gegebenen Anforderungen. Da die Konzeption in enger Absprache mit dem IT-Team der Abteilung Informatik stattgefunden hat und alle im IT-Team gängigen Vorgehensweisen berücksichtigt wurden, steht dem langfristigen Betrieb des in dieser Arbeit erschaffenen VPN-Servers und der dazugehörigen VPN-CA nichts im Weg. - -\section{Ausblick} Mit der in dieser Arbeit erschaffenen VPN-Lösung ist der Bedarf der Abteilung Informatik an VPN-Diensten erst einmal gedeckt worden. Allerdings bedeutet die erfolgreiche Inbetriebnahme eines neuen Produktivsystems keinesfalls, dass nun nichts mehr zu tun sei. Es lohnt sich jederzeit, die Aktualisierung und Weiterentwicklung eines Dienstes im Auge zu behalten.