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
1 changed files with 20 additions and 19 deletions

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. 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. 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. 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: Deshalb soll Kerckhoffs' Prinzip bei der Wahl der VPN-Software angewendet werden, indem ausschließlich quelloffene Software berücksichtigt wird.
\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}
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. 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} \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. 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. 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. Durch die Nutzung der Debian-Paketquellen ist das Installieren 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. 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.
Im Folgenden werden durch den Autor ausgewählte Software vorgestellt. Um den Wartungsaufwand des VPN-Servers zu reduzieren, kann die Installation von Updates durch den Debian-Paketmanager automatisiert werden.
\paragraph{strongswan} Im Folgenden werden mögliche Software-Kandidaten aus den Debian-Paketquellen vorgestellt.
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.
\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} \begin{itemize}
@ -329,7 +328,7 @@ Strongswan\footnote{Siehe auch \url{https://wiki.strongswan.org/projects/strongs
\paragraph{OpenVPN} \paragraph{OpenVPN}
\begin{itemize} \begin{itemize}
\item Eigenständiges Programm, Client-Server-Architektur \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 Lizenz ist GPLv2
\item Verwenden TUN/TAP-Schnittstelle zur Bereitstellung einer virtuellen Netzwerkkarte (Treiber für Linux, Windows, Mac und mehr verfügbar) \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 \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)} \item Unterstützt neben AES auch Camellia und SEED\footnote{\texttt{openvpn --show-ciphers} (run on Debian 9)}
\end{itemize} \end{itemize}
%%%%%%%%%%%%%%%%%%%%%
Pro IPSec: Pro IPsec:
\begin{itemize} \begin{itemize}
\item Standard und daher in vielen Betriebsystemen schon enthalten \item Standard und daher in vielen Betriebsystemen schon enthalten
\item Sehr vielseitig und flexibel konfigurierbar \item Sehr vielseitig und flexibel konfigurierbar
@ -351,13 +351,14 @@ Pro OpenVPN:
\item Für alle Komponenten ist der Quelltext verfügbar \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 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 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 Die Policy von IPsec ist sehr restriktiv, dadurch erschwertes Lösen von Problemen
\item Einige Provider verhindern/erschweren IPSec/IKEv2 durch CGNAT \item Einige Provider verhindern/erschweren IPsec/IKEv2 durch CGNAT/NAT
\item Funktionsumfang von OpenVPN ist geringer und dadurch übersichtlicher \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) \item IPsec-Konfiguration kann ggf. zu unsicheren Betriebssituationen führen (Wahl der Cipher zu schwach etc)
\end{itemize} \end{itemize}
Der Tunnel-Overhead der beiden Protokolle ist sehr ähnlich. Der Tunnel-Overhead der beiden Protokolle ist sehr ähnlich.
%%%%%%%%%%%%%%%%%%%%%
\paragraph{TODO} \paragraph{TODO}
TODO TODO