Administration Android BSD IT Linux Software Windows

OpenVPN mit Android 4 und höher

Googles mobiles Betriebssystem Android bringt in der Version 4 und höher (Ice Cream Sandwich, Jelly Beans, etc. pp.) endlich nicht nur im Stock Kernel ein ‘tun’ Modul mit, sondern auch für Apps die Möglichkeit, ein VPN aufzubauen. Waren in früheren Versionen noch gewaltige Querelen nötig, um um die schwachbrüstige IPSEC Implementierung ein funktionierendes VPN Setup herumzubauen, kann man nun getrost was Vernünftiges verwenden, was nicht nur zuverlässiger funktioniert, sondern auch noch deutlich einfacher einzurichten ist und dabei keinen Streß mit NAT und co. macht. Die Rede ist von OpenVPN, welches ich schon seit Jahren für VPN einsetze – derzeit auf meinem pfsense als Server. pfsense erwähne ich nur, weil ich es momentan sehr zufrieden verwende, das ist für das Gelingen einer OpenVPN Verbindung mit dem Mobilgerät aber keinesfalls ein Muss, ein nacktes Linux, *BSD oder gar Windows mit dem OpenVPN Server erfüllt seinen Zweck genauso gut.

Ich gehe in diesem Artikel davon aus, dass das serverseitige Setup bereits läuft und konfiguriert ist und – je nach Sicherheitsbedürfnis – ein Clientzertifikat und/oder Benutzer/Passwort eingerichtet wurde. Anderenfalls, ist das OpenVPN 2.0 Howto wärmstens zu empfehlen.

Ich benutze OpenVPN for Android von Arne Schwabe als Client auf dem Androiden, da dieses eine brauchbare GUI aufweist (und damit meine ich auch die Möglichkeit, sich zur Fehlerdiagnose, den reinen Log anschauen zu können) und auf unmodifizierten Geräten (nicht einmal root-Zugriff wird benötigt!) funktioniert.

OpenVPN kann sowohl Config und Zertifikate in einzelnen Dateien, als auch ein Configfile mit den Zertifikaten inline eingebettet verwende. Für welchen Weg man sich entscheidet ist dabei egal und bleibt der eigenen Präferenz überlassen – ‘OpenVPN for Android’ kann beides verwenden.

Zuerst müssen alle benötigten Dateien auf das Telefon gebracht werden. Dabei ist es egal, wie das passiert. Man kann die Zertifikate via Herausnehmbarer SD-Karte, über USB-Verbindung zum PC, Bluetooth usw. auf das Gerät kopieren.

Um sich nerviges Klicken und Tippen am Gerät zu ersparen, kann man neben Zertifikaten auch die Config Datei für den Client mit auf das Gerät kopieren, dieses kann dann importiert werden. Dazu benutzt man in der “VPN Liste” das Ordner-Icon. Dabei werden referenzierte Zertifikatsdateien (Achtung: Relative Pfade verwenden!) als auch Eingebettete erkannt und übernommen. Unbekannte Direktiven werden auch ausgewertet und unter Advanced -> Eigene Optionen eingetragen. pfsense hat die Optionen passtos und resolv-retry infinite exportiert, die nicht verstanden werden. Diese kann man dort wieder löschen, oder man deaktiviert “Eigene Optionen” via Checkbox darüber, sonst schlägt der erste Verbindungsversuch fehl.

Selbstverständlich kann man alle Optionen, die in der Config stehen, auch selbst über die GUI setzen und die Zertifikatsdateien im Dateisystem auswählen.

Ist alles eingestellt, kann die Verbindung durch “Antippen” des Eintrags in der VPN-Liste gestartet werden. Man bekommt den Log gezeigt, an dessen Ende nun bald “Initialization Sequence Completed” stehen sollte, anderenfalls hat man hier einen Anhaltspunkt darauf, was schief gelaufen sein könnte. Ist die Verbindung hergestellt, wird dies mit einem Schlüsselsymbol in der Statuszeile des Telefons angezeigt, im Benachrichtigungsbereich kann man sich dann auch Infos zur Verbindung ansehen und diese trennen.

Zuletzt noch der Hinweis, dass man sowohl in der Clientconfig auf dem Android, als via serverseitiger Push-Option einstellen kann, ob der gesamte Traffic durch den VPN-Tunnel geleitet werden soll (default gateway). Der gepushte DNS Server wird per default auch verwendet, was praktisch ist, wenn man Hostnamen überschreiben oder eigene, lokale TLDs zur internen Namensauflösung verwenden möchte.

Autor

Seit Kindheitstagen ist der Computer sein Begleiter. Was mit Linux anfing, wurde 2005 ein/e Beruf/ung, die weit über den Arbeitsplatz hinausgeht. Durch stetige Weiterentwicklung fasste er auch im *BSD Segment Fuß und bietet mittlerweile professionelle Lösungen im Bereich Hosting, Networking und Infrastruktur an. Als Ausgleich beschäftigt er sich neben Computerspielen mit der Fotografie.

9 Kommentare Neuen Kommentar hinzufügen

  1. ferox1183 sagt:

    Ich bekomme die Verbindung einfach nicht hin. Habe ein Tablet und die cert. Dateien vom Server sowie user cert + Key nun muss ich ja bei der Konfiguration Benutzer und Kennwort eingeben. Habe ich leider nicht. Vom server Admin habe ich nur die Besagten Dateien. Unter windows muss ich die ja nur die Config bearbeiten und den Dateipfad angeben. Das reicht für eine Verbindung. Ein Benutzername oder Passwort wird da nicht abgefragt.

    Wie stelle ich das an?

  2. Hy sagt:

    Ich habe jetzt seit 2 Tagen mit der Verbindung zu kämpfen, ich bekomme immer die Meldung TLS Handshake failed.
    Ich bin mir aber auch nicht sicher was bei Android unter Benutzer und Passwort drinstehen muss.
    Alle files sind eingebettet, habe es auch schon mit einer P12 versucht, aber immer derselbe Fehler.

    Gruß
    Marco

    1. TLS Handshake failed deutet auf ein HMAC Authentifizierungsproblem hin. Check mal die Einstellungen zu ta.key und Schlüsselrichtung bzw. tls-client. Muss auf dem Client passend zu den Server Einstellungen eingerichtet werden

      1. Marco sagt:

        Hy,
        ich habe nun mal TLS abgeschalten. Bekomme die Verbindung hin, kann mich auch mit meinem LAN verbinden. Aber bei eingeschaltetem Tunnel geht kein Internet mehr. bzw wenn ich im LAN mir ein Bild anzeigen lassen will, dann läd es eeeewig. Woran kann das liegen. So ist das ganze unbrauchbar

        Gruß Marco

        1. Dann leitest Du mit redirect Gateway Deinen ganzen Verkehr über den OpenVPN Server und dieser wird dort entweder von der firewall blockiert oder es gibt keine Regel um den Verkehr mithilfe von NAT wieder ins Internet zurückzuleiten.
          Eine Verbindung ohne TLS HMAC Autentifizierung ist genauso sicher verschlüsselt wie mit, aber der Server wird so anfälliger gegenüber DoS Angriffen gegen den ovpn Dienst – ich wurde es allenfalls kurzfristig zum Testen so betreiben

  3. Marco sagt:

    Hallo,
    kann mir jemand sagen wie ich ein Nutzerzertifikat erstellen kann? Ich benötige eine Datei um an meiner HS dieseses Zertifikat erstellen kann. Wie mache ich das?
    Gruß Marco

  4. Daniel sagt:

    Hallo,
    hat irgendwer ein ordentliches OpenVPN Howto für pfsense 2.0.1 (serverseitig), damit ich diese Anleitung auf meinem Androiden fortführen kann ?
    Ich blick durch die verschiedenen allgemeinen Howtos für den OpenVPN Server nicht mehr durch.

    Besten Dank
    Daniel

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.