diff --git a/MA-Inhalt.tex b/MA-Inhalt.tex index 2479e98..19886c8 100644 --- a/MA-Inhalt.tex +++ b/MA-Inhalt.tex @@ -515,12 +515,12 @@ Jeglicher weiterer Datenverkehr aus dem VPN-Netz heraus ist gestattet. \section{Konfiguration von OpenVPN} -Nach der Einrichtung des Servers wird in diesem Schritt die Konfiguration des OpenVPN-Servers im Detail erläutert. +Nach Einrichtung des Servers wird in diesem Schritt die Konfiguration des OpenVPN-Servers im Detail erläutert. 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. -Als Ausgangspunkt dafür wird der DNS-Name des VPN-Dienst verwendet, der auf die IPv4- und IPv6-Dienstadresse zeigt. +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: \begin{lstlisting} @@ -529,7 +529,7 @@ proto udp proto udp6 multihome \end{lstlisting} -OpenVPN beantwortet damit Anfragen für alle auf dem Server konfigurierten IP-Adressen. +OpenVPN beantwortet damit Anfragen für alle auf dem Server konfigurierten IP-Adres\-sen. Da auf dem Server neben den Dienstadressen auch die Maschinenadressen existieren, wird OpenVPN mit \texttt{multihome} angewiesen, eingehende Pakete mit der IP-Adresse zu beantworten, an die diese Pakete gerichtet waren. In der \textbf{Clientkonfiguration} wird OpenVPN mit \texttt{nobind} angewiesen, den Clientsocket nicht an eine lokale Adresse zu binden. Die Angaben \texttt{port} und \texttt{proto} legen fest, wie der VPN-Server zu erreichen ist. @@ -547,7 +547,7 @@ Bei Interesse kann eine detaillierte Analyse der Probleme der TCP-in-TCP-Situati \paragraph{IP-Adressen im VPN-Tunnel} Die vom IT-Team vergebenen IP-Adressbereiche für VPN-Clients werden durch den OpenVPN-Server an die Clients vergeben. -In der Clientkonfiguration sind keine Anweisungen notwendig. +In der Konfiguration des Clients sind keine Anweisungen notwendig. Die \textbf{Serverkonfiguration} enthält diese Anweisungen: \begin{lstlisting} topology subnet @@ -590,7 +590,7 @@ Am 03.06.2018 wurden Hinweise in der Manpage von OpenVPN eingefügt\footnote{\ur Diese Hinweise sind in der Manpage von OpenVPN in Version~2.4.6 noch nicht enthalten, da diese Version von den Entwicklern bereits am 19.04.2018\footnote{\url{https://github.com/OpenVPN/openvpn/releases/tag/v2.4.6}} freigegeben wurde. Zusätzlich wird in der \enquote{Best Current Practice} RFC~7525 zur Deaktivierung der Kompression von TLS geraten\cite[Vergleich][Kapitel 3.3]{RFC7525}. -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 die Verwendung von Kompression ausnutzt. +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. @@ -634,7 +634,8 @@ Diese Chiffre wird für die Absicherung des Kontrollkanals verwendet. \begin{lstlisting} tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384 \end{lstlisting} -Die Verwendung einer verwandten Chiffre, die anstelle des Diffie-Hellman-Schlüssel\-aus\-tausch ein Diffie-Hellman-Verfahren auf Basis von elliptischen Kurven verwendet, kann aufgrund von bestehenden Kompatibilitätsproblemen zwischen OpenVPN-Clients und OpenSSL~1.1.x nicht eingesetzt werden\footnote{Es existiert ein Problem in Kombination mit OpenSSL~1.1.x. Siehe \url{https://community.openvpn.net/openvpn/ticket/963}}. +\textbf{Anmerkung}: TLS-Chiffren mit Diffie-Hellman-Verfahren auf Basis von elliptischen Kurven können nicht verwendet werden. +Grund dafür sind Kompatibilitätsproblemen zwischen OpenVPN und OpenSSL~1.1.x auf der Clientseite\footnote{Siehe \url{https://community.openvpn.net/openvpn/ticket/963}}. OpenVPN verwendet eine HMAC-Funktion mit einem zuvor ausgetauschen, gemeinsamen Geheimnis um für Daten- und Kontrollkanal eingehende Datenpakete vor ihrer Verarbeitung zu authentisieren. Die in der HMAC-Funktion verwendete Hashfunktion wird auf SHA-256 festgelegt.