Selbst gehostetes Open Source GPS Tracking für viele GPS Tracker, sowie Android und IOS (KMJ.at Gastbeitrag)

Ein KMJ.at Gastbeitrag

Professionelles GPS Tracking für Privat und Business ohne Lizenzkosten und ohne Daten an Dritte zu senden!

Nachdem mein Android Tablet nun mit LineageOS von Bloatware und Software der Datensilo-Betreiber befreit ist (https://kmj.at/2018-09-12-android-lineageos-samsung-sm-t585-privacy/) blieb als offener Punkt einen Ersatz für Owntracks zu finden. Leider ist die Android Version von Owntracks mit einer Abhängigkeit von der Google Play Library versehen und damit am Tablet nicht mehr funktionsfähig. Die Frage, diese Library zu installieren stellte sich, nach dem Aufwand zur Erreichung von mehr Privatsphäre natürlich nicht.

Nach längerer Suche blieb ich bei der Traccar GPS Tracking Lösung hängen.

Die Punkte die sich gut gelesen haben:

  • Open Souce, inkl. Der Clients für IOS und Android
  • Server ist in Java geschrieben und läuft damit unter FreeBSD und Linux
  • Vollständiges Berechtigungssystem, damit auch für Firmen verwendbar
  • Client für extrem viele GPS Tracker
  • Client für Android und IOS
  • Datenbank MySQL unterstützt

Damit sollte eine vollständige, auf eigenen Systemen installierte, Open Source Lösung installierbar sein, ohne Daten an Dritte zu senden.

Die Server Installation

Aktuell läuft eine, die in meinem IoT Buch (https://www.amazon.com/dp/B01N21U0AA) beschriebene MQTT Lösung, welche die Positionen mit Owntracks Recorder sammelt und anzeigt. Zusätzlich ist es möglich, im auch dahinter liegenden Home Assistant, Events für Aktionen auszulösen. Home Assistant ist eine selbst gehostete, intelligente Open Source Home Automation Plattform, mit der es möglich ist, ohne Daten an Dritte zu senden, das Zuhause dementsprechend zu steuern.

Die beiden MQTT Server werden für andere IoT Datenübertragungen weiter laufen, der Owntracks Recorder wird aber abgeschaltet. Zusätzlich muss eine andere Einbindung der Tracker in den Home Assistant erfolgen.

Als Betriebssystem für den Server habe ich mich, wie in den meisten Fällen im Serverbereich, für FreeBSD entschieden. FreeBSD hat seit den 90ern, beginnend bei FreeBSD 2.11 meine Präferenz. Aktuell befinden wir uns bei der Version 11.2. Alternativ, insbesondere in Fällen, wo Sonderlösungen notwendig sind, wird auf Debian Linux gesetzt.

Das Projekt bietet im Dokumentationsbereich auch eine Anleitung für FreeBSD an:

Der Server wird auf der ProxMox Virtualisierungsplattform, welche meine frühere Installation abgelöst hat, eingerichtet. Die Installation des FreeBSD LAMP Servers ist nicht Inhalt dieses Blog Eintrages. Bei mir läuft FreeBSD 11.2 mit einer IP Adresse und MySQL auf einer Standard Installation, welche die CTS GMBH (https://cts-solutions.at) in gleicher Form seit vielen Jahren für Kunden installiert.

Die Installation des Servers wird nach Anleitung durchgeführt und verläuft komplett unproblematisch. Die Freigabe nach außen erfolgt über einen Reversed-Proxy. Anleitungen für die Proxy Settings für Anfänger finden sich in der Dokumentation. Für die jeweiligen Tracker gibt es eigene Ports. Der Server selbst bindet auf das Port 8082 und man sollte den Daemon auf die IP 127.0.0.1 beschränken. Damit ist der Dienst von außen nur über den Proxy erreichbar.

Tip beim rc.d Script auf das root Directory achten!

Tip in der traccar.xml das Binding mit

127.0.0.1

auf den Localhost stellen. Damit ist das Port 8082 nur am Host selbst und via Reversed Proxy erreichbar. Die Tracker-Ports sind weiterhin auf allen Interfaces erreichbar. Ich habe diese aber in der Firewall disabled und es werden nur die jeweils benötigten Ports erlaubt.

Tip Die mobilen Clients connecten per Default zum Port 5055.

Tip Im rc.d Script

stop_cmd=“kill cat ${pidfile}

einfügen.

Links zum Apache Setup:

https://www.traccar.org/secure-connection/

Nachdem wir auch ein SSL Zertifikat am Reversed-Proxy Server installiert haben, können wir das erste Login durchführen. Verwenden Sie nie einen Zugriff ohne https-Verschlüsselung. Etwas unschön ist, dass einige Scripts von Cloudflare nachgeladen werden und damit ein Tracking durch Cloudflare erlauben. Ein Patch für lokales Laden der Scripts muss unbedingt her.

Das Default Login ist admin/admin.

Sofort stellen wir in den Server Einstellungen die Karte auf OpenStreetMaps und disablen die Registrierung.

Danach ändern wir über Benutzerkonto sofort das admin Passwort und tragen eine E-Mail Adresse ein. Eine neuerliche Anmeldung erfolgt nun mit der E-Mail Adresse und dem neuen Passwort.

Nun wird es Zeit den ersten Benutzer anzulegen. Testweise lege ich einen Benutzer an, welcher dann selbst weitere User und Geräte einrichten kann. Eine Art Sub-Manager für z.B. eine Abteilung.

Wie in der Dokumentation beschrieben, wird man mit einem User Limit -1 (ohne Begrenzung), bzw. einem Limit größer 0, zum Manager. Andernfalls ist mal ein normaler Benutzer.

Um ein erstes Gerät aktiv zu haben installieren wir auf dem LineageOS Tablet (https://kmj.at/2018-09-12-android-lineageos-samsung-sm-t585-privacy/) den Traccar Client aus dem F-Droid Store und stellen die Server URL auf den eingerichteten Hostnamen und das Port 5055. Alle anderen Einstellungen bleiben gleich und dann aktivieren wir den Dienst über den Schieberegler.

Tip Am LineageOS oder anderen sicheren Installationen das Öffnen des Ports 5055 in der Firewall nicht vergessen.

Als Problem hat sich das Android/LineageOS Tablet erwiesen, welches im ersten Schritt keine Updates sendet. Ein Test mit einer Installation unter IOS mit einem Iphone funktionierte sofort.

Nach dem Login mit dem ersten Manager User fügen wir die Geräte hinzu. Die Device ID dafür sieht man im Client. Andernfalls im Log File nach „unknown device“ suchen. Die Anzeige erfolgt einwandfrei und wenn man im eigenen Benutzerkonto seine GPS Koordinaten und den Zoom Faktor 10 einstellt, kann man sich das Zoomen immer einsparen. Mit den Geofences kann man verschiedene Bereiche einrichten und auch Events auslösen.

Bevor wir uns dem Problem mit dem Android/LineageOS Tablet kümmern, richten wir die Notifications noch ein. Dazu verwenden wir die Einträge aus der Dokumentation im Punkt Notifications und passen alle Parameter für unseren Server an. Damit ist ein globaler Parameter für die Benachrichtigung gesetzt und wir können eine Testbenachrichtigung senden.

Dazu gehen wir einfach über das Menü auf das Benutzerkonto und klicken in der unteren Leiste auf das E-Mail Symbol. Danach sollte im Posteingang das Mail erscheinen. Andernfalls muss das Traccar Log, bzw. das Log des SMTP Servers geprüft werden.

Tip traccar.xml Mustereinträge für den Versand über localhost:

<entry key='mail.smtp.host'>127.0.0.1</entry>
<entry key='mail.smtp.port'>25</entry>
<entry key='mail.smtp.ssl.enable'>false</entry>
<entry key='mail.smtp.from'>noreply@traccar.yourdomain.tld</entry>
<entry key='mail.smtp.auth'>false</entry>

Der Test funktionierte problemlos und wir können einen Schritt weiter gehen.

Am Android Tablet wurde einerseits die AFWAll+ Firewall für Traccar geöffnet und eine Ausnahme in der Batterieoptimierung eingerichtet. Andernfalls würde der Client das Update beenden, wenn Android der Meinung ist, es wird zu viel Strom verbraucht.

Leider löst das unser Übertragungsproblem noch nicht und nach einer Unterhaltung mit dem Entwickler über Github bleibt aktuell offen, warum der Client den Standort nicht übermittelt.

Als Apps bietet sich der Traccar Manager noch an. Links zu den aktuellen Versionen finden sich auf der Traccar.org Webseite im Downloadbereich.

Nach ein paar weiteren Tests funktioniert der Android Client nun auch sauber. Die GPS Status App ist eine große Hilfe und das Problem war eher Gerätespezifisch.

Nun kommt das System in den Testbetrieb und man wird sehen, ob die Owntracks Lösung damit ablösbar ist. Insbesondere die Einbindung in den Home Assistant wird spannend.

Fortsetzung folgt

Schreibe einen Kommentar

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