ULogger: Selbst gehostete datenschutzfreundliche Open Source Tracking Lösung

Dieser Artikel verwendet die Open Source Projekte Ulogger, Easer, LineageOS (oder Android), AFWall+ und OpenVPN.

Wie schon in einem früheren Artikel beschrieben, wurde eine Tracking Lösung für die mobilen Geräte gesucht und 2018 ein Start mit Traccar (https://kmj.at/2018-09-15-self-hosted-open-source-car-tracking-enterprise-ready/)  gemacht.  Diese Lösung, die für eine Fahrzeugflotte sicher ziemlich gut ist, hat nie ganz meine Anforderungen inklusive dem Tracking von Trips mit dem Fahrrad und zu Fuß erfüllt. Ich wollte die  Möglichkeit einzelne Trips aufzeichenen und auch zu exportieren, damit Fahrradrouten ablegen zu können u.v.m.

Wie schon im Artikel https://kmj.at/Am%20Android%20Tablet%20oder%20Smartphone%20mit%20LineageOS%20f%C3%BCr%20Sicherheit%20und%20Privatsph%C3%A4re%20sorgen%20%28Teil%206%29/ beschrieben, sind Mobiltelefon und Tablet bereits so eingerichtet, dass weder Google’s (gapps) Services verwendet, noch Daten an Dritte übermittelt werden. Natürlich funktioniert die nun beschriebene Lösung auch unter Android.

Zusätzlich wurde die Automatisierung am Handy mit Easer im Artikel hhttps://kmj.at/Professionelle%20Enterprise-Grade%20VoIP%20Telefonie%20mit%20Home-Office%20und%20Mobiltelefon%20Support%20%28Kostenlos,%20Open%20Source%29/ beschrieben. Mit Easer wird auf den Geräten OpenVPN beim Verlassen des HOME WLAN’s automatisch gestartet und beim der Rückkehr wieder beendet. In diesem Beitrag wird der automatische Start und Stop des Trackings in die Easer Profile integriert, denn nur so wird nicht vergessen, das Tracking zu starten. Jeder Start des Trackings erzeugt eine neue Tour.

Die Ulogger Komponenten findet sich hier:

und Easer findet man bevorzugt auf F-Droid hier https://f-droid.org/en/packages/ryey.easer/ . Sollte Android mit Google Play verwendet werden ist Easer auch dort zu finden. Ich empfehle generell bevorzugt den F-Droid Store (https://f-droid.org/) einzurichten.

Server Setup

Zuerst richtet man den Ulogger Server auf einem Webserver ein. Das Setup kann in einem Unterverzeichnis, oder einem virtual Host erfolgen. Die Verwendung eines abweichenden Ports, z.B. 88443, anstatt 443 für SSL ist kein Problem und im Sinne von Angriffen durch Bots auch sinnvoll.  Ulogger unterstützt SQLite, MySQL und Postgres als Datenbank und für die reine private Verwendung reicht SQLite vollkommen aus. Dadurch benötigt der Server kein extra Datenbank Setup. Ab 10 Geräten sollte auf MySQL oder Postgres gesetzt werden. Die Setup Schritte auf der Projekt Seite sind sehr einfach zu vollziehen und nach wenigen Minuten ist der Ulogger-Server in einem Unterverzeichnis betriebsbereit. Die Anzeige sieht mit Daten dann in etwas so aus:

Als Administrator können Sie beliebig viele Benutzer einrichten um auf jedem mobilen Gerät einen Account einrichten zu können. Am besten mit einem Account und Gerät starten, testen und dann alle Geräte nachziehen.

Setup Client

Nun laden wir die Software am besten über F-Droid am LineageOS oder Android Endgerät. Danach stellt man die gewünschte Art des Trackings, sowie den Server URL und den Benutzernamen, ein. Die Art des Trackings kann je nach Anwendung variieren, einfach ausprobieren, welche Einstellung am besten zu den eigenen Gewohnheiten passt.

Einrichten der Automatisierung

Die generelle Einrichtung der Automatisierung mit Easer wurde im Artikel https://kmj.at/Professionelle%20Enterprise-Grade%20VoIP%20Telefonie%20mit%20Home-Office%20und%20Mobiltelefon%20Support%20%28Kostenlos,%20Open%20Source%29/ bereits beschrieben. HIer nun der angepasste Vorgang für OpenVPN und Ulogger um das Tracking automatisch zu starten. Die Profile wurde umbenannt auf Profile Leaving Home und Profile Coming Home:

Aufgrund der Internationalität sind die Details in Englisch (Die Sprache kann auch im Easer auf Englisch umgestellt werden):

Open settings

– enable ‚Use root features’

– Check ‚Activated skills’, where the minimum is: Wi-Fi, Connectivity Type, Wi-Fi Connection

Open Data

– Create Condition -> Choose a Condition – > WiFi Connection

Condition Title: At-Home

Match SSID: Your Home SSID

– Create Event -> Choose an Event -> Connection Type

Event Title: HaveConnection

Selected Types: Wi-Fi and Mobile

– Create Profile:

Profile Title: Profile Leaving Home

From plus(+) icon select ‚Run Command’
command:
am start -a android.intent.action.MAIN -n de.blinkt.openvpn/.LaunchVPN -e de.blinkt.openvpn.shortcutProfileName PROFILENAME

From plus(+) icon select ‚Run Command’
command:
am broadcast -a net.fabiszewski.ulogger.intent.action.COMMAND -e „command” „start new logger” net.fabiszewski.ulogger net.fabiszewski.ulogger.ExternalCommandReceiver

– Create Profile

Profile Title: Profile Coming Home

From plus(+) icon select ‚Run Command’
command: am broadcast -a net.fabiszewski.ulogger.intent.action.COMMAND -e „command” „stop logger” net.fabiszewski.ulogger net.fabiszewski.ulogger.ExternalCommandReceiver

From plus(+) icon select ‚Run Command’
command: am start –user 0 -n de.blinkt.openvpn/.api.DisconnectVPN


– Create Pivot

Script Title: Online

Profile:

Event: HaveConnection

– Online->Add child

Script title: Home WLAN

Profile: Profile Coming Home

Condition: At-Home

Reverse Scenario: disabled

– Online->Add child

Script title: Insecure Network

Profile: Profile Leaving Home

Condition: At-Home

Reverse Scenario: enabled

– Finally

Start Rules

Wenn alles richtig gemacht wurde dann startet sich OpenVPN automatisch und Ulogger startet einen neuen Track, sobald das Home WLAN nicht mehr verfügbar ist. Bei der Rückkehr wird Ulogger und das VPN deaktiviert und der Track ist sofort im Web Interface abrufbar. Wenn LinPhon in Verbindung mit Asterisk verwendet wird,  meldet sich LinPhone sofort nach dem Wechsel neu an und somit ist die Funktionalität, ohne jeden manuellen Eingriff immer gegeben. Eine wirklich coole Lösung die dann so aussehen sollte:

 

 

 

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 Element Messenger (https://element.io) box to send a message!

Or follow this Link: https://matrix.to/#/#kmj:matrix.ctseuro.com

Help or answering questions ONLY in this room!

Enterprise Support and Setup

https://cts-solutions.at Wir arbeiten auch als Level2 und Level 3 Remote Support!

Einträge auf CPV.Agency

Post in Deutsch:

Post in English:

Self-Hosted Real Time Push Notification Server für Android und LineageOS (Open Source)

Wie in anderen Beiträgen im Blog bereits beschrieben ist es möglich, mobile Endgräte unter Android oder LineageOS sehr Datensparsam einzurichten. Durch den Verzicht auf die offiziellen, bzw. FOSS Google Apps (gapps) gibt es dadurch eine Einschränkung im Bereich der Push Benachrichtigungen.

Dazu muss man wissen, dass mobile Endgeräte die Push-Benachrichtigungen von Apps durch die Server von Google oder Apple senden. Damit ergeben sich, auch wenn gute Apps darüber nur „Aufwecknachrichten” senden, massive Meta Daten bei den großen Datensilos.

Um keine Daten an Dritte weiterzugeben wurden in den anderen Artikel bereits umfangreiche Vorkehrungen getroffen ( https://kmj.at/Am%20Android%20Tablet%20oder%20Smartphone%20mit%20LineageOS%20f%C3%BCr%20Sicherheit%20und%20Privatsph%C3%A4re%20sorgen%20%28Teil%206%29/ ) .

Nun fehlte noch eine selbst gehosteter Push-Notification Server und nach langer Suche fiel die Entscheidung auf Gotify. Durch den mit Plugins erweiterbaren Push-Server können Matrix Push Benachrichtigungen genauso gesendet werden, wie Push-Benachrichtigungen per wget, PHP, und anderen Tools und Programmiersprachen. Damit ist es auch möglich das Nagios Real Time Monitoring auf einen neuen Level zu heben.

Viele Muster zum Senden von Nachrichten finden sich hier: https://gotify.net/docs/more-pushmsg .

Der Gotify Server ist in Go Programmiert und läuft damit auf vielen Betriebssystemen. Das Project stellt auch ein Docker Image. Ich selbst bevorzuge Bare-Install und virtualisiere mit Proxmox.

Zusätzlich war eine Voraussetzung, dass der Push-Server nicht als Root und ohne Reversed-Proxy, in Verbindung mit SQLite läuft. Damit kann mit einem statischen Binary und der Datenbank im Unterordner der gesamte Server als non-privileged Benutzer betrieben werden.

Das Setup

  • Installieren von Go wie üblich
  • Go muss im PATH sein

Als root, bzw. sudo

  • pkg install yarn

um Yarn und Node zu installieren. Danach

  • git clone https://github.com/gotify/server.git && cd server
  • export GO111MODULE=on
  • make download-tools
  • go get -d
  • cd ui
  • yarn
  • cd ..
  • (cd ui && yarn build)
  • go run hack/packr/packr.go
  • export LD_FLAGS=“-w -s -X main.Version=\$(git describe –tags | cut -c 2-) -X main.BuildDate=\$(date „+%F-%T”) -X main.Commit=\$(git rev-parse –verify HEAD) -X main.Mode=prod”;
  • go build -ldflags=”\$LD_FLAGS” -o gotify-server

Das Binary in das Home Verzeichnis des ausführenden Benutzers kopieren.

Erstelle ./config.yaml

Speziell

In unserem Fall wurden die Standard Ports auf High-Ports gelegt, damit kann der Gotify Server ohne root Berechtigungen gestartet werden. Ich habe eine eigene lokale CA und damit die Zertifikate erstellt.

Viele Details zur eigenen CA finden sich hier: https://digitalbooks24.com/de/product/my-own-certificate-authority-epub/

Kurzinfo zum Hinzufügen der eigenen CA als vertrauenswürdige Ausstellerinstanz

openssl x509 -noout -hash -in ca.crt > ca.crt.hash
ln -s ca.crt `cat ca.crt.hash`.0
echo „copy ca.crt and `cat ca.crt.hash`.0 to /etc/ssl/certs"

Testen:

openssl s\_client -connect gotify.server.tld:PORTNUMBER \| grep -i -e verify

Start- und Prüfscript

Dieses Script am besten in der Crontab mit dem jeweiligen Benutzer, alle 5 Minuten laufen lassen. Benötigt etc/Runs/nagios/plugins/check_tcp , welches sich in den Nagios-Plugins findet.

!/bin/sh
RUNAS=gotify
MAILTO=root
MAIL=/usr/bin/mail
GETUSERNAME=`/usr/bin/whoami`

if [ "${GETUSERNAME}" != "${RUNAS}" ]; then
echo "####################################################"
echo "ERROR: This script must be run as ${RUNAS}, exiting"
echo "TIP : use su -m ${RUNAS} -c command"
echo "####################################################"
echo "ERROR: This script must be run as ${RUNAS}, exiting" | \
${MAIL} -s "ERROR: MATRIXBOT start exited with error on `hostname`" ${MAILTO}
exit 1
fi

if (! /etc/Runs/nagios/plugins/check_tcp -p 4080 -H 127.0.0.1 2>&1 >/dev/null); then
echo "Service MATRIXGOTIFY not running"
echo "Service MATRIXGOTIFY not running" | mail -s "`hostname` Service MATRIXGOTIFY not running RESTARTET" root
cd /home/gotify && \
/home/gotify/gotify-server &
fi

 

 Testen Gotify Server

Dazu meldet man sich am Web Interface an, bzw, installiert am besten auch die App am mobilen Gerät. Das Token ersetzen!

#!/bin/sh
token="ACepUABC5Vornq."
subject="wget"
message="Test Message to Mobile via WGET"
priority=5
PORTNUMBER=443 # Set your non standard port here, if used!
wget --no-check-certificate "https://localhost:$PORTNUMBER/message?token=$token" --post-data "title=$subject&message=$message&priority=$priority" -O /dev/null

Danach sollten im Web und in der App die Nachricht auftauchen.

Nun kann das Matrix Plugin für Gotify kompiliert werden

  • git clone https://gitlab.com/Sorunome/matrix-gotify
  • cd matrix-gotify
  • make download-tools
  • go build -mod=readonly -a -installsuffix cgo -ldflags „\$LD_FLAGS” -buildmode=plugin -o build/matrix-gotify.so
  • Das build/matrix-gotify.so in den Plugin Ordner beim Gotify Server kopieren.

Betrieb

Zum Betrieb von Matrix-Push Benachrichtigungen müssen wir am Matrix Synapse Server noch einen Pusher für den Benutzer einrichten.

Muster

Registrieren Pusher

/usr/local/bin/curl -H ‚Authorization: Bearer ACCESS_TOKEN’ -H ‚Content-Type: application/json’ -X POST -d ‚{„lang”: „en”,“kind”: „http”,“app_display_name”: „Gotify”,“device_display_name”: „Gotify”,“pushkey”: „SECRET-SET-IN-WEB-IF-PLUGIN”,“app_id”: „de.sorunome.gotify”,“data”: {„url”: „https://SERVER.TLD:PORTNUMBER/plugin/2/custom/FROM_LINK_IN_PLUGIN/hook","format": „full_event”}}’ https://MATRIX_SERVER_TLD/_matrix/client/r0/pushers/set

Löschen Pusher

/usr/local/bin/curl -H ‚Authorization: Bearer ACCESS_TOKEN’ -H ‚Content-Type: application/json’ -X POST -d ‚{„lang”: „en”,“kind”: „null”,“app_display_name”: „Gotify”,“device_display_name”: „Gotify”,“pushkey”: „SECRET-SET-IN-WEB-IF-PLUGIN”,“app_id”: „de.sorunome.gotify”,“data”: {„url”: „https://SERVER.TLD:PORTNUMBER/plugin/2/custom/FROM_LINK_IN_PLUGIN/hook","format": „full_event”}}’ https://MATRIX_SERVER_TLD/_matrix/client/r0/pushers/set

Pushers auflisten

/usr/local/bin/curl -H ‚Authorization: Bearer ACCESS_TOKEN’ -X GET https://MATRIX_SERVER_TLD/_matrix/client/r0/pushers

Bei eigener CA muss jeder Beteiligte Server, Gotify und Matrix die eigene CA im OpenSSL eingerichtet haben.

Mit der Installation ist nun ein selbst gehosteter Push Server verfügbar, der verschlüsselt, ohne Daten an Dritte zu senden, Push Benachrichtigungen unter Android und LineageOS ermöglicht. Apple verbietet Web-Socket Verbindungen, dadurch gibt es auch keine APP für IOS. Mit Android und LineageOS ist aber einen großflächige Marktabdeckung, speziell bei smarten Benutzern mit hohem Interesse an Privatsphäre gegeben.

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 Element Messenger (https://element.io) box to send a message!

Help or answering questions ONLY in this room!

Enterprise Support and Setup

Links zum Artikel

Go Programmiersprache

Matrix Doc

Sample Payload

Weitere Artikel

E-Books

Einträge auf CPV.Agency

Posts in Deutsch:

Post in English:

Professionelle Enterprise-Grade VoIP Telefonie mit Home-Office und Mobiltelefon Support (Kostenlos, Open Source)

Die Telefonie hat sich seit meinem Start mit der Umstellung auf Voice over IP (VoIP) in den 90er Jahren noch weiter verändert. VoIP Telefonanlagen haben ältere ISDN und Analog Telefonie mittlerweile mehr oder weniger komplett abgelöst. Asterisk, ein Open Source VoIP Server ist dabei klar als Nummer 1 zu nennen. Asterisk hat Standards gesetzt und und wird als Telefonanlage, VoIP Gateway und Konferenzserver von KMU’s, Enterprises, Call Center, Carrier und Regierungen weltweit verwendet.

Bereits seit 1999 werden von meiner CTS GMBH (https://cts-solutions.at) für Kunden jeder Größe VoIP Telefonanlagen eingerichtet. Viele auch Länder  und Kontinent übergreifend, mit mehrfacher Verschlüsselung um die Telefonie gegen jegliches Abhören abzusichern. Gleichzeitig sind dadurch alle Konzerninternen Gespräche über Internet kostenlos und Least-Cost Routing kann einfach eingerichtet werden.

Gerade durch die Corona Pandemie wurden Kunden gezwungen zusätzliche innovative Anforderungen einzurichten und damit die volle Handlungsfähigkeit während der Pandemie zu erhalten. Wir haben bereits 2019 die letzte Asterisk Installation, welche seit 2006 über 13 Jahre hinweg immer sauber upgedatet wurde, durch ein neues Setup mit der FreePBX Lösung erneuert. Dadurch konnten wir alle notwendigen Features ohne Umstellung einrichten.

Zu den Anforderungen gehören:

  • Sichere, verschlüsselte Telefonie im Home Office ohne den VoIP Server direkt mit dem Internet zu verbinden
  • Sichere, verschlüsselte Telefonie auf mobilen Endgeräte (Smartphones, Tablets, Laptops) ohne den VoIP Server direkt mit dem Internet zu verbinden
  • Multi Device fähigkeit von Nebenstellen, d.h. ein Mitarbeiter kann Bürotelefon, Laptop und Smartphone gleichzeitig Online haben und diese verwenden. Damit entfallen alle schwerer wartbaren Follow-Me und Ring Group Lösungen
  • Volle Absicherung des VoIP Servers durch VPN; damit auch gleichzeitig volle Verschlüsselung der Telefonie. Alle Konzerninternen Gespräche weltweit sind damit nicht mehr abhörbar und sicher vor Dritten
  • Einfache Wechsel des Telefonproviders um Kosteneinsparungen bei der Telefonie einfach und ohne Änderung der internen Infrastruktur nutzen zu können.

Der Aufbau der vollkommen Lizenzfreien Open Source Lösung besteht aus folgenden Komponenten:

PfSense Firewalls (Bare Install oder Virtualisiert mit Proxmox (FOSS) oder VMWare).

Die PfSense Firewall deckt alle Bedürfnisse von KMU und Enterprise im Bereich Firewall, VPN, sowie auch ausfallsicheren (HA) Setups mit mehreren PfSensen ab. Die PfSense Lösung hat mit der OpenVPN Lösung eine von Millionen verwendete, extrem sichere, VPN Lösung integriert. Alle Einstellungen sind einfach über das Webinterface durchzuführen. Es werden Net-to-Net Verbindungen genauso unterstützt, wie Linux Mac, Windows, Android und IOS basierte Endgeräte. Damit es es möglich die volle Funktionalität durch Zertifikate und Passwörter abzusichern, ohne interne Server, bzw. gefährliche Ports (Einfallstüren am Server) mit dem Internet direkt zu verbinden.

Asterisk / FreePBX Setup.

Wir verwenden in unserem Setup die FreePBX Lösung, welche als ISO einfach downloadbar ist. Das Setup ist erdenklich einfach und kann direkt auf Hardware, oder auch virtualisiert durchgeführt werden. FreePBX/Asterisk unterstützen extrem viele Features, welche über das Web Interface eingerichtet werden können. Der Server sollte hinter eine Firewall installiert werden. Dadurch ergeben sich, z.B. gegenüber Cloud.Telefonanlagen, massive Vorteile in der Kommunikation, Sicherheit und reduzierten Bandbreite. Bei Ausfall des Telefonproviders funktioniert immer noch die komplette Konzerninterne Telefonie und ein Wechsel des Telefonproviders, meist bei Kosteneinsparungen, ist extrem einfach durchführbar.

Als Endgeräte werden mehr und mehr Softphones eingerichtet um flexibler agieren zu können. Trotzdem muss am Arbeitsplatz ein Telefon mit Features, welche von einem Softphone nicht immer perfekt unterstützt werden, installiert sein. Großflächige LED Anzeigen für Vermittlungen und ähnliches sind nicht unbedingt die Prioritäten von Softphones. Wir verwenden in unseren Setups Telefon Hardware verschiedener Hersteller und als Softphone bevorzugt das Open Source Telefon LinPhone, welches alle Endgeräte unter Windows, Linux. MaC, IOS und Android sauberst abdeckt.

Als erstes wird die PfSense Firewall installiert und jeglicher Zugang zum LAN von außen komplett verboten. Danach wird ein FreePBX Asterisk Server eingerichtet und mit dem Telefonprovider über einen SIP Trunk verbunden. Dazu sind, um den Asterisk VoIP Server dementsprechend zu schützen, in der Firewall Regeln notwendig, welche den Datenverkehr auf die IP des Telefonproviders einschränken müssen. Auf die Einrichtung von Ring Groups, Queus und Nebenstellen im Asterisk gehe ich hier nicht tiefer ein, eventuell wird das einmal ein eigener Blog Eintrag.

PROFITIPP Multi Device: Ganz wichtig ist es, den PJSIP Treiber zu aktivieren und den CHAN_SIP Treiber bei Neuinstallationen am besten zu deaktivieren. Der PJSIP Treiber kann, pro Extension, ein Max-Connections Setting, welches die maximale Anzahl an Geräte, welche sich auf diese Nebenstellen anmelden, angibt.

Auf den Endgeräten installiert man LinPhone aus den jeweiligen Quellen. Die Einstellungen sind selbsterklärend und es können auch verschiedene Ausgabegeräte für Sprache und Klingelton gesetzt werden. Da wir keine Freunde von Videotelefonie sind, wird darauf hier nicht eingegangen, es sei aber festgehalten, dass die Kombination LinPhone und Asterisk auch das unterstützt.

PC’s und Endgeräte im LAN können den Asterisk VoIP Server damit sofort erreichen und die Telefonie funktioniert sofort.

PROFITIPP Terminal Server Info: Softphones benötigen Headsets (meist USB), Klingelton über Lautsprecher und durchaus intensive Real-Time UDP, TCP und TLS Protokolle für die Sprache. Es ist nicht empfehlenswert Softphones auf Windows und Linux Terminal Servern zu betreiben. Abgesehen davon, dass der Klingelton am meist virtuellem Server im Systemraum erfolgen würde, ist das Durchschleifen von vielen USB Endgeräte im Normalfall nicht unbedingt stabil. Zusätzlich kann es aufgrund der Time-Slice, welche von einem Terminalserver den Usern reihum zugeordnet wird, zu abgehackten Gesprächen kommen. Hier empfiehlt es sich einen PC als Basis für den RDP Connect zu verwenden und das Softphone auf diesem PC einzurichten.

Zur Absicherung der mobilen Endgeräte wird auf der PfSense ein OpenVPN Server eingerichtet. Dieser sollte mit Zertifikaten, TLS Key und User plus Passwort abgesichert sein. Die Endgeräte können sich dadurch dauerhaft mit dem VPN Verbinden und dann verschlüsselt wie im Büro auch, telefonieren. OpenVPN kann dauerhaft im Hintergrund am mobilen Endgerät laufen, damit ist die Verbindung immer aktiv und Anrufe können eingehen.

PROFITIPP VPN: Auf der PfSense sollten am OpenVPN Interface Regeln eingestellt werden, welche den VPN Clients NUR den Zugriff zum Asterisk VoIP Server und dort zu den SIP und RTP Ports 5060, sowie 10000-20000 erlauben. Damit kann, sollte das Endgerät mit Malware behaftet sein, im restlichen Netz nichts passieren.

PROFITIPP VPN (2): Auf der PfSense und am Endgerät sollte keinesfalls das VPN als „Default Gateway” verwendet werden. Das Routing in das VPN sollte zwar die notwendigen Netze enthalten, jedoch sollte das „Default Gateway” am Endgerät unverändert bleiben. Wenn der OpenVPN Client eine Einschränkung der Verwndung auf App’s, welche das VPN verwenden, zulässt, dann die Verwendung auf das Softphone einschränken.

So ist es möglich, ohne sich darum zu kümmern, welches Endgerät man gerade in Reichweite hat, immer erreichbar zu sein und auch alle Gespräche, anstatt der Übermittlung der Mobiltelefonnummer, mit der Telefonnummer am Asterisk Voip Server zu führen. Ich habe aktuell 3 Geräte auf meiner Nebenstellen und alle Anforderungen sind perfekt abgedeckt. Eingehend läuten alle, ausgehend kann von mehreren auch gleichzeitig telefoniert werden.

Extra Profi Setup für IT Spezialisten (Easer Example)

Normale Anwender können hier jetzt zu den Links am Ende scrollen. Für IT Profis kommt hier jetzt aber das Sahnehäubchen des Setups, welches nur mit einem entsprechenden Basiswissen verstanden wird.

Es wurde ja im Blog schon ein über 3 Jahre entwickeltes Setup für sichere, die Privatphäre respektierende Smartphones und Tablets vorgestellt (https://kmj.at/Am%20Android%20Tablet%20oder%20Smartphone%20mit%20LineageOS%20f%C3%BCr%20Sicherheit%20und%20Privatsph%C3%A4re%20sorgen%20%28Teil%206%29/).

Ohne hier weiter darauf einzugehen, sei aber festgehalten, dass es bei diesem Setup für OpenVPN rein mit dem Custom Script möglich ist, den Asterisk VoIP zu erreichen und keine Extra Berechtigungen für ein- oder ausgehenden Internetverkehr gesetzt werden müssen.

Es muss aber die Extra Steuerung für das VPN in der AFwall+ aktiviert werden und danach muss LinPhone Zugriff auf das VPN erlaubt werden. (Häkchen nur beim VPN!)

IT Spezialisten bewegen sich in vielfältigen Netzwerken und eines der Dinge, welche einen am meisten aufregen, sind Routinetätigkeiten, welche automatisierbar wären. Passend dazu wurde Easer gefunden, welcher ein Open Source Automatisierungstool für Android ist. Die Installation kann, wie immer bevorzugt, über F-Droid erfolgen.

Easer hat sogar für langjährige Spezialisten eine Lernkurve, aber danach ist das Tool mehr als perfekt.

Hier ein Beispiel, für eine der Anforderungen dieses Projekts:

Automatisches Umschalten des OpenVPN basierend auf dem, verbundenen Netzwerk

Annahme: Der IT Spezialist bewegt sich in einem LAN, welches den VoIP Server direkt erreicht und in anderen Netzen, welche das VPN für den Zugang benötigen. Hauptproblem dieser Routinetätigkeit, das Aktivieren und Deaktivieren des VPN wird natürlich oft vergessen und damit gehen Anrufe verloren.

Aufgrund der Internationalität sind die Details in Englisch (Die Sprache kann auch im Easer auf Englisch umgestellt werden):

Open settings

– enable ‚Use root features’

– Check ‚Activated skills’, where the minimum is: Wi-Fi, Connectivity Type, Wi-Fi Connection

Open Data

– Create Condition -> Choose a Condition – > WiFi Connection

Condition Title: At-Home

Match SSID: Your Home SSID

– Create Event -> Choose an Event -> Connection Type

Event Title: HaveConnection

Selected Types: Wi-Fi and Mobile

—————————————

READ UPDATES!

Create Profile:
From plus(+) icon select ‚Launch App’

Profile Title: OpenVPN Connect
APP: de.blinkt.openvpn
Class Name: de.blinkt.openvpn.api.ConnectVPN
Extras:
Key: de.blinkt.openvpn.api.profileName
Value: (e.g. Pihole)

UPDATE

There was problems with the above one. So we changed to

From plus(+) icon select ‚Run Command’

Profile Title: OpenVPN Connect
command:
am start -a android.intent.action.MAIN -n de.blinkt.openvpn/.LaunchVPN -e de.blinkt.openvpn.shortcutProfileName PROFILENAME


– Create Profile -> + -> Launch App

Profile Title: OpenVPN Stop

APP: de.blinkt.openvpn

Class Name: de.blinkt.openvpn.api.DisconnectVPN

Am besten mit „Trigger this Profile” testen.

UPDATE

There was problems with the above one. So we changed to

From plus(+) icon select ‚Run Command’

Profile Title: OpenVPN Stop
command: am start –user 0 -n de.blinkt.openvpn/.api.DisconnectVPN


– Create Pivot

Script Title: Online

Profile:

Event: HaveConnection

– Online->Add child

Script title: Home WLAN

Profile: OpenVPN Stop

Condition: At-Home

Reverse Scenario: disabled

– Online->Add child

Script title: Insecure Network

Profile: OpenVPN Start

Condition: At-Home

Reverse Scenario: enabled

– Finally

Start Rules

Wenn alles richtig gemacht wurde dann startet sich OpenVPN automatisch, sobald das Home WLAN nicht mehr verfügbar ist und deaktiviert sich bei der Rückkehr. LinPhone meldet sich sofort nach dem Wechsel neu an und somit ist die Funktionalität, ohne jeden manuellen Eingriff immer gegeben. Eine wirklich coole Lösung!

Enterprise Support and Setup:

Einträge auf CPV.Agency

Post in Deutsch:

Post in English:

Am Android Tablet oder Smartphone mit LineageOS für Sicherheit und Privatsphäre sorgen (Teil 6)

Die Erstellung dieses Artikels begann 2017 und dieser wurde bis Dezember 2020 immer wieder erweitert und angepasst. Basierend auf dem ersten Tests von LineageOS auf einem Samsung SM-T585 Tablet im Jahre 2018 wurden nun noch Samsung A5 2017 (SM-A520F) Mobiltelefone angeschafft. Mit ca. 250 € ein Schnäppchen und dann noch IP68 wasserdicht und gegen Staub geschützt.

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!

Die Problemstellung

Nicht wirklich glücklich mit Apples IOS Geräten auf denen einiges an notwendiger Software, z.B. Tor, nicht funktioniert, oder von Apple verboten wurde machte ich mich schon 2017 auf die Suche nach einer Alternative. Die Voraussetzungen waren klar und unverrückbar:

  • Es darf zur Inbetriebnahme keine Registrierung beim Hersteller erfolgen müssen. Es ist gelinde gesagt eine Frechheit, dass die Hersteller eine Inbetriebnahme des Geräte ohne Registrierung untersagen. Der erste Schritt zum Datensammeln muss bereits unterbunden werden
  • Es muss eine Firewall, ala IPTables, PF, IPFW oder ähnliches, installierbar sein. Der gesamte Traffic des Gerätes muss so kontrollierbar sein, dass Datensammler keine Verbindung aufbauen können.
  • Ein Open Source VPN Client ist Pflicht, bevorzugt OpenVPN.
  • Zusätzlich benötigt wird ein vernünftiger RDP Client um auf den Linux RDP Terminal Server via RDP zugreifen zu können. Im Business Bereich ist damit auch der Zugriff auf Windows Systeme gewährleistet.
  • Tor muss als Dienst, inkl. Hidden Services und Tor Browser funktionieren
  • Email, Kalender und Kontakte müssen mit ActiveSync, IMAP, CalDAV, CardDAV, PGP Verschlüsselung vernünftig funktionieren.
  • Element als Matrix Messenger Client muss verfügbar sein. Damit ist eine sichere E2E verschlüsselte Kommunikation ohne Mitleser gewährleistet.
  • Verschiedene Browser und Addons sind Pflicht. Firefox mit NoScript und Ublock, Midori Browser und DuckDuckGo Privacy Browser wären die Minimumanforderungen. Für Privatshpäre ist es wingend notwendig seine Zugriffe, insbesondere welche mit Login und ohne Login auf verschiedene Browser zu verteilen.
  • Es darf keine Software installiert sein, die Daten an Dritte überträgt und damit Inhalte, Vorgänge, oder noch schlimmer Daten des Gerätes an Dritte überträgt. Alls Daten dürfen nur mit den eigenen Servern ausgetauscht werden. Hersteller Bloatware muss deinstallierbar, bzw. von Haus aus gar nicht installiert sein. Möglichst alle Software Komponenten sollten Open Source sein.
  • Zusätzlich muss ein richtiges Backup der Applikationen und Settings, inkl. Separiertem und gesamtem Restore möglich sein. Alle Einstellungen müssen mit Hilfe des Backups auf ein neues Geräte übertragen werden können.

Das Gerät

Zum Test wurde 2018 ein Samsung SM-T585 Galaxy Tab A Tablet angeschafft und mit dem vorinstallierten Android ein Versuch vorgenommen. Schon nach kurzer Zeit stellte sich heraus, dass so ein Tablet oder Telefon die Anforderungen in keinem Fall erfüllt. Ganz abgesehen davon, dass der Hersteller verhindert, dass man der System Administrator wird (rooting), gibt es dadurch keine Möglichkeit IPTables, ein vernünftiges Backup und vieles mehr zu nutzen.

Wenn man ein Paket das sich Firewall nennt, ohne rooting aber nur ein VPN ist, installiert, sieht man zumindest, dass die vorinstallierte Software von Google und Samsung ohne Ende nach Hause telefoniert und undefinierte Daten überträgt.

In Summe, obwohl lange versucht wurde diese Software zu deaktivieren und deinstallieren, keine Lösung. Der Hersteller sperrt die Deinstallation, Deaktivierung so, dass im Hintergrund immer Dienst laufen, welche man nicht haben will. Zumindest, wenn man kein forensisches Datenfutter sein will und auf seine Privatsphäre einen hohen Wert legt.

Es war klar, es musste etwas anderes werden, jedoch haben diese Android Tablets in Punkto Größe, Suspend und Resume und einiges mehr durchaus Vorteile gegenüber Notebooks.

Nach monatelanger Recherche stand fest, dass das Samsung Tablet mit LinageOS betrieben werden soll. Da das Gerät leider offiziell noch nicht unterstützt ist, musste ich auf ein Custom Rom von XDA-Developers zurückgreifen.

Auch zum Jahreswechsel 2020 läuft das Testgerät noch immer seht stabil, gestartet mit LineageOS 14.1, mittlerweile mit LineageOS 16.0 und es wurde auch ein zweites Gerät für die tägliche Verwendung angeschafft. Aufgrund der sehr positiven, langlebigen und kostengünstigen Einsatzmöglichkeiten, wurden alle Smartphones nun auf LineageOS 17.1 (Android 10) und alle Tablets auf LineageOS 16.0 (Android 9 ) hochgerüstet und es gibt im täglichen Betrieb keine Probleme.

Wissen muss man

Lesen Sie die Install-Anleitung für das Gerät auf LinaegeOS.org durch, lesen Sie mehrfach, damit Sie schon vorher wissen, welche Schritte Sie benötigen. Insbesondere „Wischerkönige” können damit einiges an Problemen vermeiden.

Die meisten Geräte kann man anders booten. In etwa so, wie man einen PC ins Bios booten kann. Dieser Vorgang wird über Telefontasten gesteuert und beim Samsung sind diese:

  • HOME + Lautstärke+ + Power bootet in den sogenannten Recovery Mode. Hier arbeiten wir dann mit dem TWRP Paket. So etwas wie das Bios mit ein paar Extra Funktionen.
  • HOME + Lautstärke- + Power bootet in Download Mode. Diesen benötigen wir einmal um das Custom Recovery Paket zu laden. Ohne dieses funktioniert der Recovery Mode nicht.
  • Am Gerät muss USB Debugging aufgedreht werden. Detail dazu in den einzelnen Anleitungen. Im wesentlichen geht das überall mit 7 mal, über Einstellungen-Über das Gerät-Buildnummer, auf die Buildnummer tippen. Danach ist das Entwicklermenü sichtbar.

TIP Einige Geräte haben im Entwicklermenü – „Enable Custom OEM unlocking”. Unbedingt aufdrehen, sonst könnte es sein, dass das Gerät nie mehr bootet.

TIP Kaufen Sie sich eine extra 32GB Micro SD Karte für diesen Vorgang. Details dazu später. Damit wird alles viel einfacher! Geiz ist nie Geil!

Installation von adb und fastboot

adb ist die Android Debugging Bridge und diese ist zur Kommunikation zwischen PC und Android Gerät notwendig. Eine gute Anleitung zur Installation findet sich hier:

https://wiki.lineageos.org/adb_fastboot_guide.html

TIP Ich selbst verwende ja kein Windows mehr und bei Debian Linux sind die Pakete adb und fastboot im Paket Verzeichnis verfügbar. Für das Samsung Tablet wird nur adb benötigt, da weitere Schritte mit heimdall durchgeführt werden.

TIP Das Paket installiert auch die udev Einstellungen. Trotzdem musste adb als root ausgeführt werden, damit adb devices das Tablet erkannte. Da ich nur das Custom Recovery Package geladen habe und alles weitere mit der SD Karte erledigt wurde, kein wirkliches Problem.

Danach installiert man für das Samsung Tablet die heimdall Suite für das jeweilige Betriebssystem. Downloads finden sich hier:

https://glassechidna.com.au/heimdall/#downloads

Mit der heimdall Suite kann dann das Custom Recovery am Tablet installiert werden. Dazu verwendet man, nachdem das Gerät in den Download Modus gebootet wurde ( HOME + Lautstärke- + Power), beim Samsung den Befehl:

heimdall flash –RECOVERY twrp-x.x.x-x-gtleeilte.img –no-reboot

WICHTIG Die twrp Datei wird bei Ihnen, je nach Gerät anders heißen, jedoch ist der –noreboot unbedingt notwendig! Sollte das Image in einem Archiv sein, extrahieren Sie es unbedingt vorher!

Danach muss sofort in den Recovery Mode gebootet werden ( HOME + Lautstärke+ + Power) sonst überschreibt das System das Image wieder!

Das ganze sollte dann in etwa so aussehen:

Wenn nicht, wiederholt man den Vorgang solange, bis der Boot Vorgang sauber ist und das Menü erscheint.

Nun wird es einfach. Nachdem klar wurde, dass das Custom Recovery im wesentlichen nichts anderes ist, als ein Bios mit Extra Funktionen, insbesondere für Partition Management und Partition Backup, konnte die weitere Anleitung abgeändert werden.

Ich habe danach das LineageOS ROM auf die SD Karte kopiert und hierher auch das Backup über das Menü ausgeführt. Das Backup liegt im Ordner TWRP und darunter in mit Datum und Uhrzeit markierten Ordnern. So geht es leicht retour, falls Probleme auftauchen.

Über Install kann man das Lineage-ROM-Zip File über die SD-Karte auch einfach und ohne PC Anschluss installieren. Ein Zeitgewinn und viel einfacher.

Wichtig ist immer, alle Partition des Originalsystems zu sichern, das Wipe (Löschen der Partitions) laut Anleitung über die Advanced Funktion durchzuführen und am Bildschirm immer alle Meldungen auch wirklich zu lesen. Wenn man etwas nicht versteht, am besten im XDA-Developers Forum suchen, oder Fragen.

Nach der Installation, bzw. nach dem Setup mit LineageOS hilft ein Wipe des Dalvik Caches bei Problemen. Bei mir funktionierte die Bluetooth Tastatur nur in Englisch, nach dem Wipe erfolgte die Umschaltung auf Deutsch sehr sauber.

Um nun ohne Google Play Store auszukommen, installiert man das F-Droid apk, welches von F-Droid Store (https://f-droid.org/) geladen werden kann. Da es meist nicht ohne Programme (Apps) aus dem Google Play Store geht, kann man über F-Droid den „Yalp Store” installieren. Dieser lädt Programme (Apps) ohne Registrierung bei Google von dort. Optional zur Anonymisierung auch über Tor.

Interessante Programme (Apps) sind:

  • TermUX
  • ConnectBot
  • Orbot / Orfox und der neue Tor Browser (Beta)
  • Firefox mit NoScript und Ublock Addon
  • Midori Browser
  • DuckDuckGo Privacy Browser

Die Standard Mail, Kalender und Kontakte Apps funktionieren sehr gut gegen unserem Mail Server, welcher unter FreeBSD ActiveSync bereitstellt. Damit sollten hier keine zusätzlichen Programme notwendig sein. Alternativ K9 Mailer und DavX5.

Zur Verbindung mit meinem eigenen Owncloud Server, den Owncloud Client. Damit können Fotos sofort beim Erstellen zum Server geladen werden. Durch die eigene OwnCloud natürlich so, dass das Foto nie auf anderen Servern im Internet gespeichert wird.

Nicht zu vergessen, auch wenn mit einer gewissen Lernkurve verbunden, AFWall+ als Firewall Frontend zur IPTables Verwendung und Titanium Backup für eine professionelle Sicherung, welche Sie auch auf der SD Karte ablegen können. Wenn Sie die SD Karte öfters auf den PC kopieren, haben Sie ein zusätzliches Backup, falls das Gerät gestohlen wird, oder ausfällt.

Für die Verwendung von AFWall+ und Titanium muss root aktiviert werden. Einfach wieder 7-mal auf die Build Nummer hämmern und dann in den Entwicklereinstellungen root für ADB und APPS erlauben.

Am Ende wird das in etwa so aussehen:

Natürlich gehört noch der OpenVPN Client fürs VPN nach Hause installiert, welcher sich gegen die Open Source PFSense Firewall mit 4096 Bit Zertifikaten und Passwort authentifiziert. Damit sind Sie immer in der Lage, ohne Daten an Dritte zu senden, auf Ihre Daten zu Hause oder im Büro zuzugreifen. Privatsphäre wie sie sein sollte!

Basierend auf den ersten Tests wurde noch folgendes installiert

  • Keepass2Android mit WebDAV Unterstützung (via Developer Site)
  • Navit Offline Navigations Software (bekommt eigenen Blog Eintrag)
  • Traccar und Traccar Manager als Ersatz für Owntracks (läuft ohne Google Libraries), Manager via Developer Site
  • K9 Mailer mit PGP Unterstützung Openkeychain
  • xBrowserSync Bookmark Syncer (gegen meinen eigenen Server)
  • FreeOPT als Client für 2FA Authentifizierung
  • OwnCloud Client für den Zugriff auf meine eigene Cloud, inkl. Voll automatischen Foto Upload und sync zwischen den Geräten
  • LinPhone SIP Ciient als Nebenstelle für meinen Asterisk Server

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.

Absichern mit Firewall und auf IP Adressen begrenzen!

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

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* WICHTIG WICHTIG

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
$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

# DNS over Tor
# allow connections to p5400 then nat
# Force dns to use orbots port 5400 for rmnet[*] interface
$IPTABLES -A "afwall" -d 127.0.0.1 -p udp --dport 5400 -j ACCEPT
$IPTABLES -t nat -I OUTPUT -o rmnet+ -p tcp --dport 53 -j DNAT --to-destination 127.0.0.1:5400
$IPTABLES -t nat -I OUTPUT -o rmnet+ -p udp --dport 53 -j DNAT --to-destination 127.0.0.1:5400
# END DNS over Tor

# Allow Tor trans proxy port
# set port in orbot from auto to 9040
$IPTABLES -A "afwall" -d 127.0.0.1 -p tcp --dport 9040 -j ACCEPT

# Always allow connections to our own Blocks no matter the interface
# change to your ip block or addresses
$IPTABLES -A "afwall" --destination "my.ip.block.one/29" -j RETURN
$IPTABLES -A "afwall" --destination "my.ip.block.two/24" -j RETURN

# We add our home nets if we are on wifi
# we never connect to foreign wifi's
$IPTABLES -A "afwall-wifi" --destination "192.168.1.0/24" -j RETURN
# allow special IPs out via LAN
$IPTABLES -A "afwall-wifi" --destination "special.ip.out.one" -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, Element Matrix 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 (Element Messenger) 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

Update 2020-12:

Bei den letzten Konfigurationen auch die Zugriffe für Linux Kernel, NTP und Android System deaktiviert wurden. Zusätzlich wurde bei den über Tor gerouteten Apps die Wifi und LTE Berechtigung entfernt, sodass nur mehr Tor ein Häkchen hat. Bis jetzt ist das alles ohne Probleme.

Update auf LineageOS 17.1 und mögliche DNS Leak verhindern

Upgrade auf LineageOS 17.1 (Android 10 basiert) und Custom Script Erweiterung um den DNS außerhalb des Home WLAN’S über Orbot (Tor) zu routen). Zwischenzeitlich kann LineageOS auch als virtuelle Maschine betrieben werden (https://kmj.at/betrieb-einer-virtuellen-maschine-vm-mit-lineageos-android-unter-proxmox/).

Nun wollen wir auch jedes DNS Leak außerhalb des Home WLAN’s unterbinden und die DNS Abfragen über Tor umleiten.

Schritte:

  • Sichern der Apps und Daten am besten mit Titanium
  • Installation von LineageOS 17.1 laut Project Webseite am Gerät
  • Einrichten von Magisk zum rooten der Device
  • Setup von Afwall+ und Orbot
  • Rücksichern von Apps und Einstellugnen mit z.B. Titanium

Der komplette Vorgang war absolut unproblematisch. Es gab nur ein Problem, dass ein Problem geschaffen hat. Im F-Droid Store ist AFWall+ in der Version 3.4.x verfügbar und diese Version hat Probleme mit LineageOS 17.1 am Mobile Interface. Die Installation des 3.5.x Paketes, welches auf Github (https://github.com/ukanth/afwall/releases) zur Verfügung steht, löste das Problem und nun sind wirklich auch alle Cor und System Prozessen ohne Internet Zugang.

Durch das Custom Script haben alle Apps Zugang zu meinen Servern (Statische IPs) und benötigen keine Freigabe in AFWall+! Alle Browser und der Updater erhalten nur mehr Tor als Freigaben, damit wird der komplette Traffic über Tor (Orbot) geroutet.

Einige wenige Ausnahmen erhalten Wifi und Mobile und können direkt ins Internet.

Damit ist die Device sehr gut geschützt. Nur ein DNS leak Risiko bleibt, sobald wir uns im mobilen Datennetz (3G,4G,5G) befinden. Im Home Wlan sind wir mit Pi-Hole und Pfsense, incl. DNS-over-TLS forwarding zu eigenen, externen DNS Servern gut geschützt. Im mobilen Datennetz sind wir von dem jeweiligen Netz Provider abhängig, welcher DNS zuweisen kann und auch einen transparenten DNS Proxy mit Mitlesefunktion einrichten kann. Dies wollen wir verhindern.

DNS am rmnet[*] über Orbot DNS Port 5400 umleiten

Das mobile Daten Interface heisst rmnet0. Wir müssen nun die ausgehenden Pakete, welche unser Gerät über rmnet0 zu einer IP und deren Port 53 verlässt so umleiten, dass wir den von Orbot auf 127.0.0.1 Port 5400 angebotenen DNS verwenden. Dieser wird dann verschlüsselt über Tor geleitet.

AFWALL+ Custom Script erweitern

Wir ändern das Script aus Teil 4, 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.

Im Custom-Script weiter oben sind die Änderungen bereits integriert!

# DNS over Tor
# allow connections to p5400 then nat
# Force dns to use orbots port 5400 for rmnet[*] interface
$IPTABLES -A "afwall" -d 127.0.0.1 -p udp --dport 5400 -j ACCEPT
$IPTABLES -t nat -I OUTPUT -o rmnet+ -p tcp --dport 53 -j DNAT --to-destination 127.0.0.1:5400
$IPTABLES -t nat -I OUTPUT -o rmnet+ -p udp --dport 53 -j DNAT --to-destination 127.0.0.1:5400
# END DNS over Tor

Für mich ist es eine ziemlich perfekte Lösung, da die Privatsphäre nun wieder gesichert ist und alle Funktionen einwandfrei funktionieren. In dieser Form ist Android auch für Firmen mit smarten Mitarbeitern verwendbar.

Und natürlich bedingt eine auf Sicherheit und Privatsphäre ausgerichtete Lösung den Willen sich weiter zu bilden und einen gewissen Aufwand in den Schutz der eigenen Privatsphäre zu investieren. Hören Sie nicht auf Menschen die nur wissen wo Sie klicken oder wischen müssen, sondern hören Sie auf Spezialisten, die wirklich die Funktionalität im Detail verstehen. Nur wenn Ihnen jemand im Detail erklären kann, wie die Dinge funktionieren und was beim Klicken oder Wischen im Hintergrund passiert, bzw. passieren soll,  ist die Aufkunft etwas wert und die Person ist als Spezialist einzustufen.

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:

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 free, secure and Open Source Element Messenger (https://element.io) box to send a message!

Help or answering questions ONLY in this room!

Blog Entries on CPV.Agency

Post in Deutsch:

Post in English:

Neue Plattform für Ready-to-Go Blogs mit Zahlungsfunktion und Paywall

For English please scroll down.

Für neue technische Blog Einträge nutze ich ab sofort auch die neue CPV.Agency Plattform. Nach ersten Tests hat sich gezeigt, dass es dort sehr einfach möglich ist die Beiträge, auch in mehreren Sprachen, zu verwalten. Zusätzlich ist es möglich sehr aufwändige Beiträge in die Silber oder Gold Kategorie einzureihen und damit einen Unterstützung zu erhalten. CPV.Agency ist vollkommen ohne Tracker und Werbung aufgebaut und respektiert die Privatsphäre von Bloggern und Besuchern im vollen Umfang.

Das Blog ist aktuell im Aufbau, jedoch bereits unter

https://cpv.agency/kmjblog/

erreichbar.

English

To make it easier to post new blog posts, especially multi language ones, I have chosen to also use the new CPV.Agency for the blog. Furthermore it is possible to add some of the posts into Silver or Gold category to receive support of the readers. CPV.Agency is built without any tracker or ads and fully respects the privacy of bloggers and visitors.

The blog is currently setup but already reachable at

https://cpv.agency/kmjblog/

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

NEUE VERSION DES ARTIKELS FINDET SICH HIER:

Deutsch: https://cpv.agency/kmjblog/2020/12/07/am-android-tablet-oder-smartphone-mit-lineageos-fuer-sicherheit-und-privatsphaere-sorgen/

English: https://cpv.agency/kmjblog/en/2020/12/07/am-android-tablet-oder-smartphone-mit-lineageos-fuer-sicherheit-und-privatsphaere-sorgen/

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 5

Upgrade auf LineageOS 17.1 (Android 10 basiert) und Custom Script Erweiterung um den DNS außerhalb des Home WLAN’S über Orbot (Tor) zu routen).

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/). Teil 4 (https://kmj.at/android-lineageos-privacy-teil4/) beschäftigt sich mit

Zwischenzeitlich kann LineageOS auch als virtuelle Maschine betrieben werden (https://kmj.at/betrieb-einer-virtuellen-maschine-vm-mit-lineageos-android-unter-proxmox/).

Im Teil 4 ging es bereits 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.

Nun wollen wir jedes DNS Leak außerhalb des Home WLAN’s unterbinden und die DNS Abfragen über Tor umleiten.

Schritte:

  • Sichern der Apps und Daten am besten mit Titanium
  • Installation von LineageOS 17.1 laut Project Webseite am Gerät
  • Einrichten von Magisk zum rooten der Device
  • Setup von Afwall+ und Orbot
  • Rücksichern von Apps und Einstellugnen mit z.B. Titanium

Der komplette Vorgang war absolut unproblematisch. Es gab nur ein Problem, dass ein Problem geschaffen hat. Im F-Droid Store ist AFWall+ in der Version 3.4.x verfügbar und diese Version hat Probleme mit LineageOS 17.1 am Mobile Interface.

Die Installation des 3.5.x Paketes, welches auf Github (https://github.com/ukanth/afwall/releases) zur Verfügung steht, löste das Problem und nun sind wirklich auch alle Cor und System Prozessen ohne Internet Zugang.

Durch das Custom Script haben alle Apps Zugang zu meinen Servern (Statische IPs) und benötigen keine Freigabe in AFWall+! Alle Browser und der Updater erhalten Wifi,Mobile und Tor als Freigaben, damit wird der komplette Traffic über Tor (Orbot) geroutet.

Einige wenige Ausnahmen erhalten Wifi und Mobile und können direkt ins Internet.

Damit ist die Device sehr gut geschützt. Nur ein DNS leak Risiko bleibt, sobald wir uns im mobilen Datennetz (3G,4G,5G) befinden. Im Home Wlan sind wir mit Pi-Hole und Pfsense, incl. DNS-over-TLS forwarding zu eigenen, externen DNS Servern gut geschützt. Im mobilen Datennetz sind wir von dem jeweiligen Netz Provider abhängig, welcher DNS zuweisen kann und auch einen transparenten DNS Proxy mit Mitlesefunktion einrichten kann. Dies wollen wir verhindern.

DNS am rmnet[*] über Orbot DNS Port 5400 umleiten

Das mobile Daten Interface heisst rmnet0. Wir müssen nun die ausgehenden Pakete, welche unser Gerät über rmnet0 zu einer IP und deren Port 53 verlässt so umleiten, dass wir den von Orbot auf 127.0.0.1 Port 5400 angebotenen DNS verwenden. Dieser wird dann verschlüsselt über Tor geleitet.

AFWALL+ Custom Script erweiter

Wir ändern das Script aus Teil 4, 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

# TEIL5 DNS over Tor
# allow connections to p5400 then nat
# Force dns to use orbots port 5400 for rmnet[*] interface
$IPTABLES -A "afwall" -d 127.0.0.1 -p udp --dport 5400 -j ACCEPT
$IPTABLES -t nat -I OUTPUT -o rmnet+ -p tcp --dport 53 -j DNAT --to-destination 127.0.0.1:5400
$IPTABLES -t nat -I OUTPUT -o rmnet+ -p udp --dport 53 -j DNAT --to-destination 127.0.0.1:5400
# END DNS over Tor

# 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.

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 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:

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. 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!

NEUE VERSION DES ARTIKELS FINDET SICH HIER:

Deutsch: https://cpv.agency/kmjblog/2020/12/07/am-android-tablet-oder-smartphone-mit-lineageos-fuer-sicherheit-und-privatsphaere-sorgen/

English: https://cpv.agency/kmjblog/en/2020/12/07/am-android-tablet-oder-smartphone-mit-lineageos-fuer-sicherheit-und-privatsphaere-sorgen/

Debian Linux mit Firejail absichern!

Für Debian Linux gibt es hier im Blog bereits eine extrem interessanten Artikel zum Bau eines Debian basierten InHouse NAS mit verschlüsseltem Software-Raid (https://kmj.at/2018-06-14-inhouse-nas-mit-verschluesseltem-software-raid-teil-1). Teil 2 wird hier bald erscheinen.

Zusätzlich finden sich hier im Blog viele Artikel über den Einsatz von Linux und Open Source bei Unternehmen und Privatpersonen. Stöbern Sie einfach durch das https://kmj.at/inhaltsverzeichnis/ und lesen Sie weitere Artikel. Am besten starten Sie hier https://kmj.at/erfahrungsbericht-nach-vollst%C3%A4ndiger-umstellung-des-betriebes-auf-open-source-software/

Für spezielle Anwendungsfälle gibt es im https://digitalbooks24.com/ Buchshop verschiedene E-Books.

Sollte Ihnen das Blog gefallen, freue ich mich, wenn Sie für das EURAFRI Non-Profit Projekt eine kleine Spende erübrigen können. https://eurafri.com/contactanddonate/

Ein kritischer Punkt in der Absicherung von IT Systemen, insbesondere von Arbeitsplätzen auf denen Benutzer ohne IT Kenntnisse arbeiten, sind sogenannte Zero-Day Exploits (https://de.wikipedia.org/wiki/Exploit) und Software die offen, oder auch versteckt über Webseiten, E-Mail, Messenger und ähnliches an Benutzer übermittelt wird.

Es gibt einige wenige Exploits wo der Benutzer gar nichts machen muss und dieser Schadcode ausgeführt wird. In den meisten Fällen klickt aber der Benutzer in einer durch ein kommerzielles Betriebssystem sehr verbreiteten - Weiter, Weiter, Ja, Ja, OK - Mentalität auf Fragen und führt damit den Schadcode mit seinen Berechtigungen selbst aus. Dabei wurde niemand gehackt, sondern ein Benutzer hat einfach jegliche Sorgfaltspflicht ignoriert und das System und eventuell auch Daten am Server vorsätzlich vernichtet.

Die Aufgabe verantwortungsvolle Administratoren und Benutzer ist es nun die System bestmöglich gegen diese Benutzerfehler abzusichern, ohne die Möglichkeit zu arbeiten zu weit einzuschränken. Generell gilt aber, Sicherheit geht vor technisch unqualifizierten Aussagen und Wünschen der Anwender. Wir haben hier alle Arbeitsplätze auf Debian Linux umgestellt, aber Firejail sollte auch für jedes andere Linux gleich funktionieren.

Bei Debian is Firejail in den offiziellen Packages, d.h. ein

sudo apt-get install firejail

erledigt die Installation in kürzester Zeit.

Nun sollten wir alle Programme, welche Daten im Internet zeigen, bzw. austauschen so absichern, dass kein Zugriff auf interne Ordner und Dateien möglich ist. Nur ein minimaler Zugriff über Download Ordner solle gegeben sein. Zusätzlich sollen gewisse Bereiche nicht ausführbar markiert sein, damit das Programm in der Firejail Sandbox keinen Schaden anrichten kann.

Firejail hat eine riesige Liste an Standardprogrammen, für welche bereits sehr gute Profile mitgeliefert werden. Da es immer wieder lokale Abänderungen gibt, wurde folgende Art der Einrichtung gewählt:

# Einrichtung eines Firejail Config-Ordners im Home Verzeichnis
mkdir ~/.config/firejail/
cd ~/.config/firejail/
# Erstellen eines Benutzer Profiles, welche Standard Einstellungen beinhaltet
touch 0_KMJ_block.profile
# Als erstes geben wir Firefox in eine Firejail Sandbox
touch firefox.profile

Nun setzen wir im Benutzer spezifischen Konfigurationsdatei die gewünschten Einstellungen, die je nach Benutzer unterschiedlich sein können. Ich habe z.B. folgende Einstellungen gesetzt:

Dazu editieren wir: 0_KMJ_block.profile

blacklist /opt
blacklist ~/VirtualBox*
blacklist ~/OwnCloud*
blacklist ~/.Private
blacklist ~/Private
blacklist ~/.thunderbird
blacklist ~/Software
blacklist ~/.mozilla
blacklist ~/.ssh
blacklist ~/.putty
blacklist ~/.xca
blacklist ~/.vnc
blacklist ~/.remmina
blacklist ~/.thinclient*
blacklist ~/.android
blacklist ~/.joplin
blacklist ~/TEMP
blacklist ~/.scribus
blacklist ~/.FBReader

Diese Einstellungen sind aber abhängig von den Ordnern im Benutzer Home Verzeichnis.

Nun wollen wir den Firefox so einschränken, dass ein eventuell angerichteter Schaden möglichst gering ist. Dazu editieren wir: firefox.profile

## firefox Profile
## KMJ (https://kmj.at)
## 20200719
## Version 1.00

## you are able to test with:
## /usr/bin/firejail --profile=~/.config/firejail/firefox.profile  /bin/bash
## or start Firefox with (1 line!, Usinge Firefox ESR here)
## /usr/bin/firejail --profile=~/.config/firejail/firefox.profile  /usr/lib/firefox-esr/firefox-esr %u

###################################################################
## we include package firefox.profile and our standard config
## blacklist a additional folder too
###################################################################

include /etc/firejail/firefox.profile
include ~/.config/firejail/0_KMJ_block.profile
blacklist ~/Bilder*

Neue Konfigurationen sollten immer getestet werden. Dazu startet man firejail mit der bash:

/usr/bin/firejail --profile=~/.config/firejail/firefox.profile  /bin/bash
Reading profile /home/user/.config/firejail/firefox.profile
Reading profile /etc/firejail/firefox.profile
Reading profile /etc/firejail/whitelist-usr-share-common.inc
Reading profile /etc/firejail/firefox-common.profile
Reading profile /etc/firejail/disable-common.inc
Reading profile /etc/firejail/disable-devel.inc
Reading profile /etc/firejail/disable-exec.inc
Reading profile /etc/firejail/disable-interpreters.inc
Reading profile /etc/firejail/disable-programs.inc
Reading profile /etc/firejail/whitelist-common.inc
Reading profile /etc/firejail/whitelist-var-common.inc
Warning: networking feature is disabled in Firejail configuration file
Reading profile /home/user/.config/firejail/0_KMJ_block.profile
Parent pid 13973, child pid 13974
Warning: An abstract unix socket for session D-BUS might still be available. Use --net or remove unix from --protocol set.
Post-exec seccomp protector enabled
Seccomp list in: !chroot, check list: @default-keep, prelist: unknown,
Child process initialized in 116.44 ms
bash: /usr/share/bash-completion/bash_completion: Datei oder Verzeichnis nicht gefunden
$

Nun ist der Zugriff auf Dateien massiv eingeschränkt. Das Firefox Standard Profil lässt nur den Download Ordner im Home Verzeichnis zu und schützt damit andere Dateien vor einem Befall durch Ransom, Trojaner und Viren. Weiters darf in dieser Sandbox im Download kein Programm ausgeführt werden. Das erhöht den Schutz zusätzlich.

Wenn dementsprechend getestet, dann stellen Sie alle Starter in der Leiste, bzw. am Desktop auf:

/usr/bin/firejail --profile=~/.config/firejail/firefox.profile  /usr/lib/firefox-esr/firefox-esr %u

um. Theoretisch können Sie auch im /usr/local/bin eine Datei firefox-esr (755) mit diesem Inhalt anlegen.

Das funktioniert aber nur, wenn sichergestellt ist, dass /usr/local/bin vor /usr/bin im Path zieht:

PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

Sicherer ist es die Starter zu ändern und zu wissen, wo Firefox in der Sandbox gestartet wird. Andernfalls kann bei Änderung des Path die Firejail Wirkung ohne Warnhinweis verloren gehen.

Nach dem Start von Firefox gehen Sie unter Datei->Öffnen und prüfen im Datei Browser noch einmal, dass alles gesperrt ist. Damit haben wir die Sicherheit beim Browsen im Internet dramatisch erhöht und insbesondere die Gefahr eine Ransom Verschlüsselung des Dateisystems ist nun extrem reduziert.

Nachdem das mit Firefox so gut funktioniert, stellen wir weitere Programme in eine Sandbox. Insbesondere bei der Verwendung von AppImages empfiehlt sich die Verwendung von Firejail.

Deltachat Appimage

Dazu laden wir das AppImage, hier das Deltachat AppImage in ein Verzeichnis im

# Download nach:
/opt/Firejail/deltachat/Software/DeltaChat.AppImage
chown ihrbenutzer:ihregruppe /opt/Firejail/deltachat/Software/DeltaChat.AppImage
chmod 750 /opt/Firejail/deltachat/Software/DeltaChat.AppImage

Danach erstellen wir das Profil:

Hilfe findet man hier:

https://man7.org/linux/man-pages/man5/firejail-profile.5.html

oder in der Shell mit dem

man firejail-profile

Kommando.

Erstellen der Datei: deltachat.profile

## Deltachat Profile
## KMJ (https://kmj.at)
## 20200719
## Version 1.00

## you are able to test with:
## /usr/bin/firejail --profile=~/.config/firejail/deltachat.profile  /bin/bash
## or start with (1Line!)
## /usr/bin/firejail --profile=~/.config/firejail/deltachat.profile  --appimage /opt/Firejail/deltachat/Software/DeltaChat.AppImage

###################################################################
## NOTES:
## you must d/l the appimage to /opt/Firejail/deltachat/Software
###################################################################

noblacklist ${HOME}/.config/DeltaChat
noblacklist ${HOME}/.cache

noblacklist /opt/Firejail/deltachat
blacklist   /opt

## Disable access
include /etc/firejail/disable-common.inc
include /etc/firejail/disable-programs.inc
include /etc/firejail/disable-passwdmgr.inc
include /etc/firejail/disable-devel.inc
include /etc/firejail/disable-exec.inc
include /etc/firejail/disable-interpreters.inc
include /etc/firejail/disable-programs.inc

## Security filters
caps.drop all
netfilter
nodvd
nonewprivs
noroot
protocol unix,inet,inet6
nogroups
shell none

## Filesystem
disable-mnt
private-cache
private-tmp
private-dev
private-etc resolv.conf

private-bin bash,sh,grep,tail,env,gpg,id,readlink,dirname,test,mkdir,ln,sed,cp,rm,getconf

private /opt/Firejail/deltachat

# Blacklist
blacklist /boot
blacklist /mnt
blacklist /media
blacklist /root
blacklist /srv


RIOT.im / Element.io / Matrix.org

Danach mit der bash wieder testen und dann den Starter von Deltachat ändern. Natürlich sollen auch Electrum, Linphone, Midori, Thunderbird, vlc und andere in eine Sandbox.

Da immer mehr Unternehmen und Benutzer auf Element/Riot umsteigen und proprietäre Datensammel-Messenger verbieten will ich hier aber noch zeigen, wie man den von Millionen benutzten, extrem beliebten, sicheren, kostenlosen, Open Source Messenger Riot.im (seit July 2020 jetzt Element.io) in eine Sandbox gibt.

Der Element Matrix Client installiert sich unter /opt/Element. Für unsere Profile benötigen wir noch:

mkdir -p /opt/Firejail/element/.cache
mkdir -p /opt/Firejail/element/.config
mkdir -p /opt/Firejail/element/.local
mkdir -p /opt/Firejail/element/Transfer

Wir reichten es so ein, dass der Messenger nur auf das Transfer Verzeichnis zugreifen darf. Bilder die hochgeladen werden müssen vorher dort hinein kopiert werden. Speichern geht nur in dieses Verzeichnis. Danach weg kopieren, wo auch immer der endgültige Speicherort ist.

HINWEIS: Sollte der Element Matrix Client bereit installiert sein, einfach stoppen und die Verzeichnisse ~/.config/Element* nach /opt/Firejail/element/.config verschieben.

Danach das element.profil anlegen:

## Element Profile
## KMJ (https://kmj.at)
## 20200719
## Version 1.00

## you are able to test with:
## /usr/bin/firejail --profile=~/.config/firejail/element.profile  /bin/bash
## or start with
## /usr/bin/firejail --profile=~/.config/firejail/element.profile  /opt/Element/element-desktop --profile=MultiProfileName
##  --profile=MultiProfileName is optional

###################################################################
## NOTES:
## home is /opt/Firejail/element
###################################################################

noblacklist ${HOME}/.cache/element
noblacklist ${HOME}/.config/element
noblacklist ${HOME}/.local/share/element

noblacklist /opt/Firejail/element
blacklist /opt/Firejail

## Disable access
include /etc/firejail/disable-common.inc
include /etc/firejail/disable-programs.inc
include /etc/firejail/disable-passwdmgr.inc
include /etc/firejail/disable-devel.inc
include /etc/firejail/disable-exec.inc
include /etc/firejail/disable-interpreters.inc
include /etc/firejail/disable-programs.inc

## Security filters
caps.drop all
netfilter
nodvd
nonewprivs
noroot
protocol unix,inet,inet6
nogroups
shell none

## Filesystem
disable-mnt
private-cache
#otherwise we have no icon in taskbar
#private-tmp
private-dev
private-etc resolv.conf,localtime

private-bin bash,sh,grep,tail,env,gpg,id,readlink,dirname,test,mkdir,ln,sed,cp,rm,getconf

private /opt/Firejail/element

# Blacklist
blacklist /boot
blacklist /mnt
blacklist /media
blacklist /root
blacklist /srv

Und auch hier wieder testen, testen, testen und danach erst den Starter ändern.

Dieser Beitrag zeigt, dass es mit sehr geringem Aufwand möglich ist die Sicherheit massiv zu erhöhen. Bei einem Rollout für verschieden Systeme und mehrere Benutzer bietet sich eine Verteilung über NFS oder SMB basierte Home-Verzeichnisse, bzw. eine Verteilung über Owncloud (https://kmj.at/professionelle-zusammenarbeit-einfachstes-handling-und-gesch%C3%BCtzter-austausch-von-dateien-mit-owncloud/) an.

Damit ist es Administratoren möglich die Verwaltung zentral durchzuführen und den Aufwand zu reduzieren.

Natürlich ist mehr Sicherheit im Vorfeld etwas mehr Aufwand und das Warum sollte auch den Benutzern in einer Schulung erklärt werden. Wenn Benutzer das “Warum” verstehen wird mit der sicheren Lösung gerne gearbeitet.

Und ein Befall mit Verschlüsselungs- / Crypto- / Ransom-Software erzeugt einen Aufwand der brutal höher ist.

Sind Sie sicher, dass Sie ein ausgelagertes Backup haben, mit welchen Sie vom Stand 0 Ihre IT wieder herstellen können?

Sie sehen, der geringe Aufwand für mehr Sicherheit steht in keiner Relation zu einem Befall.


Infos & Support

Riot.im Räume:

Ich habe in der Matrix (kostenlos, Open Source) einen Raum eingerichtet in dem ich mich mit Freunden und netten Menschen austausche. Freundliche Menschen mit netten Umgangsformen, deutsch oder englisch sprechend, sind dort gerne willkommen.

  • Public room KMJ & friends (EN/DE) in der Matrix: #kmj:matrix.ctseuro.com
  • Eintreten durch Eingabe von /join #kmj:matrix.ctseuro.com in Ihrem Element Matrix Client (Riot).

Element.io / Riot.IM Info

INFO Im July 2020 wurde Riot.im in Element https://element.io/ umbenannt. Es handelt sich um eine reine Namensänderung bei gleichbleibenden Funktionen des Matrix Clients.

Anleitung:

https://kmj.at/riot-im-messenger-kurzanleitung-fuer-benutze-updated/

Profi Support

  • Professionelle Hilfe bei Open-Source Lösungen bietet seit 1985 die CTS GMBH https://cts-solutions.at (professionelle IT Lösungen seit 1985!)

Worldwide - FOSS preferred - IT-Support project launched!

Originally posted on the site of my EURAFRI project:

https://eurafri.com/en-eurafri-non-profit-blog-worldwide-foss-preferred-it-support-project-launched/

The Idea

Lot of people loosed their jobs or contracts during Corona time and now have problems to find new customers or jobs to make a living. Karl founded CTS (https://CTS.at) in 1985 and co-founded EURAFRI Networking (https://EURAFRI.com) in 2019. He worked very successful in 15 countries, has lot of contacts and is experienced in local and global projects.

As a long time Open Source (FOSS) fan Karl also saw a lot of great people unable to fund their great FOSS projects, or make enough money for their living to be able to full time work on the project. Full-time job + FOSS project often leads to burn-outs and/or layoff of projects with a great future. Both is very bad and we should avoid that.

The idea is to create a wordwide remote and on-site IT-support platform supporting customers to successfully setup, maintain and upgrade their IT setups, especially the FOSS part of these projects. Furthermore this would give people a great chance to work together to handle bigger international projects and get trusted by customers.

Why it is interesting for customers

  • great selection of people to work with
  • easy to build teams
  • clear pricing structure
  • no risk if CTS escrow offer is used, even if international teams are built

Why it is interesting for job and contract seekers

  • great way to work with companies worldwide
  • possibility to work in international projects
  • making money as employee or working self-employed
  • clear pricing structure, no 5$ projects
  • possibility to use escrow to make customers and yourself feel comfortable

Helping FOSS projects

  • Project members should donate a percentage of their income to FOSS projects to help the maintainers to work full-time on their projects. Also EURAFRI will donate parts of the membership fee and donations to FOSS projects.

The Basics

The final idea is to build a world wide IT support and service offering directory including all self-employed offers and job seekers. Furthermore customers are able to post their projects in it. It is required that there is a serious payment for the project or job. No 5$ or other “I am cheaper” projects are allowed. Customers are willing to pay a serious price for high quality service. Pricing will be public available in the directory.

Easy handling via EURAFRI Non-Profit Organization

To be within the law Karl suggested that the Platform is built as EURAFRI project and posting to the platform is available to all EURAFRI members for free. Read access should be allowed for the public. Letting only EURAFRI members post also removes the problem with spam and anonymous service offering, which are also not welcome at serious customers. They want to know the people they work with and because we are based in the EU it is a legal requirement too.

Secure for both sides of the contracts

CTS, as 1985 founded EU company based in Austria and Germany will offer a escrow service to give everybody the chance to work with international customers. Escrow will be available as IBAN and SWIFT Bank account service. Means customers pays into the escrow and money is released after the job is done. That way customer has a long term company as escrow partner to make sure they are not scammed and members working for them are sure to receive the payment if the job is done. Escrow is optional, but will help a lot to make customers feel comfortable.

Communication

We will communicate using Riot/Matrix which has proven as great tool for end-to-end encrypted, decentralized collaboration. EURAFRI already has a Matrix server setup for its members. So it is easy to use it for all members on Linux, Mac, Windows, Android and IOS.

Furthermore the EURAFRI forum could be used for detailed offerings.

Billing and Payments

Billing and payments are done between the EURAFRI members. EURAFRI does not charge a fee for any business the EURAFRI members does. It is your business, so it is your money. EURAFRI is founded as Austria based Non-Profit organization and the operation is funded by memberships and donations only.

If the escrow service is used a fee is charged by CTS to handle banking (transfer charges, …) and legal (bookkeeping, lawyers, tax,…) costs. There will be a price list for it, after the project is setup. But escrow is optional and there is no requirement to use it.

Contact

If you are interested and want to be part of the “Worldwide - FOSS preferred - IT-Support project” feel free to contact Karl via Riot (https://eurafri.com/info-whatsinside-riot/) at

karl@matrix.eurafri.com

to get invited to the projects rooms. Please remember we are in time zone UTC+2 and our opening times are MO-DO 09:00-17:00 and FR 09:00-12:00.

Next steps

As soon as we have 20 project members we will decide about the directory software and finally launch the project.

Follow us

We offer:

to follow our growing project.

Join us! We need you to complete our mission!

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

Es wurde ein Teil 5, Upgrade auf LineageOS 17.1 hier https://kmj.at/android-lineageos-privacy-teil5/ veröffentlicht.

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!

Betrieb einer virtuellen Maschine (VM) mit LineageOS (Android) unter Proxmox

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

Es gibt hier im Blog bereits 3 Teile ( https://kmj.at/android-lineageos-privacy-teil3/ ) die sich mit der Umstellung von Mobiltelefonen und Tablets auf LineageOS beschäftigen. Für verschiedene Anwendungsgebiete wurde nun nach einer Lösung gesucht, welche den Betrieb eines virtuelles Telefons ermöglicht, ohne ein physisches Telefon zu benötigen.

Die komplette Virtualisierung wurde bereits auf Proxmox unmgestellt, diese Anleitung funktioniert aber auch mit VMWare, VirtualBox und anderen Produkten zur Virtualisierung. Wir verwenden Proxmox da es den Open Source Gedanken voll weiter trägt.

Auf der Suche nach einer geeigneten Lösung wurde das Android-x86 Projekt gefunden ( https://www.android-x86.org/ ). Dieses bietet verschiedene Android und LineageOS Versionen zum Download an (Stand Mai 2020):

Die Entscheidung fiel auf die CM-x86-14.1-r4 Version, welche LineageOS 14.1 ist. Auch wenn Mobiltelefone und Tablets bereits auf 16.1 (Android 9, Pie) umgestellt wurden, ist die 14.1 (Android 7.1, Nougat) eine sehr stabile Version, mit welcher alle Einsatzgebiete abgedeckt wurden. Die Anleitung sollte aber für alle Versionen ident sein.

Das 64-Bit Iso mit dem Kernel 4.19 wurde herunter geladen:

  • 64-bit ISO with kernel 4.19:  cm-x86_64-14.1-r4-k419.iso

und danach als Boot ISO für die virtuelle Maschine verwendet und eine Installation vorgenommen.

Die virtuelle Maschine erhielt 2 Cores, 4GB RAM und 8 GB Harddisk.

Hinweis Das Tastaturlayout in der Konsole ist en-US und die Pfeiltasten wirken nicht. Es sollte zum weiterspringen die TAB Taste verwendet werden.

Hinweis Das Maus-Wheel funktioniert fast durchgehend für scrollen.

WICHTIG Bei der Installation, da Pfeiltasten nicht funktionieren, mit der I Taste auf Instalation springen!

Wie in den E-Books

beschrieben, betreibe ich ein abgeschirmtes virtuelles Tor Netzwerk. In diesem Fall sollte das virtuelle WLAN mit dem Privoxy dieses Netzwerkes eingerichtet werden. Damit ist es möglich, den kompletten Internet Zugriff der virtuellen Maschine, ohne jede Möglichkeit eines IP Leaks, über das Tor Netz einzurichten.

Das virtuelle WLAN ist im Normalfall auf DHCP eingestellt und funktioniert in einem Netz mit DHCP Server reibungslos.

Nach Abgeschlossener Installation erscheint das LineageOS Startbild in der Konsole:

Mit Start->Einstellungen erreicht man die Einstellungen für das virtuelle WLAN, welches eine Verbindung mit der zugewiesenen Netzwerkkarte der VM ist. Hier kann man IP Daten und den Proxy einstellen.

Danach ist die Basisinstallation abgeschlossen. Wenn die VM z.B. hinter einem zentralen Tor Router betrieben wird, sollte noch eine Prüfung der IP erfolgen.

Für die weiteren Schritte sollte di Installation von Apps aus unbekannten Quellen erlaubt werden.

Das wichtigste Paket ist nun der F-Droid Store um ohne Anmeldung bei Google die notwendige Software installieren zu können. Die Adresse ist https://f-droid.org

Danach über Start->Dateien in den Downloads Ordner wechseln und das Paket installieren. Dabei können 2-3 Fragen, ob man das wirklich will gestellt werden. Diese müssen mit Ja beantwortet werden.

Nach dem Start von F-Droid werden die Paketquellen aktualisiert und danach erscheint die Anzeige der verfügbaren Programme (Apps).

Hinweis Wenn man den Google Play Store nicht verwendet, sollte man Google Play Protect abschalten! Andernfalls kann es Installationsfehler geben.

WICHTIG Bei einer Installation die die Verwendung eines Proxies benötigt, wie z.B. die Tor Installation, bzw. gut abgesicherte Netzwerke, dann unter Optionen den Proxy eintragen. Durch “nach unten ziehen - Maus Linksklick halten und nach unten ziehen” Paketlisten noch einmal aktualisieren.

Danach erscheinen dann die verfügbaren Programme.

Rooten des Gerätes

Sollten Programme (Apps) root benötigen:

Kurzanleitung:

  • Start->Einstellungen->Über das Tablet klicken
  • Runterscrollen zur Build-Nummer
  • 7-Mal auf die Build Nummer klicken
  • Unten erscheint: “Sie haben die Entwickler Services aktiviert”
  • Nun über das Menü (drei Striche links) Entwickleroptionen aufmachen
  • Root Zugriff auf “Nur Apps” stellen

Firewall installieren

Natürlich wollen wir auf der Device auch die volle Sicherheit einer IpTables Firewall, welche ein- und ausgehenden Traffic blockt. AFWall+ ist die perfekte Firewall und da die Device bereits gerooted ist, können wir die Firewall auf dem F-Droid Store gleich installieren. Für Firewall Anfänger empfiehlt es sich die Dokumentation zu lesen.

Damit ist der erste Teil der Testreihe abgeschlossen und man hat die Basis für virtuelle Setups von Android Software, bei Bedarf durch Tor geschützt und natürlich ohne SIM Karte oder Account bei einem Anbieter.

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 welcome!