Skip to content

Android: VPN automatisch in fremden WLANs aufbauen

Android

Als ich vor fast drei Jahren endlich VDSL bekam, war fast meine erste Handlung, auf meinem Raspberry Pi einen OpenVPN-Server zu installieren. Wobei, installiert hatte ich ihn schon vorher, mit der schnellen Leitung konnte ich ihn nun aber wie geplant nutzencool

Der Sinn des VPN war und ist für mich weniger, auf meine Geräte zu Hause zuzugreifen, sondern in fremden WLANs eine sichere Verbindung ins Internet zu haben.
Mein Smartphone/Tablet/Laptop baut das VPN nach Hause auf und der ganze Internetverkehr geht nun aber meine heimische VDSL-Leitung. Im fremden WLAN kann niemand mehr mithören. Denn WLAN ist eine offene Verbindung, unverschlüsselten Datenverkehr könnte jeder, der im gleichen WLAN ist, mithören. Und auch mit SSL (https) gesicherte Verbindungen werden in kommerziellen “freien” Netzen oftmals am Hotspot aufgebrochen. Da könnte der Anbieter also alle Verbindungen mitlesen. Auch zum Onlineshop oder Onlinebanking. “Machen die ja nicht” ist mir da kein Argument, wenn sie es nicht können wollen würden, müssten sie die SSL-Verbindung nicht aufbrechen. Und selbst wenn es einfach eine Standardfunktion des Zugangs-Routers ist, kann dieser selbst kompromittiert werden. SSL-Interception ist ein absolutes No-Go, daher nutze ich auch weder das WLAN von real, noch vom UCI Kino.

Mit VPN ist das aber kein Problem, alles geht einfach gekapselt erst zu Hause ins Internet. In fremden WLANs baue ich daher immer das VPN auf. OpenVPN könnte auch automatisch das VPN aufbauen, aber leider nur grundsätzlich bei jeder WLAN Verbindung. Auch, wenn ich zu Haus bin und das hat gar keinen Sinn. Also brauchte ich eine Lösung, um das VPN automatisch, aber nicht zu Hause (oder anderen vertrauenswürdigen Netzen). Und das erledige ich nun mit Tasker:


Tasker ist ein mächtiges Werkzeug, dementsprechend ist es auch etwas komplexer, als nur einen bunten Knopf zu drücken. Die regeln, die ich hier verwende, sind aber simpel und kratzen nur an der Oberfläche von dem, was Tasker kann.

Benötigt wird — neben dem VPN-Server — auf dem Gerät wie erwähnt Tasker sowie das OpenVPN Tasker Plugin und für das VPN verwende ich OpenVPN für Android. von Arne Schwabe. Von Tasker gibt es auf der Webseite eine 7 Tage Testversion zum download.

In Tasker richten wir in dem Reiter “Profile” ein neues Profil ein über den + Knopf unten rechts. Wir benötigen eines vom Typ “Status”, dann “Netzwerk” und schließlich “WiFi Verbunden”. Eine weitere Konfiguration ist nicht notwendig, über den Pfeil oben links einfach wieder zurück gehen. Das war unsere Bedingung, bei der etwas erledigt werden soll.Tasker Profiltypen
Es öffnet sich selbstständig eine Schaltfläche “Neuer Task”, diese tippen wir an. Der Name ist optional, ich habe keinen Vergeben. Wir befinden uns nun im Editor für die Aufgaben. Über das + unten rechts fügen wir nun eine Aufgabe hinzu. Hier wählen wir die Kategorie “Plugin” und dann das “OpenVpn Tasker Plugin”. Über das Stiftsymbol bei “Konfiguration” wird das VPN-Profil ausgewählt, das gestartet werden soll. Darunter habe ich bei “Timeout” 20 Sekunden Wartezeit eingerichtet, da manche WLANs etwas Zeit benötigen bis man wirklich ins Internet kommt. Bei dem Wert muss man etwas experimentieren, auch eine Minute kann sinnvoll sein oder nur 5 Sekunden. Über den Pfeil oben links kommt man wieder zum Aufgabeneditor und da wir keine weitere Aufgabe benötigen können wir auch hier wieder mit dem Pfeil zurück gehen.Tasker Aktion VPN Verbinden

Nun wird das VPN aufgebaut, sobald man mit einem WLAN verbunden ist. Was noch fehlt, sind die Ausnahmen. Die fügen wir hinzu, indem wir lange auf die “WiFi Verbunden” tippen und in dem folgenden Menü dann auf  “Hinzufügen”. Damit wird eine weitere Bedingung angelegt. Hier wählen wir wieder “Status”, “Netzwerk” und “WiFi Verbunden”. Dieses mal tragen wir bei SSID aber die Netzwerke ein, bei denen kein VPN aufgebaut werden soll. Ist man gerade in Reichweite, kann man es über die Lupe direkt auswählen. Mehrere Netzwerke werden durch einen Schrägstrich getrennt, also z.B. “Heimnetzwerk/Meine Firma/Bester Kumpel”. Ganz wichtig: unten den Haken setzen bei “Umkehren”, damit greift die Regel also nur, wenn die eingetragenenen SSIDnicht verbunden sind. Über den Pfeil oben links geht es wieder zurück.
Insgesamt müssen nun beide Bedingungen zutreffen, damit die Aktion ausgelöst wird: 1. es muss ein WLAN verbunden sein und 2. es darf nicht so heissen, wie in der zweiten Bedingung definiert. Damit sind wir fast fertig.

Nun wird das VPN zwar automatisch aufgebaut, aber es bleibt aktiv, bis es wieder abgebaut wird. Wenn ich über Mobilfunkverbunden bin will ich das aber nicht. Also fügen wir noch eine Aktion hinzu, die das VPN wieder deaktiviert wenn wir das WLAN verlassen.
Dafür tippen wir lange auf die Aktion “OpenVPN Connect” (oder wie auch immer du sie genannt hast) und wählen “Ausgang Task Zufügen”. Nun wieder “Neuer Task”, der Name ist wieder optional, und wir sind wieder im Aktionseditor. Wieder mit + eine neue Aufgabe hinzufügen, “Plugin” und “OpenVpn Tasker Plugin” auswählen. Bei der Konfiguration wählen wir dieses mal “Disconnect VPN”. Bestätigen und über die Pfeile oben links wieder zurück zur Übersicht. Es sollte nun so aussehen:

Tasker Regel

Nun wird das VPN in allen WLANs außer den von mir definierten aufgebaut, genau so, wie ich es haben wollte.
Zusätzlich habe ich eine weitere Regel angelegt, die in den von mir definierten Ausnahmen ein evtl. aufgebautes VPN explizit deaktiviert. Wenn ich es z.B. im Mobilfunk manuell aufgebaut habe wird es ja nicht automatisch deaktiviert und es hat keinen Sinn, dass ich mich zu Hause per VPN nach Hause verbinde wink. Oder ich will/muss in bestimmten WLAN Netzen auf lokale Rechenr zugreifen, dann darf das VPN auch nicht aufgebaut sein.
Also auf der “Profile” Seite ein neues Profil eingerichtet, wieder “WiFi Verbunden” und dort die Ausnahme-WLANs unter SSID eingetragen. Hier nun den Haken bei “Umkehren” natürlich nicht setzen. Als Aktion wieder “Disconnect VPN” auswählen und fertig ist auch diese Regel.
Den Regeln kann man auch noch sprechende Namen geben, ganz nach persönlichem Geschmack.

Viele Worte, aber ich hoffe, es war so verständlich. Und glaub mir, Tasker kann noch viiiiiiiel mehr und wird dann in der Konfiguration beinahe beliebig komplex und unübersichtlich cheeky

Trackbacks

Keine Trackbacks

Kommentare

Ansicht der Kommentare: Linear | Verschachtelt

Michael am :

Michael

Prima Anleitung, so etwas hatte ich schon mit Automgic versucht. Leider vergeblich.
Man muss bei OpenVPN übrigens beachten, dass es recht deutlich am Akku saugt. Also schon aus dem Grund nur dann einschalten, wenn es wirklich nötig ist.

Michael

rowi am :

Auf Twitter lesen: rowi
rowi

Verschlüsselung kostet natürlich etwas Rechenleistung und damit auch Strom. Für die Zeiträume, die ich in unsicheren WLANs unterwegs bin, ist das aber noch kein entscheidender Faktor.
Wenn man den ganzen Tag in einem nicht vertrauenswürdigen Netz mit aktivem VPN ist, sieht das natürlich anders aus.
Als ich es gestern mal ausprobiert habe war der Akku zwar leerer, aber gefühlt nur im Bereich von einer halben Stunde Screen-On Zeit.
Wobei eine Stichprobe natürlich nicht viel aussagt, ob und wie man es nutzt/nutzen kann ist sehr individuell.

rowi schrieb auch: Android/iOS: mit Nextcloud (und Raspberry Pi) etwas Unabhängigkeit von Google und Apple

jdkinf am :

jdkinf

Prima Sache, danke für die ausführliche Anleitung. Werde ich am WE gleich mal hinbasteln.

Kommentar schreiben

Textile-Formatierung erlaubt
:'(  :-)  :-|  :-O  :-(  8-)  :-D  :-P  ;-) 
Standard-Text Smilies wie :-) und ;-) werden zu Bildern konvertiert.
Umschließende Sterne heben ein Wort hervor (*wort*), per _wort_ kann ein Wort unterstrichen werden.
Die angegebene E-Mail-Adresse wird nicht dargestellt, sondern nur für eventuelle Benachrichtigungen verwendet.
Twitter, Identica, Pavatar, Gravatar, Wavatars, Monster ID Autoren-Bilder werden unterstützt.
Wenn Du Deinen Twitter Namen eingibst wird Deine Timeline in Deinem Kommentar verlinkt.
Bewirb einen Deiner letzten Artikel
Dieses Blog erlaubt Dir mit Deinem Kommentar einen Deiner letzten Artikel zu bewerben. Bitte gib Deine Blog URL als Homepage ein, dann wird eine Auswahl erscheinen, in der Du einen Artikel auswählen kannst. (Javascript erforderlich)
Formular-Optionen