diff --git a/COMMON-Hyphenation.tex b/COMMON-Hyphenation.tex index e7b7c27..60d85c7 100644 --- a/COMMON-Hyphenation.tex +++ b/COMMON-Hyphenation.tex @@ -1,2 +1,2 @@ -\hyphenation{OpenVPN EasyRSA MacOS FreeBSD Strong-swan Adres-sen Ver-fü-gung be-rück-sich-tigt Prüf-sum-me Da-ten-ver-kehrs Schlüs-sel-aus-tausch Zer-ti-fi-ka-ten Schlüs-sel-paa-ren Schlüs-sel-län-ge Ab-tei-lung Grund-sätz-lich Dienst-adres-se Gül-tig-keits-prü-fung DH-Pa-ra-me-ter Client-kon-fi-gu-ra-tion} +\hyphenation{OpenVPN EasyRSA MacOS FreeBSD Strong-swan Adres-sen Ver-fü-gung be-rück-sich-tigt Prüf-sum-me Da-ten-ver-kehrs Schlüs-sel-aus-tausch Zer-ti-fi-ka-ten Schlüs-sel-paa-ren Schlüs-sel-län-ge Ab-tei-lung Grund-sätz-lich Dienst-adres-se Gül-tig-keits-prü-fung DH-Pa-ra-me-ter Client-kon-fi-gu-ra-tion Client-kom-po-nen-te} diff --git a/MA-Inhalt.tex b/MA-Inhalt.tex index 9b72532..5aceb6d 100644 --- a/MA-Inhalt.tex +++ b/MA-Inhalt.tex @@ -22,7 +22,7 @@ Der genaue Arbeitsauftrag dahinter wird in Kapitel~\ref{cpt:the_task} erläutert Dort werden alle Anforderungen und Rahmenbedingungen erfasst, die bei der Konzeption des neuen VPN-Dienst berücksichtigt werden müssen. Im Anschluss wird die zukünftige Umgebung des VPN-Dienstes in Kapitel~\ref{cpt:netarchitecture} vorgestellt: Die Netzarchitektur der Abteilung Informatik inklusive Firewallkonzept. Auf Basis der daraus gewonnenen Informationen werden dann in Kapitel~\ref{cpt:service_concept} Konzepte für den VPN-Dienst und dessen Benutzerverwaltung abgeleitet. -Anhand der Konzepte wird in Kapitel~\ref{cpt:choosing_vpn_software} dann nach Software zur Realisierung des VPN-Dienstes gesucht, mögliche VPN-Software präsentiert und die Auswahl begründet. +Anhand der Konzepte wird in Kapitel~\ref{cpt:choosing_software} dann nach Software zur Realisierung des VPN-Dienstes gesucht, mögliche VPN-Software präsentiert und die Auswahl begründet. Anhand der ausgewählten Software wird das in Kapitel~\ref{cpt:service_concept} vorgestellte VPN-Konzept in Kapitel~\ref{cpt:openvpn_concept} auf die gewählte VPN-Software zugeschnitten. Im Anschluss wird in Kapitel~\ref{cpt:implement_vpn_server} der VPN-Dienst installiert und konfiguriert. In Kapitel~\ref{cpt:implement_ca} wird die Benutzerverwaltung umgesetzt. @@ -317,7 +317,7 @@ VPN-Serverkomponente aktualisiert selbst, oder über einen Cronjob, über HTTP i Die aktuelle CRL wird über den Webserver auf dem PKI-Server bereitgestellt und durch die PKI (beziehungsweise einen Cronjob) automatisiert aktualisiert. -\chapter{Auswahl der VPN-Software} \label{cpt:choosing_vpn_software} +\chapter{Softwareauswahl} \label{cpt:choosing_software} Das Umfeld, in dem der VPN-Dienst errichtet werden soll, wurde in Kapitel~\ref{cpt:netarchitecture} 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. @@ -538,6 +538,32 @@ Dadurch ist OpenVPN besser für die Umsetzung eines VPN-Dienst geeignet, der die Somit wird OpenVPN als VPN-Software zur Umsetzung des VPN-Dienst gewählt. +\section{Zertifizierungsstelle mit EasyRSA} \label{sct:choice_easyrsa} +OpenVPN benötigt zur Laufzeit die Bibliothek OpenSSL. +OpenSSL stellt seine Funktionen auch als Kommandozeilenwerkzeug zur Verfügung, mit denen alle Basisfunktionen einer Zertifizierungsstelle wie zum Beispiel die Erzeugung von Schlüsselpaaren und Zertifikatsanträgen, sowie das Ausstellen von Zertifikaten auf Basis von Zertifikatsanträgen möglich ist. +Man kann mit OpenSSL eine \textit{Zertifizierungsstelle} (CA) 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. + +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. +Das enthält die Erzeugung eines Wurzelzertifikats, das Erzeugen von Zertifikatsanträgen, das Ausstellen von Client- oder Serverzertifikaten auf Basis von Zertifikatsanträgen und das Erzeugen einer \textit{Certificate Revocation List}(CRL). +Dabei ist es durch Anpassen von Konfigurationsdateien möglich, eine CA ganz nach den eigenen Bedürfnissen zu betreiben und Einfluss auf Parameter wie zum Beispiel Schlüssellängen, Laufzeiten von Zertifikaten oder verwendete kryptografische Algorithmen zu nehmen. + +Aufgrund der Vorteile von EasyRSA in Bezug auf einfachere Konfiguration und erleichterte Bedienung für CA-Betreiber und Benutzer im Vergleich zur manuellen Umsetzung einer CA, soll EasyRSA für den Aufbau der Zertifizierungsstelle verwendet werden. +Diese Entscheidung wird untermauert von der Tatsache, dass sowohl EasyRSA als auch OpenVPN von den selben Entwicklern weiterentwickelt wird, sodass Kompatibilität zwischen den beiden Softwareprojekten zu erwarten ist. +Die Notwendigkeit zum selbstständigen Entwickeln von Skripten zum Erreichen eines ähnlichen Funktionsumfangs ergibt sich somit nicht. + +Das über Debian~9 beziehbare Paket enthält EasyRSA in Version~2.3.x. +Die heute (01.10.2018) über GitHub\footnote{\url{https://github.com/OpenVPN/easy-rsa/releases/tag/v3.0.5}} beziehbare Version von EasyRSA trägt die Nummer 3.0.5. +EasyRSA wurde in Version~3 von Grund auf neu geschrieben und verfügt über ein im Vergleich zu EasyRSA Version~2 vereinfachtem Benutzerinterface, welches nun von einem einzigen Kommandozeilenbefehl zur Verfügung gestellt wird. +Zusätzlich hinzugekommen sind neue Features wie etwa die Unterstützung des \textit{Elliptische-Kurven-Kryptosystems} (EKK), Unterstützung von UTF-8 oder die Verwendung von AES256 zum Verschlüsseln von privaten Schlüsseln\footnote{Vergleich \url{https://github.com/OpenVPN/easy-rsa/blob/v3.0.5/ChangeLog}}. + +Die Installation von EasyRSA wird durch das Kopieren sämtlicher Dateien von ~EasyRSA in ein neues Verzeichnis durchgeführt. +Eine auf diese Weise eingerichtete CA kann aus diesem Grund nicht durch den Debian-Paketmanager mit Updates versorgt werden. +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. + + \chapter{Installationsplan für OpenVPN} \label{cpt:openvpn_concept} \todo{Hier kommt die Umsetzung des Konzepts als Beschreibung rein, damit die Konfiguration nur noch die Details erläutert, aber nicht begründen muss. Begründungen kommen hier hin.} @@ -833,32 +859,7 @@ Die resultierenden Konfigurationdateien befinden sich im Anhang dieser Arbeit. \chapter{Implementieren der Benutzerverwaltung} \label{cpt:implement_ca} -OpenVPN benötigt zur Laufzeit die Bibliothek OpenSSL. -OpenSSL stellt seine Funktionen auch als Kommandozeilenwerkzeug zur Verfügung, mit denen alle Basisfunktionen einer Zertifizierungsstelle wie zum Beispiel die Erzeugung von Schlüsselpaaren und Zertifikatsanträgen, sowie das Ausstellen von Zertifikaten auf Basis von Zertifikatsanträgen möglich ist. -Man kann mit OpenSSL eine \textit{Zertifizierungsstelle} (CA) 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. - - -\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. -Das enthält die Erzeugung eines Wurzelzertifikats, das Erzeugen von Zertifikatsanträgen, das Ausstellen von Client- oder Serverzertifikaten auf Basis von Zertifikatsanträgen und das Erzeugen einer \textit{Certificate Revocation List}(CRL). -Dabei ist es durch Anpassen von Konfigurationsdateien möglich, eine CA ganz nach den eigenen Bedürfnissen zu betreiben und Einfluss auf Parameter wie zum Beispiel Schlüssellängen, Laufzeiten von Zertifikaten oder verwendete kryptografische Algorithmen zu nehmen. - -Aufgrund der Vorteile von EasyRSA in Bezug auf einfachere Konfiguration und erleichterte Bedienung für CA-Betreiber und Benutzer im Vergleich zur manuellen Umsetzung einer CA, soll EasyRSA für den Aufbau der Zertifizierungsstelle verwendet werden. -Diese Entscheidung wird untermauert von der Tatsache, dass sowohl EasyRSA als auch OpenVPN von den selben Entwicklern weiterentwickelt wird, sodass Kompatibilität zwischen den beiden Softwareprojekten zu erwarten ist. -Die Notwendigkeit zum selbstständigen Entwickeln von Skripten zum Erreichen eines ähnlichen Funktionsumfangs ergibt sich somit nicht. - -Das über Debian~9 beziehbare Paket enthält EasyRSA in Version~2.3.x. -Die heute (01.10.2018) über GitHub\footnote{\url{https://github.com/OpenVPN/easy-rsa/releases/tag/v3.0.5}} beziehbare Version von EasyRSA trägt die Nummer 3.0.5. -EasyRSA wurde in Version~3 von Grund auf neu geschrieben und verfügt über ein im Vergleich zu EasyRSA Version~2 vereinfachtem Benutzerinterface, welches nun von einem einzigen Kommandozeilenbefehl zur Verfügung gestellt wird. -Zusätzlich hinzugekommen sind neue Features wie etwa die Unterstützung des \textit{Elliptische-Kurven-Kryptosystems} (EKK), Unterstützung von UTF-8 oder die Verwendung von AES256 zum Verschlüsseln von privaten Schlüsseln\footnote{Vergleich \url{https://github.com/OpenVPN/easy-rsa/blob/v3.0.5/ChangeLog}}. - -Die Installation von EasyRSA wird durch das Kopieren sämtlicher Dateien von ~EasyRSA in ein neues Verzeichnis durchgeführt. -Eine auf diese Weise eingerichtete CA kann aus diesem Grund nicht durch den Debian-Paketmanager mit Updates versorgt werden. -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. - +\todo{Intro. OpenVPN und EasyRSA wurden schon gewählt, jetzt wird konkret konfiguriert.} \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.