More restructuring to make everything make sense
This commit is contained in:
parent
e6b14eab9a
commit
46a375ccff
|
@ -17,6 +17,7 @@ Bisher ist dieser Dienst nur über IPv4 erreichbar und ermöglicht den Zugang in
|
|||
|
||||
\newpage
|
||||
Im Rahmen dieser Masterarbeit soll ein neuer, IPv6-fähiger VPN-Dienst konzipiert werden, der die Idee des bisherigen IPv4-VPN-Dienst aufgreift.
|
||||
\todo{Bereich ab hier noch einmal überarbeiten, wenn der Rest der Arbeit fertig ist.}
|
||||
Dafür wird zunächst die zukünftige Umgebung des VPN-Dienstes, die Netzarchitektur der Abteilung Informatik, inklusive ihrem Firewallkonzept vorgestellt.
|
||||
Anschließend werden alle Rahmenbedingungen und Anforderungen erfasst, die bei der Konzeption des neuen VPN-Dienst berücksichtigt werden sollen.
|
||||
Anhand der daraus abgeleiteten Bedingungen werden mögliche Software-Kandidaten vorgestellt und aus ihnen eine Auswahl getroffen.
|
||||
|
@ -27,6 +28,33 @@ 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.}
|
||||
Die Abteilung Informatik betreibt einen VPN-Dienst auf Basis von OpenVPN, über den Mitarbeiter und Studenten auf Netze der Abteilung Informatik aus dem Internet heraus zugreifen können.
|
||||
Das geht aber noch nicht über IPv6, sondern nur über IPv4.
|
||||
Deshalb soll ein neuer VPN-Dienst her, der mit aktuellem Stand der Technik (Jahr 2018) umgesetzt werden soll.
|
||||
|
||||
\paragraph{Was ist VPN, welchen Zweck hat es}
|
||||
\todo{Was ist ein VPN, was macht ein VPN aus? (Basistechnik kurz erklären)}
|
||||
Virtual
|
||||
Private
|
||||
Network
|
||||
|
||||
\paragraph{Ermittelte Anforderungen} \label{par:requirements}
|
||||
In diesem Abschnitt werden alle Anforderungen und Rahmenbedingungen vorgestellt, die bei der Konzeption des neuen VPN-Dienst berücksichtigt werden müssen.
|
||||
Es handelt sich hier um Vorgaben, die im persönlichen Gespräch mit dem Auftraggeber und Erstprüfer dieser Arbeit ermittelt wurden.
|
||||
|
||||
\begin{enumerate}[label=Anf\arabic*]
|
||||
\item \label{req:dualstack} \textbf{Dual-Stack-Betrieb:} Der VPN-Dienst soll aus dem Internet über IPv4 und IPv6 erreichbar sein und auch innerhalb des VPN diese beiden Protokolle anbieten.
|
||||
\item \label{req:routing} \textbf{VPN-interner Datenverkehr:} Nur die internen Netzbereiche der Abteilung Informatik sollen für Benutzer über das VPN erreichbar sein.
|
||||
Das betrifft alle Sicherheitszonen außer dem Internet.
|
||||
\item \label{req:traffic} \textbf{VPN-externer Datenverkehr:} Die Kommunikation zwischen VPN-Client und VPN-Server soll authentisiert und vertraulich stattfinden.
|
||||
\item \label{req:users} \textbf{Benutzer:} Der VPN-Dienst soll von autorisierten Mitarbeitern und Studenten aus der Abteilung Informatik benutzt werden können.
|
||||
Die Benutzer des VPN-Dienst sollen durch die Administratoren des VPN-Dienst einfach verwaltet werden können.
|
||||
\item \label{req:serveros} \textbf{Betrieb des VPN-Servers:} Die Serverkomponente des VPN-Dienst soll auf einer aktuellen Version von Debian (9 oder höher) betrieben werden.
|
||||
\item \label{req:clientos} \textbf{Betrieb der VPN-Clients:} Die VPN-Clientsoftware soll für aktuelle Versionen gängiger Betriebssysteme zur Verfügung stehen.
|
||||
Darunter fallen Microsoft Windows 10 (Version~1709 oder höher), Apple MAC OS (ab Version~10.13) und Linux-Distributionen (ab Kernel Version~3.10).
|
||||
\item \label{req:logging} \textbf{Betriebsprotokoll:} Während des Betrieb des VPN-Dienst sollen keine Daten protokolliert werden, die Rückschlüsse auf das Benutzerverhalten zulassen. Im Rahmen einer laufenden Fehlersuche soll es möglich sein, mehr Daten zu protokollieren.
|
||||
\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}
|
||||
|
||||
|
||||
\chapter{Netzarchitektur der Abteilung Informatik} \label{cpt:netarchitecture}
|
||||
|
@ -95,29 +123,21 @@ Labor-Netze & erlaubt & erlaubt & erlaubt & erlaubt & --- \\
|
|||
\end{table}
|
||||
|
||||
|
||||
\chapter{Konzeption des neuen VPN-Dienst} \label{cpt:concept_vpn_service}
|
||||
\todo{Wir schauen mal, was so gebraucht wird und wie es aussehen soll.}
|
||||
\chapter{Abgeleitetes Dienstkonzept} \label{cpt:service_concept}
|
||||
\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.}
|
||||
|
||||
Client-Server-Architektur, Benutzerauthentisierung muss durchgeführt werden.
|
||||
Nur bestimmte Netzbereiche der Abteilung Informatik werden durch das VPN geroutet
|
||||
Wir werden aus Layer~3 tunneln und dafür müssen wir den VPN-Clients VPN-interne IPv4- und IPv6-Adressen vergeben.
|
||||
|
||||
|
||||
\section{Anforderungsanalyse} \label{sct:requirements}
|
||||
In diesem Abschnitt werden alle Anforderungen und Rahmenbedingungen vorgestellt, die bei der Konzeption des neuen VPN-Dienst berücksichtigt werden müssen.
|
||||
Es handelt sich hier um Vorgaben, die im persönlichen Gespräch mit dem Auftraggeber und Erstprüfer dieser Arbeit ermittelt wurden.
|
||||
\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.
|
||||
|
||||
\begin{enumerate}[label=Anf\arabic*]
|
||||
\item \label{req:dualstack} \textbf{Dual-Stack-Betrieb:} Der VPN-Dienst soll aus dem Internet über IPv4 und IPv6 erreichbar sein und auch innerhalb des VPN diese beiden Protokolle anbieten.
|
||||
\item \label{req:routing} \textbf{VPN-interner Datenverkehr:} Nur die internen Netzbereiche der Abteilung Informatik sollen für Benutzer über das VPN erreichbar sein.
|
||||
Das betrifft alle Sicherheitszonen außer dem Internet.
|
||||
\item \label{req:traffic} \textbf{VPN-externer Datenverkehr:} Die Kommunikation zwischen VPN-Client und VPN-Server soll authentisiert und vertraulich stattfinden.
|
||||
\item \label{req:users} \textbf{Benutzer:} Der VPN-Dienst soll von autorisierten Mitarbeitern und Studenten aus der Abteilung Informatik benutzt werden können.
|
||||
Die Benutzer des VPN-Dienst sollen durch die Administratoren des VPN-Dienst einfach verwaltet werden können.
|
||||
\item \label{req:serveros} \textbf{Betrieb des VPN-Servers:} Die Serverkomponente des VPN-Dienst soll auf einer aktuellen Version von Debian (9 oder höher) betrieben werden.
|
||||
\item \label{req:clientos} \textbf{Betrieb der VPN-Clients:} Die VPN-Clientsoftware soll für aktuelle Versionen gängiger Betriebssysteme zur Verfügung stehen.
|
||||
Darunter fallen Microsoft Windows 10 (Version~1709 oder höher), Apple MAC OS (ab Version~10.13) und Linux-Distributionen (ab Kernel Version~3.10).
|
||||
\item \label{req:logging} \textbf{Betriebsprotokoll:} Während des Betrieb des VPN-Dienst sollen keine Daten protokolliert werden, die Rückschlüsse auf das Benutzerverhalten zulassen. Im Rahmen einer laufenden Fehlersuche soll es möglich sein, mehr Daten zu protokollieren.
|
||||
\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} aus Abschnitt~\ref{sct:requirements} 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{par: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}).
|
||||
|
||||
|
@ -130,16 +150,6 @@ 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.
|
||||
|
@ -342,7 +352,7 @@ Die verschiedenen Konfigurationsdateien werden in ihren eigenen Manpages detaill
|
|||
\paragraph{Zusammenfassung und Auswahl}
|
||||
In diesem Abschnitt wurden OpenVPN und Strongswan als Lösungen für die Umsetzung eines VPN gegenübergestellt.
|
||||
Dabei hat sich gezeigt, dass OpenVPN in den Kategorien Plattformabhängigkeit, Verfügbarkeit des Quellcode, Komplexität und Benutzerfreundlichkeit im Vergleich zu Strongswan besser abschneidet.
|
||||
Dadurch ist OpenVPN besser für die Umsetzung eines VPN-Dienst geeignet, der die in Abschnitt~\ref{sct:requirements} genannten Anforderungen erfüllt.
|
||||
Dadurch ist OpenVPN besser für die Umsetzung eines VPN-Dienst geeignet, der die in Abschnitt~\ref{par:requirements} genannten Anforderungen erfüllt.
|
||||
Somit wird OpenVPN als VPN-Software zur Umsetzung des VPN-Dienst gewählt.
|
||||
|
||||
|
||||
|
@ -351,8 +361,7 @@ Nachdem die VPN-Software für das Vorhaben dieser Arbeit ausgewählt wurde, wird
|
|||
Zielgruppe des Dienstes sind Beschäftigte und Studenten der Abteilung Informatik in der Größenordnung von etwa 50-500~Benutzern.
|
||||
Beschäftigte und Studenten sollen im zeitlichen Rahmen Ihrer Tätigkeiten in der Abteilung Informatik über das VPN Zugriff erhalten.
|
||||
|
||||
|
||||
\section{Methoden zur Benutzerauthentisierung} \label{sct:user_auth_methods}
|
||||
\paragraph{Methoden zur Benutzerauthentisierung} \label{par:user_auth_methods}
|
||||
OpenVPN ermöglicht die Authentisierung von Benutzern mit den folgenden Methoden:
|
||||
\begin{itemize}
|
||||
\item Authentisierung mit X.509-Public-Key-Zertifikaten
|
||||
|
@ -393,6 +402,7 @@ Sollte ein privater Schlüssel dennoch kompromittiert werden, besteht jederzeit
|
|||
Zusätzlich gilt, dass ein kompromittierter Schlüssel lediglich zur Benutzung des VPN-Dienst berechtigt.
|
||||
Dadurch reduziert sich der potentielle Schaden, den ein Angreifer mit einem kompromittierten Schlüssel anrichten könnte.
|
||||
|
||||
\paragraph{Wahl der Authentisierungsmethode}
|
||||
Insgesamt bringt die Authentisierung von Benutzern mit Zertifikaten im Vergleich zur Authentisierung auf Basis von Zugangsdaten einen höheren Arbeitsaufwand mit sich.
|
||||
Dafür besteht ein reduziertes Bedrohungsrisiko bei kompromittierten privaten Schlüsseln als im Vergleich zu kompromittierten Zugangsdaten, welche gegebenenfalls für weitere Dienste gültig sein können.
|
||||
Außerdem ist die Angriffsfläche beim Einsatz von Zertifikaten geringer, da kein zusätzlicher Code in das System integriert wird, durch das Zugangsdaten verarbeitet würden.
|
||||
|
@ -501,7 +511,7 @@ Um auch bei manueller Installation der CRL einen unterbrechungsfreien Betrieb de
|
|||
|
||||
\section{Betriebskonzept für die Zertifizierungsstelle} \label{sct:running_ca}
|
||||
Für den Betrieb der Zertifizierungsstelle wird in Absprache mit dem IT-Team eine virtuelle Maschine exklusiv für diesen Zweck erzeugt und im Mitarbeiter-Netz platziert.
|
||||
Unter Berücksichtigung der Anforderung \ref{req:serveros} aus Abschnitt~\ref{sct:requirements} wird Debian~9 nach den Vorgaben des IT-Teams auf der virtuellen Maschine installiert.
|
||||
Unter Berücksichtigung der Anforderung \ref{req:serveros} aus Abschnitt~\ref{par:requirements} wird Debian~9 nach den Vorgaben des IT-Teams auf der virtuellen Maschine installiert.
|
||||
Das EasyRSA-Paket wird unterhalb von \texttt{/root} ausgepackt und für den Einsatz als CA für den VPN-Dienst konfiguriert.
|
||||
|
||||
\paragraph{Berechtigungen}
|
||||
|
@ -531,11 +541,11 @@ Details zur Benutzung der CA sind in dem Dokument \enquote{Dokumentation der Zer
|
|||
|
||||
|
||||
\chapter{Konfiguration des VPN-Servers} \label{cpt:concept_vpn_server}
|
||||
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.
|
||||
In diesem Kapitel wird gezeigt, wie der Server für den VPN-Dienst installiert und konfiguriert wird. Wie in Abschnitt~\ref{par: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:}
|
||||
\section{Konzeption} \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.
|
||||
|
@ -589,7 +599,7 @@ Nach Einrichtung des Servers wird in diesem Schritt die Konfiguration des OpenVP
|
|||
Nähere Informationen zu den verwendeten Optionen können in \cite[][]{man:openvpn} nachgeschlagen werden.
|
||||
|
||||
\paragraph{Erreichbarkeit des Dienstes}
|
||||
Laut Anforderung~\ref{req:dualstack} aus Abschnitt~\ref{sct:requirements} soll der VPN-Dienst über IPv4 und IPv6 aus dem Internet erreichbar sein.
|
||||
Laut Anforderung~\ref{req:dualstack} aus Abschnitt~\ref{par:requirements} soll der VPN-Dienst über IPv4 und IPv6 aus dem Internet erreichbar sein.
|
||||
Als Ausgangspunkt dafür wird der DNS-Name des VPN-Dienst verwendet, der auf die IPv4- und IPv6-Dienst\-adresse zeigt.
|
||||
|
||||
In der \textbf{Serverkonfiguration} reichen die ersten drei Zeilen aus, um über IPv4 und IPv6 auf UDP-Port~1194 den VPN-Dienst anzubieten:
|
||||
|
@ -664,7 +674,7 @@ Zusätzlich wird in der \enquote{Best Current Practice} RFC~7525 zur Deaktivieru
|
|||
Auf der DEFCON~26 wurde mit \enquote{VORACLE} ein in diesem Kontext relevanter Angriff auf OpenVPN vorgestellt\footnote{\url{https://media.defcon.org/DEF\%20CON\%2026/DEF\%20CON\%2026\%20presentations/Nafeez/DEFCON-26-Nafeez-Compression-Oracle-attacks-on-VPN-Networks.pdf}}, der auf aktivierter Kompression aufbaut.
|
||||
|
||||
\paragraph{Zertifikatgestützte Authentisierung}
|
||||
Um die in Kapitel~\ref{cpt:user_concept} konzipierte Zertifizierungsstelle zur Benutzerauthentisierung zu verwenden und die VPN-Kommunikation nach Anforderung~\ref{req:traffic} aus Abschnitt~\ref{sct:requirements} abzusichern, wird OpenVPN im TLS-Modus betrieben.
|
||||
Um die in Kapitel~\ref{cpt:user_concept} konzipierte Zertifizierungsstelle zur Benutzerauthentisierung zu verwenden und die VPN-Kommunikation nach Anforderung~\ref{req:traffic} aus Abschnitt~\ref{par:requirements} abzusichern, wird OpenVPN im TLS-Modus betrieben.
|
||||
|
||||
In der \textbf{Clientkonfiguration} wird dafür der Parameter \texttt{tls-client} gesetzt, in der \textbf{Serverkonfiguration} wird analog dazu der Parameter \texttt{tls-server} verwendet.
|
||||
|
||||
|
|
Loading…
Reference in New Issue