I just saw a mouse in the garden.

This commit is contained in:
Jan Philipp Timme 2018-08-07 17:20:14 +02:00
parent cf52738824
commit c1be3123a7

View File

@ -294,27 +294,26 @@ Darunter fallen Microsoft Windows 10 (Version 1709 oder höher), Apple MAC OS (a
Anhand der Anforderungen~\ref{req:dualstack} bis \ref{req:finance} 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 Betriebsystemen lauffähig sein (\ref{req:clientos}), sofern ein Betriebsystem keine kompatible VPN-Clientkomponente bereits enthält.
Die Clientkomponenten der gesuchten Software müssen unter den aktuellen Betriebsystemen lauffähig sein (\ref{req:clientos}).
Die Vorgabe von vertraulicher und authentisierter Kommunikation zwischen VPN-Client und VPN-Server (\ref{req:traffic}) impliziert, dass die gesuchte Software Algorithmen zum Verschlüsseln und Signieren von Daten verwendet.
Deshalb soll Kerckhoffs' Prinzip bei der Wahl der VPN-Software angewendet werden:
\begin{itemize}
\item Die Serverkomponente der VPN-Software soll quelloffen sein.
\item Die Clientkomponente der VPN-Software soll für die in \ref{req:clientos} genannten Clientbetriebsysteme quelloffen zur Verfügung stehen.
Stellt ein Clientbetriebsystem bereits eine kompatible Clientkomponente zur Verfügung, so soll der Benutzer die Möglichkeit haben, bei Bedarf auf eine quelloffene Alternative zurückzugreifen.
\end{itemize}
Deshalb soll Kerckhoffs' Prinzip bei der Wahl der VPN-Software angewendet werden, indem ausschließlich quelloffene Software berücksichtigt wird.
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{Suche nach VPN-Serversoftware}
Ausgangspunkt für die Suche nach passender VPN-Software ist die 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.
Durch die Nutzung der Debian-Paketquellen ist das Einspielen von Sicherheitsaktualisierungen über den Debian-Paketmanager möglich.
Dieser Vorgang kann bei Bedarf automatisiert werden, wodurch der Wartungsaufwand für den Server weiter reduziert wird.
Im Folgenden werden durch den Autor ausgewählte Software vorgestellt.
Durch die Nutzung der Debian-Paketquellen ist das Installieren von Sicherheitsaktualisierungen über den Debian-Paketmanager möglich.
Zusätzliche Schritte wie das Patchen und Kompilieren des Quellcodes, sowie das Paketieren der Software werden von den Verwaltern der Debian-Pakete bereits ausgeführt.
Um den Wartungsaufwand des VPN-Servers zu reduzieren, kann die Installation von Updates durch den Debian-Paketmanager automatisiert werden.
\paragraph{strongswan}
Strongswan\footnote{Siehe auch \url{https://wiki.strongswan.org/projects/strongswan/wiki/IntroductionTostrongSwan}, zuletzt abgerufen am 18.07.2018} soll die bereits im Linux-Kernel enthaltenen IPsec\cite{RFC4301}-Funktionalitäten ergänzen.
Im Folgenden werden mögliche Software-Kandidaten aus den Debian-Paketquellen vorgestellt.
\paragraph{Strongswan}
Strongswan\footnote{Siehe auch \url{https://wiki.strongswan.org/projects/strongswan/wiki/IntroductionTostrongSwan}, zuletzt abgerufen am 18.07.2018} ermöglicht die Einrichtung von VPNs auf Basis des IPsec-Standards.
Strongswan implementiert das Internet Key Exchange Protokoll in Version 2 (IKEv2), und kann im Linux-Kernel enthaltene IPsec\cite{RFC4301}-Funktionalitäten konfigurieren.
IPsec IKEv2
\begin{itemize}
@ -329,7 +328,7 @@ Strongswan\footnote{Siehe auch \url{https://wiki.strongswan.org/projects/strongs
\paragraph{OpenVPN}
\begin{itemize}
\item Eigenständiges Programm, Client-Server-Architektur
\item Strebt an viele der Schlüsselfeatures von IPSec anzubieten, aber dabei leichtgewichtiger zu sein
\item Strebt an viele der Schlüsselfeatures von IPsec anzubieten, aber dabei leichtgewichtiger zu sein
\item Lizenz ist GPLv2
\item Verwenden TUN/TAP-Schnittstelle zur Bereitstellung einer virtuellen Netzwerkkarte (Treiber für Linux, Windows, Mac und mehr verfügbar)
\item Unterstützt Kompression des Datenverkehrs
@ -337,8 +336,9 @@ Strongswan\footnote{Siehe auch \url{https://wiki.strongswan.org/projects/strongs
\item Unterstützt neben AES auch Camellia und SEED\footnote{\texttt{openvpn --show-ciphers} (run on Debian 9)}
\end{itemize}
%%%%%%%%%%%%%%%%%%%%%
Pro IPSec:
Pro IPsec:
\begin{itemize}
\item Standard und daher in vielen Betriebsystemen schon enthalten
\item Sehr vielseitig und flexibel konfigurierbar
@ -351,13 +351,14 @@ Pro OpenVPN:
\item Für alle Komponenten ist der Quelltext verfügbar
\item Einheitliches Sicherheitsniveau über alle Plattformen (Selber Cipher für alle, homogen) (Kann OpenVPN Cipher serverseitig erzwingen?)
\item Benutzerfreundlichkeit für alle Plattformen auf dem selben Niveau / wenige Besonderheiten
\item Die Policy von IPSec ist sehr restriktiv, dadurch erschwertes Lösen von Problemen
\item Einige Provider verhindern/erschweren IPSec/IKEv2 durch CGNAT
\item Funktionsumfang von OpenVPN ist geringer und dadurch übersichtlicher
\item IPSec-Konfiguration kann ggf. zu unsicheren Betriebssituationen führen (Wahl der Cipher zu schwach etc)
\item Die Policy von IPsec ist sehr restriktiv, dadurch erschwertes Lösen von Problemen
\item Einige Provider verhindern/erschweren IPsec/IKEv2 durch CGNAT/NAT
\item Fehlersuche leichter?\item Funktionsumfang von OpenVPN ist geringer und dadurch übersichtlicher
\item IPsec-Konfiguration kann ggf. zu unsicheren Betriebssituationen führen (Wahl der Cipher zu schwach etc)
\end{itemize}
Der Tunnel-Overhead der beiden Protokolle ist sehr ähnlich.
%%%%%%%%%%%%%%%%%%%%%
\paragraph{TODO}
TODO