Am Android Tablet oder Telefon mit LineageOS für Privatsphäre sorgen. (Teil 4)

LineageOS, ein alternatives Android Betriebssystem für Tablet und Telefon!

LineageOS ist ein Betriebssystem für Smartphones und Tabletcomputer. Es ist eine Modifizierung des von Google entwickelten freien Betriebssystems Android und der Nachfolger des eingestellten Custom-ROMs CyanogenMod. LineageOS ist Freie Software und wird von einer Gemeinschaft Freiwilliger entwickelt, die das Betriebssystem gratis zum Herunterladen bereitstellen. Mehr Infos auf der Wikipedia Seite (https://de.wikipedia.org/wiki/LineageOS)

Vorraussetzung ist ein Geräte welches offiziell unterstützt wird (https://wiki.lineageos.org/devices/) oder ein Custom Rom, z.B. von https://forum.xda-developers.com/ existiert.

WICHTIG: Mit diesem Vorgang verlieren Sie Ihre Garantie, können Ihr Gerät zerstören und niemand wird Ihnen helfen. Ich beschreibe hier den Vorgang meiner Umstellung und ermutige Sie in keinem Fall den Vorgang an Ihrem Gerät durchzuführen. Wenn Sie es machen, dann sind Sie auf sich alleine gestellt und für den Fall dass Sie das Gerät zerstören sind einzig und alleine Sie selbst verantwortlich. Niemand und schon gar nicht ich, hafte für Dinge die Sie mit Ihrem Gerät tun!

Teil 4

Custom Script um Zugriff zu eigenen IP Adressen global zu erlauben und Rules um notwendigen Traffic zu anonymisieren

Basierend auf dem ersten Tests von LineageOS auf einem Samsung SM-T585 Tablet (https://kmj.at/2018-09-12-android-lineageos-samsung-sm-t585-privacy/), sowie dem Teil 2 der Serie (https://kmj.at/2018-10-01-android-lineageos-privacy-teil2/) wurden im Teil 3 die ersten Releasewechsel durchgeführt (https://kmj.at/android-lineageos-privacy-teil3/).

Zwischenzeitlich kann LIneageOS auch als virtuelle Maschine betrieben werden (https://kmj.at/betrieb-einer-virtuellen-maschine-vm-mit-lineageos-android-unter-proxmox/) Nun geht es darum, den kompletten Datenverkehr ins Internet und damit die Übertragungvon Daten zu Drittanbietern zu verhindern, sowie auch das “Calling Home” von Software (Apps) zu verhindern und trotzdem eine perfekte Funktion zu erhalten.

AFWall+ als Firewall schaltet bereits jetzt Apps zum Datenverkehr frei, oder sperrt diese, jedoch ist immer das Problem, dass wenn man eine App für den Datenverkehr freischaltet, dass diese sich ins gesamte Internet verbinden kann und nicht nur zu den eigenen Servern und Services.

Zusätzlich wollen wir den Systemdiensten den Zugriff zum Internet verbieten und jeglichen verbleibenden Datenverkehr über das Tor Netzwerk anonymisieren. Bezüglich Tor lassen Sie sich von Unwissenden keine Schauergeschichten erzählen. Tor ist ein Overlay Netzwerk, wie andere VPNs auch, kann aber die Anonymisierung viel besser. Tor rettet Journalisten und anderen Berufsgruppen in kritischen Bereichen die persönliche Freiheit und oft auch das Leben. Tor ist natürlich vollkommen legal und erlaubt. Reden Sie mit Profis und nicht mit Menschen die etwas erzählen, dass Sie von jemanden gehört haben, der etwas gehört hat.

Schritte:

  • Jeglichen ein- uns ausgehenden Traffic verbieten
  • Global allen Apps den Zugriff auf die eigenen Server und Services erlauben
  • Sonstigen Apps, welche unbedingt notwendig sind, den anonymisierten Zugriff ins Internet erlauben

Benötigt wird das Paket Orbot aus dem F-Droid Store. Aktivieren Sie keinen VPN Modus von Orbot. Der reine Dienst reicht, die Umleitung der Pakete über Tor wird durch AFWALL+ erreicht.

WICHTIG Bei Verbindungsproblemen beachten:

I have found an extremely simple solution to the problem of tor control not working with default settings of AFWall and Orbot. Maybe you could include this in your FAQs. Do the following, if your app cannot connect to the internet via tor, even though you checked the tor check box in AFWall (in addition to choosing at least one of the check boxes for Wifi, Mobile data, VPN...) :

- In Orbot tap the three dots in the top right corner.
- Select "Settings".
- Scroll down to section "Debug".
- Tap on "Tor TransProxy Port", remove "auto" and type "9040". Press "OK".
- Tap on "Tor DNS Port", remove "auto" and type "5400". Press "OK".
- Return to Orbot main screen, tap the three dots in the top right corner. Select "Exit".
- Start Orbot again and connect to tor. Now tor control in AFWall should work flawlessly.

Orbot sollte in den Einstellungen so aktiviert werden, dass beim Start von LineageOS Orbot automatisch startet.

AFWALL+ konfigurieren und Custom Script einrichten

Zuerst muss in den AFWALL Settings die getrennte Verwaltung von VPN und Tor aktiviert werden.

AFWALL+ Custom Script erstellen

Nun benötigen wir ein Script, welches die passenden Iptable Einträge zum Zugriff auf die eigenen Server beinhaltet. Ich bevorzuge generell Self-Hosting im eigenen Hause, jedoch ist die Vorgangsweise bei einem gemieteten VPS gleich.

Das Script sollte wie folgt aussehen:

# Load in AFWALL with
# . /pathoscript/script
# the ". " is required
# Necessary at the beginning of each script!
IP6TABLES=/system/bin/ip6tables
IPTABLES=/system/bin/iptables

# Rules for KMJ
# https://github.com/ukanth/afwall/wiki/CustomScripts

# Deny IPv6 only connections  
# We do not have IPv6 here
$IP6TABLES -P INPUT DROP
$IP6TABLES -P FORWARD DROP
$IP6TABLES -P OUTPUT DROP

# Block all IPv6 in IPv4 communication (for native IPv6 connections only!)
# This must be done in our IPv4 tables!
$IPTABLES -A INPUT -p 41 -j DROP
$IPTABLES -A FORWARD -p 41 -j DROP

# Drop normal Multicast-addresses 
$IPTABLES -A INPUT -s 224.0.0.0/4 -j DROP
$IPTABLES -A INPUT -d 224.0.0.0/4 -j DROP
$IPTABLES -A INPUT -s 240.0.0.0/5 -j DROP
$IPTABLES -A INPUT -d 240.0.0.0/5 -j DROP
$IPTABLES -A INPUT -s 0.0.0.0/8 -j DROP
$IPTABLES -A INPUT -d 0.0.0.0/8 -j DROP
$IPTABLES -A INPUT -d 239.255.255.0/24 -j DROP
$IPTABLES -A INPUT -d 255.255.255.255 -j DROP

# EDIT HERE !!!!!!!!!!!!!!!!!!!!1
# Always allow connections to our own IP Blocks no matter the interface
$IPTABLES -A "afwall" --destination "IP1/Mask" -j RETURN
$IPTABLES -A "afwall" --destination "IP2/Mask" -j RETURN
$IPTABLES -A "afwall" --destination "IP3/Mask" -j RETURN

# if you are in need edit here too
# We add  our home nets if we are on wifi 
# we never connect to foreign wifi's
$IPTABLES -A "afwall-wifi" --destination "192.168.56.0/24" -j RETURN
# allow special external IPs if we are on via wifi/LAN
$IPTABLES -A "afwall-wifi" --destination "IPspecial" -j RETURN

Speichern Sie das Script als afwall.sh am Internen, oder SD Speicher und fügen Sie das Script in den Einstellungen -> Script so hinzu:

. /pfad/zumscript/afwall.sh

Wichtig, es muss mit einem . und einem Leerzeichen beginnen, danach der Pfad und der Scriptname. “Apply rules” in der AFWALL+ dürfen keinen Fehler erzeugen und mit Rules anzeigen müssen die Regeln sichtbar sein. NUR DANN WEITERMACHEN!!

Nun kann die AFWALL+ fertig eingerichtet werden. Alle Apps, welche auf eigene Server und Dienste zugreifen, z.B. E-Mail, Riot Messenger, Mastodon Client, Owncloud, und vieles mehr benötigt keine Freischaltung des Datenverkehrs in der AFWALL+ Firewall, da der Zugriff zu den eigenen Servern, und wirklich nur zu diesen, im Script erlabut ist. Damit kann bei fehlerhafter App, bzw. einem Angriff die App keine Daten zu anderen senden. Weiters wird damit Tracking und vieles unschöne mehr, unterbunden.

Eine vollständige Konfiguration sieht so aus:

Die Einstellungen heißen im Detail,

  • Bei Kernel, Zeitserver, Medienspeicher, Updater und Android System wir der Internetzugriff über Tor umgeleitet und anonymisiert.
  • F-Droid und Aurora Store benötigen, da Tor support in der App, nur die Tor Erlaubnis
  • Die DuckDuckGo, Fennec und Firefox Browser kommen nur über Tor ins Internet
  • Das IBKR Programm darf ohne Anonymisierung ins Internet
  • Der Riot.im scheint hier auf, da auf diesem Gerät 3 Riot Accounts installiert sind und einer davon auf den Matrix.org Server zugreift. Diesetwegen scheinen 2 Riot nicht auf (Zugriff im Sript erlaubt) und der dritte Account wird durch Tor anonymisiert zu Matix.org geleitet
  • Jeglicher anderer Traffic ist ein- und ausgehend blockiert

Für mich ist es eine ziemlich perfekte Lösung, da die Privatsphäre nun extrem gut gesichert ist und alle Funktionen einwandfrei funktionieren.

In den nächsten Wochen wird nich versucht die Kernel und Android System Zugriffe komplett zu verhindern um jeglichen Datenverkehr mit Dritten ohne mein Wissen zu verbieten.

In dieser Form ist Android/LineageOS auch für Firmen mit smarten Mitarbeitern verwendbar.

Paranoia

Wer jetzt glaubt, er hat nichts zu verbergen sollte sich, vor einer Aussage in diese Richtung, den folgenden Filme ansehen:

“Nothing to Hide (2017)”

available on one of these links:

auch in Deutsch verfügbar:

Update 20200702 Greentooth

Um das Gerät weiter abzusichern sollte Bluetooth generell deaktiviert sein. Manuell wird das natürlich nie gemacht und deshalb empfehle ich die Installation von:

Deaktiviert automatisch mit einstellbarem Zeitraum, nach Disconnect der letzten Device, das Bluetooth Modul. Damit ist das Gerät nicht mehr über Bluetooth angreifbar.

Nächste Schritte

Die Zukunft von mobilen Geräte bei professionellen Nutzern mit Bedarf an Privatsphäre wird sicher in Linux basierten Endgeräten liegen. Librem5 und PinePhone arbeiten an Open Source Hardware und Software um dies zu ermöglichen.

Ein PinePhone ist bereits bestellt und Tests mit:

  • UBports (Ubuntu)
  • Mobian (Debian)

Linux basierten Versionen werden folgen. Vermutlich wird es aber noch ein bis zwei Jahre dauern, bis diese als “Daily Driver” verwendbar sind. Mit der nun verfügbaren, sehr gut abgesicherten LineageOS Version ist bis dahin aber ein sehr sicherer Begleiter verfügbar.

Join my public room in the Matrix

If you like this blog entry feel free to join my public room by entering /join #kmj:matrix.ctseuro.com anywhere in the box to send a message!

Feedback via Matrix/Riot welcome!