Spellchecking a bit
This commit is contained in:
parent
9375ff048f
commit
a2374700a1
|
@ -101,7 +101,7 @@ Das betrifft alle Sicherheitszonen außer dem Internet.
|
||||||
\item \label{req:users} \textbf{Benutzer:} Der VPN-Dienst soll von autorisierten Mitarbeitern und Studenten aus der Abteilung Informatik benutzt werden können.
|
\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.
|
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: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 Betriebsysteme zur Verfügung stehen.
|
\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).
|
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: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.
|
\item \label{req:finance} \textbf{Finanzieller Rahmen:} Es stehen keine finanziellen Mittel für den Erwerb einer VPN-Lösung zur Verfügung.
|
||||||
|
@ -109,7 +109,7 @@ 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}).
|
Die Clientkomponenten der gesuchten Software müssen unter den aktuellen Betriebssystemen lauffähig sein (\ref{req:clientos}).
|
||||||
|
|
||||||
Die Vorgabe von vertraulicher und authentisierter Kommunikation zwischen VPN-Client und VPN-Server (\ref{req:traffic}) impliziert, dass in der gesuchten Software Algorithmen zum Verschlüsseln und Signieren von Daten verwendet werden.
|
Die Vorgabe von vertraulicher und authentisierter Kommunikation zwischen VPN-Client und VPN-Server (\ref{req:traffic}) impliziert, dass in der gesuchten Software Algorithmen zum Verschlüsseln und Signieren von Daten verwendet werden.
|
||||||
Deshalb soll Kerckhoffs' Prinzip bei der Wahl der VPN-Software angewendet werden, indem ausschließlich
|
Deshalb soll Kerckhoffs' Prinzip bei der Wahl der VPN-Software angewendet werden, indem ausschließlich
|
||||||
|
@ -125,7 +125,7 @@ Weiterhin soll die gesuchte Software IPv4 und IPv6 unterstützen (\ref{req:duals
|
||||||
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.
|
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.
|
Deshalb sind die Debian-Paketquellen die erste Anlaufstelle für die Suche.
|
||||||
Durch die Nutzung der Paketquellen ist das Installieren von Sicherheitsaktualisierungen über den Debian-Paketmanager möglich.
|
Durch die Nutzung der Paketquellen ist das Installieren von Sicherheitsaktualisierungen über den Debian-Paketmanager möglich.
|
||||||
Arbeitsschritte wie das Patchen und Kompilieren des Quellcodes, sowie Tests und das Paketieren der Software werden von den Verwaltern der Debian-Pakete ausgeführt.
|
Arbeitsschritte wie das Anpassen und Kompilieren des Quellcodes, sowie Tests und das Paketieren der Software werden von den Verwaltern der Debian-Pakete ausgeführt.
|
||||||
Die Authentizität der Pakete wird anhand von GPG-Signaturen durch den Paketmanager vor der Installation überprüft\cite[][Kapitel 6.5]{book:debian}.
|
Die Authentizität der Pakete wird anhand von GPG-Signaturen durch den Paketmanager vor der Installation überprüft\cite[][Kapitel 6.5]{book:debian}.
|
||||||
|
|
||||||
Um den Wartungsaufwand des VPN-Servers zu reduzieren, kann die Installation von Updates durch den Debian-Paketmanager automatisiert werden\cite[][Kapitel 6.7 und 6.8]{book:debian}.
|
Um den Wartungsaufwand des VPN-Servers zu reduzieren, kann die Installation von Updates durch den Debian-Paketmanager automatisiert werden\cite[][Kapitel 6.7 und 6.8]{book:debian}.
|
||||||
|
@ -135,8 +135,8 @@ Im Folgenden werden mögliche Software-Kandidaten aus den Debian-Paketquellen vo
|
||||||
|
|
||||||
|
|
||||||
\subsection{Strongswan} \label{ssct:strongswan}
|
\subsection{Strongswan} \label{ssct:strongswan}
|
||||||
Strongswan\footnote{\url{https://wiki.strongswan.org/projects/strongswan/wiki/IntroductionTostrongSwan},\\zuletzt abgerufen am 18.07.2018} ist eine quelloffene, modular aufgebaute Software, die unter den in \ref{req:serveros} und \ref{req:clientos} genannten Betriebsystemen lauffähig ist.
|
Strongswan\footnote{\url{https://wiki.strongswan.org/projects/strongswan/wiki/IntroductionTostrongSwan},\\zuletzt abgerufen am 18.07.2018} ist eine quelloffene, modular aufgebaute Software, die unter den in \ref{req:serveros} und \ref{req:clientos} genannten Betriebssystemen lauffähig ist.
|
||||||
Sie kann verwendet werden, um in Kombination mit IPsec-fähigen Betriebsystem-Kerneln geschützte Verbindungen zwischen zwei oder mehr Computern einzurichten.
|
Sie kann verwendet werden, um in Kombination mit IPsec-fähigen Betriebssystem-Kerneln geschützte Verbindungen zwischen zwei oder mehr Computern einzurichten.
|
||||||
Strongswan wird unter der Lizenz GPLv2 verbreitet\footnote{\url{https://wiki.strongswan.org/projects/strongswan/wiki/Contributions},\\ zuletzt abgerufen am 04.09.2018}.
|
Strongswan wird unter der Lizenz GPLv2 verbreitet\footnote{\url{https://wiki.strongswan.org/projects/strongswan/wiki/Contributions},\\ zuletzt abgerufen am 04.09.2018}.
|
||||||
|
|
||||||
IPsec ist ein Internetstandard, der kryptografische Sicherheit für IPv4 und IPv6 (sowie darüber übertragenen Daten) bieten soll.
|
IPsec ist ein Internetstandard, der kryptografische Sicherheit für IPv4 und IPv6 (sowie darüber übertragenen Daten) bieten soll.
|
||||||
|
@ -156,22 +156,22 @@ Das Protokoll \enquote{IP Encapsulating Security Payload} (ESP) ist in \cite[][]
|
||||||
Aktuell empfohlene Algorithmen zum Berechnen der Prüfsumme oder zum Verschlüsseln der Paketinhalte sind in \cite[][]{RFC8221} aufgeführt.
|
Aktuell empfohlene Algorithmen zum Berechnen der Prüfsumme oder zum Verschlüsseln der Paketinhalte sind in \cite[][]{RFC8221} aufgeführt.
|
||||||
|
|
||||||
IPsec definiert zwei Betriebsvarianten: Den Transportmodus und den Tunnelmodus.
|
IPsec definiert zwei Betriebsvarianten: Den Transportmodus und den Tunnelmodus.
|
||||||
Im Transportmodus werden die Inhalte von IP-Paketen in AH- bzw. ESP-Pakete gekapselt.
|
Im Transportmodus werden die Inhalte von IP-Paketen in AH- beziehungsweise ESP-Pakete gekapselt.
|
||||||
Da die Sender- und Empfängeradressen der IP-Pakete hierbei nicht verändert wird, kann dieser Modus nur für direkte Ende-zu-Ende-Kommunikation verwendet werden.
|
Da die Sender- und Empfängeradressen der IP-Pakete hierbei nicht verändert wird, kann dieser Modus nur für direkte Ende-zu-Ende-Kommunikation verwendet werden.
|
||||||
|
|
||||||
Im Tunnelmodus werden die IP-Paketen selbst in AH- bzw. ESP-Pakete gekapselt.
|
Im Tunnelmodus werden die IP-Paketen selbst in AH- beziehungsweise ESP-Pakete gekapselt.
|
||||||
Im Anschluss werden die AH- bzw. ESP-Pakete dann in neue IP-Pakete gekapselt, deren Sender- und Empfängeradressen sich von denen des inneren IP-Paketes unterscheiden dürfen.
|
Im Anschluss werden die AH- beziehungsweise ESP-Pakete dann in neue IP-Pakete gekapselt, deren Sender- und Empfängeradressen sich von denen des inneren IP-Paketes unterscheiden dürfen.
|
||||||
Somit ist der Tunnelmodus im Prinzip für die Umsetzung eines VPN geeignet.
|
Somit ist der Tunnelmodus im Prinzip für die Umsetzung eines VPN geeignet.
|
||||||
|
|
||||||
Strongswan implementiert das Protokoll IKEv2\footnote{Internet Key Exchange Protokoll Version 2, definiert in \cite[][]{RFC7296}} und kann darüber authentisiert und verschlüsselt mit Gegenstellen kommunizieren.
|
Strongswan implementiert das Protokoll IKEv2\footnote{Internet Key Exchange Protokoll Version 2, definiert in \cite[][]{RFC7296}} und kann darüber authentisiert und verschlüsselt mit Gegenstellen kommunizieren.
|
||||||
Dabei werden mit der Gegenstelle Schlüssel- und Konfigurationsparameter ausgehandelt beziehungsweise ausgetauscht, anhand derer Strongswan IPsec-Verbindungen im Kernel des Host-Betriebsystems konfigurieren kann.
|
Dabei werden mit der Gegenstelle Schlüssel- und Konfigurationsparameter ausgehandelt beziehungsweise ausgetauscht, anhand derer Strongswan IPsec-Verbindungen im Kernel des Host-Betriebssystems konfigurieren kann.
|
||||||
Die Verarbeitung des durch IPsec geschützten Da\-ten\-ver\-kehrs über die Protokolle AH oder ESP wird jedoch direkt im IPsec-Stack des Kernels abgewickelt.
|
Die Verarbeitung des durch IPsec geschützten Da\-ten\-ver\-kehrs über die Protokolle AH oder ESP wird jedoch direkt im IPsec-Stack des Kernels abgewickelt.
|
||||||
Für lokal ausgeführte Programme ist der Einsatz von IPsec transparent.
|
Für lokal ausgeführte Programme ist der Einsatz von IPsec transparent.
|
||||||
|
|
||||||
|
|
||||||
\subsection{OpenVPN} \label{ssct:openvpn}
|
\subsection{OpenVPN} \label{ssct:openvpn}
|
||||||
OpenVPN ist eine quelloffene Software zur Einrichtung von VPNs in Peer-to-Peer oder Client-Server-Architektur\cite[][Abschnitt \enquote{Server Mode}]{man:openvpn}.
|
OpenVPN ist eine quelloffene Software zur Einrichtung von VPNs in Peer-to-Peer oder Client-Server-Architektur\cite[][Abschnitt \enquote{Server Mode}]{man:openvpn}.
|
||||||
Sie ist unter den in \ref{req:serveros} und \ref{req:clientos} genannten Betriebsystemen lauffähig und wird unter der GPLv2-Lizenz verbreitet.
|
Sie ist unter den in \ref{req:serveros} und \ref{req:clientos} genannten Betriebssystemen lauffähig und wird unter der GPLv2-Lizenz verbreitet.
|
||||||
OpenVPN läuft vollständig im Benutzerkontext und unterstützt nach dem Programmstart den Wechsel in einen nicht-privilegierten Benutzerkontext\cite[Siehe][\texttt{--user}]{man:openvpn}.
|
OpenVPN läuft vollständig im Benutzerkontext und unterstützt nach dem Programmstart den Wechsel in einen nicht-privilegierten Benutzerkontext\cite[Siehe][\texttt{--user}]{man:openvpn}.
|
||||||
Für die Bereitstellung einer virtuellen Netzwerkkarte als Schnittstelle zum VPN wird ein TUN/TAP-Treiber verwendet.
|
Für die Bereitstellung einer virtuellen Netzwerkkarte als Schnittstelle zum VPN wird ein TUN/TAP-Treiber verwendet.
|
||||||
Kryptografische Operationen werden nur in OpenVPN durchgeführt, welches diese zu großen Teilen an die quelloffene Bibliothek openssl auslagert\cite[][Abschnitt \enquote{Introduction}]{man:openvpn}.
|
Kryptografische Operationen werden nur in OpenVPN durchgeführt, welches diese zu großen Teilen an die quelloffene Bibliothek openssl auslagert\cite[][Abschnitt \enquote{Introduction}]{man:openvpn}.
|
||||||
|
@ -190,19 +190,19 @@ IPsec:
|
||||||
Konfiguration der IPsec-Verbindungen findet im Kernel statt, es ist ein zusätzliches IKEv2-Dienstprogramm notwendig, um die Konfigurationsparameter auszuhandeln und Schlüssel auszutauschen.
|
Konfiguration der IPsec-Verbindungen findet im Kernel statt, es ist ein zusätzliches IKEv2-Dienstprogramm notwendig, um die Konfigurationsparameter auszuhandeln und Schlüssel auszutauschen.
|
||||||
Die im Kernel konfigurierten Verbindungen sind immer unidirektional, d.h. für den Schutz von Datenverkehr zwischen zwei Rechnern sind auf beiden Rechnern jeweils zwei konfigurierte Verbindungen notwendig.
|
Die im Kernel konfigurierten Verbindungen sind immer unidirektional, d.h. für den Schutz von Datenverkehr zwischen zwei Rechnern sind auf beiden Rechnern jeweils zwei konfigurierte Verbindungen notwendig.
|
||||||
|
|
||||||
Bei ggf. entdeckten Sicherheitslücken ergeben sich je nach Betriebsystemkernel unterschiedliche Reaktionszeiten.
|
Bei gegebenenfalls. entdeckten Sicherheitslücken ergeben sich je nach Betriebssystemkernel unterschiedliche Reaktionszeiten.
|
||||||
Je nach Betriebsystem werden im Kernel ggf. nicht alle laut RFC empfohlenen Chiffren gleichermaßen angeboten, dadurch kann ein einheitliches Sicherheitsniveau nur schwer gewährleistet werden.
|
Je nach Betriebssystem werden im Kernel gegebenenfalls. nicht alle laut RFC empfohlenen Chiffren gleichermaßen angeboten, dadurch kann ein einheitliches Sicherheitsniveau nur schwer gewährleistet werden.
|
||||||
Strongswan ist zwar grundsätzlich auf allen in \ref{req:clientos} aufgeführten Betriebsystemen lauffähig, jedoch endet die Benutzerfreundlichkeit voraussichtlich dann, wenn man Strongswan unter Windows erst einmal kompilieren muss.
|
Strongswan ist zwar grundsätzlich auf allen in \ref{req:clientos} aufgeführten Betriebssystemen lauffähig, jedoch endet die Benutzerfreundlichkeit voraussichtlich dann, wenn man Strongswan unter Windows erst einmal kompilieren muss.
|
||||||
Verlässt man sich auf der Clientseite auf das ggf. bereits im Betriebsystem enthaltene IKEv2-Dienstprogramm, so wird die Bedienung über alle Betriebsysteme unterschiedlich sein.
|
Verlässt man sich auf der Clientseite auf das gegebenenfalls. bereits im Betriebssystem enthaltene IKEv2-Dienstprogramm, so wird die Bedienung über alle Betriebssysteme unterschiedlich sein.
|
||||||
Auch darunter leidet die Benutzerfreundlichkeit.
|
Auch darunter leidet die Benutzerfreundlichkeit.
|
||||||
Durch die insgesamt hohe Komplexität des IPsec-Standards ist eine Fehlersuche im Betrieb nicht unbedingt trivial.
|
Durch die insgesamt hohe Komplexität des IPsec-Standards ist eine Fehlersuche im Betrieb nicht unbedingt trivial.
|
||||||
Hinzu kommt, dass durch den hohen Funktionsumfang und die Flexibilität von IPsec Konfigurationen möglich sind, die zwar funktionieren, aber nicht das gewünschte Sicherheitsniveau herstellen.
|
Hinzu kommt, dass durch den hohen Funktionsumfang und die Flexibilität von IPsec Konfigurationen möglich sind, die zwar funktionieren, aber nicht das gewünschte Sicherheitsniveau herstellen.
|
||||||
|
|
||||||
OpenVPN hat nur einen Kommunikationskanal (udp/1194), während für IPsec IKEv2 (udp/500 bzw udp/4500) und die Protokolle AH bzw ESP freigegeben werden müssen.
|
OpenVPN hat nur einen Kommunikationskanäle (udp/1194), während für IPsec IKEv2 (udp/500 beziehungsweise udp/4500) und die Protokolle AH beziehungsweise ESP freigegeben werden müssen.
|
||||||
|
|
||||||
|
|
||||||
Sowohl Strongswan als auch OpenVPN sind vollständig quelloffen.
|
Sowohl Strongswan als auch OpenVPN sind vollständig quelloffen.
|
||||||
Da jedoch der Datenverkehr bei IPsec durch den Betriebsystemkernel verarbeitet wird, und dessen Quellcode bei Betriebsystemen von Microsoft oder Apple nicht zur Verfügung steht, scheidet Strongswan als Kandidat aus.
|
Da jedoch der Datenverkehr bei IPsec durch den Betriebssystemkernel verarbeitet wird, und dessen Quellcode bei Betriebssystemen von Microsoft oder Apple nicht zur Verfügung steht, scheidet Strongswan als Kandidat aus.
|
||||||
|
|
||||||
|
|
||||||
\section{Konzipierung der Benutzerverwaltung}
|
\section{Konzipierung der Benutzerverwaltung}
|
||||||
|
@ -224,8 +224,8 @@ Zertifikate:
|
||||||
* Erfolgreich gestohlenes Zertifikat kann nur für VPN-Dienst genutzt werden
|
* Erfolgreich gestohlenes Zertifikat kann nur für VPN-Dienst genutzt werden
|
||||||
|
|
||||||
Benutzer/Passwort:
|
Benutzer/Passwort:
|
||||||
* Bequemlichkeit: Kann über existierende Infrastruktur abgewickelt werden (Hochschulaccount)
|
* Bequemlichkeit: Kann über existierende Infrastruktur abgewickelt werden (Hochschulkonto)
|
||||||
* Einrichung von Benutzern kann quasi vollautomatisch oder durch eine Whitelist geschehen
|
* Einrichtung von Benutzern kann quasi vollautomatisch oder durch eine Whitelist geschehen
|
||||||
* Benutzerkonten werden automatisch deaktiviert
|
* Benutzerkonten werden automatisch deaktiviert
|
||||||
* Nur Benutzername+Passwort reichen aus, gestohlene Zugangsdaten bedeuten großes Schadenspotential für betroffene Benutzer
|
* Nur Benutzername+Passwort reichen aus, gestohlene Zugangsdaten bedeuten großes Schadenspotential für betroffene Benutzer
|
||||||
* Zugangsdaten müssen zur Authentisierung an entsprechende Dienste "durchgereicht" werden, daher größere Angriffsfläche
|
* Zugangsdaten müssen zur Authentisierung an entsprechende Dienste "durchgereicht" werden, daher größere Angriffsfläche
|
||||||
|
@ -246,7 +246,7 @@ Die von Debian 9 mitgelieferte Version 2.3.x ist schon etwas älter, könnte abe
|
||||||
Allerdings gibt es auch eine modernere Neuentwicklung in Version 3.0.4(Stand 12.09.2018, siehe github.com/openvpn/easyrsa), die langfristig vom OpenVPN-Team weiterentwickelt wird und einige Verbesserungen im Vergleich zur alten v2 mitbringt.
|
Allerdings gibt es auch eine modernere Neuentwicklung in Version 3.0.4(Stand 12.09.2018, siehe github.com/openvpn/easyrsa), die langfristig vom OpenVPN-Team weiterentwickelt wird und einige Verbesserungen im Vergleich zur alten v2 mitbringt.
|
||||||
|
|
||||||
Kurz: EasyRSA2.2.3 aus Debian vs EasyRSA3.x direkt von Github vs irgendwie selbst Skripte schreiben (Wieso das Rad neu erfinden?) - Vorteile/Nachteile
|
Kurz: EasyRSA2.2.3 aus Debian vs EasyRSA3.x direkt von Github vs irgendwie selbst Skripte schreiben (Wieso das Rad neu erfinden?) - Vorteile/Nachteile
|
||||||
Ggf. kurz ein Blick darauf, was alles für Features benötigt werden.
|
Gegebenenfalls. kurz ein Blick darauf, was alles für Features benötigt werden.
|
||||||
EasyRSAv3 ist eine Neuentwicklung von EasyRSA2.
|
EasyRSAv3 ist eine Neuentwicklung von EasyRSA2.
|
||||||
Die neue Version wird vom OpenVPN-Team weiter entwickelt werden.
|
Die neue Version wird vom OpenVPN-Team weiter entwickelt werden.
|
||||||
Vereinfachte Benutzung der zur Verfügung gestellten Shellskripte
|
Vereinfachte Benutzung der zur Verfügung gestellten Shellskripte
|
||||||
|
|
Loading…
Reference in New Issue