staging.inyokaproject.org

6. Dezember 2019

Nachdem ich jahrelang Google Drive (Schande über mich) als Cloud Speicher für einige Dinge genutzt habe, habe ich mich in den letzten Wochen nach einer sicheren Alternative umgeschaut. Ich habe mich für Tresorit entschieden. Da dieses ein bezahlter Cloud Anbieter ist, werde ich nichts weiter dazu erläutern, weil ich keine Werbung hier machen möchte. Jeder soll hier sich für seinen Anbieter entscheiden.

Download Linuxclient

Einer der wichtigen Punkte warum ich mich für Tresorit entschieden habe, war das es einen vollwertigen Linux Client gibt. Dieser kann über die Webseite heruntergeladen werden:

Download Linux Client

Installation

Die Installation des Clients ist sehr einfach, da es sich um einen run Script handelt. Dazu werden wir einfach das Script ausführbar machen:

chmod +x tresorit_installer.run

Danach einfach als Nutzer die Installation ausführen:

./tresorit_installer.run

Die Installation hat bei mir nur knapp 5 Sekunden gedauert und keine Abhänigkeiten gehabt. Es erscheint nur eine kleine Warnung beim ersten Start:

Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.

Das war es auch schon.

5. Dezember 2019

Nach dem Start von Mozillas VPN-Erweiterung für Firefox im September dieses Jahres hat Mozilla nun den Start der kostenpflichtigen Beta für sein systemweites VPN bekannt Firefox Private Network gegeben, zunächst für Nutzer von Windows 10 in den USA. Andere Desktop-Plattformen, iOS, Android und Chromebook folgen bald, ebenso die Ausweitung auf andere Länder.

Was ist Firefox Private Network?

Mozilla baut sein Produkt-Portfolio rund um das Thema Privatsphäre unter der Firefox-Marke weiter aus. Nicht nur der Firefox Browser hat in den letzten Monaten verstärkt Privatsphäre-Verbesserungen erhalten, auch wurde mit Firefox Lockwise ein Passwort-Manager für Android und iOS entwickelt und mit Firefox Monitor gibt es einen Dienst, welcher überprüft, ob die eigene E-Mail-Adresse schon einmal Teil eines bekannten Datenlecks geworden ist. Firefox Private Network ist der neueste Mozilla-Dienst dieser Kategorie. Es handelt sich dabei um ein sogenanntes Virtual Private Network, oder kurz: VPN.

Firefox Private Network verfolgt primär zwei Ziele. Zum einen soll sämtlicher Verkehr verschlüsselt werden, um so sensible Daten wie Passwörter, E-Mails oder Kreditkarteninformationen vor Angreifern zu schützen. Zum anderen wird aber auch gezielte Werbung erschwert, da der tatsächliche Standort vor Websites und Werbe-Netzwerken versteckt wird.

Neben der Verbesserung des Angebots, um die Privatsphäre der Nutzer zu verbessern, ist das Firefox Private Network auch Teil von Mozillas Strategie, unabhängiger von den Einnahmen durch Suchmaschinen zu werden. Stand 2018 kommen 91 Prozent von Mozillas Einnahmen durch Suchmaschinen.

Firefox Private Network als Firefox-Erweiterung

Im September 2019 hat Mozilla die öffentliche Betaphase des Firefox Private Network als Erweiterung für den Firefox Browser für Nutzer in den USA gestartet. Der Vorteil dieser Lösung: Die Installation ist einfach, funktioniert auf jedem Desktop-System und kann innerhalb des Browsers per Knopfdruck an- und ausgeschaltet werden. Dafür kann die Firefox-Erweiterung natürlich nur den Datenverkehr schützen, welcher innerhalb des Browsers anfällt.

Für das VPN via Firefox-Erweiterung arbeitet Mozilla mit Cloudflare zusammen.

Die kostenlose Firefox-Erweiterung enthält ab sofort zwölf Pässe pro Monat, welche jeweils für eine Stunde gültig sind.

Firefox Private Netwerk als systemweites VPN

Für Nutzer in den USA ist ab sofort die Voranmeldung zur kostenpflichtigen Betaphase von Mozillas systemweiten VPN möglich. Damit wird nicht nur der Datenverkehr innerhalb von Firefox, sondern auf dem gesamten System geschützt, also auch für Nutzer von Google Chrome und anderen Browsern oder Anwendungen.

Firefox Private Network Windows-Client

Für das systemweite VPN arbeitet Mozilla mit dem schwedischen VPN Mullvad zusammen.

Der zeitlich limitierte Einführungspreis während der Betaphase beträgt 4,99 Dollar pro Monat. Es gibt eine 30-tägige Geld-zurück-Garantie. Der Nutzer kann einen Server aus über 30 Ländern auswählen und bis zu fünf Geräte verbinden.

Firefox Private Network Beta Preis

Mozillas systemweite VPN steht derzeit nur für Nutzer einer 64-Bit-Version von Windows 10 zur Verfügung. Die Unterstützung von Linux, Apple macOS, Apple iOS, Google Android sowie Google Chromebook soll bald folgen. Ebenso sollen bald auch Nutzer außerhalb der USA das Firefox Private Network nutzen können.

Firefox Private Network Beta Verfügbarkeit

Der Beitrag Firefox Private Network: Kostenpflichtige Beta von Mozillas systemweiten VPN erschien zuerst auf soeren-hentzschel.at.

Kaum etwas ist aktuell im Bereich des Linux Desktops zu umstritten wie die neuen Paketformate. Vorbei die Zeiten der Desktop Flamewars, nun geht es um die Art der Programminstallation. Doch gleich welches der beiden Formate sich durchsetzt oder ob es eine dauerhafte Koexistenz gibt - die klassische Paketverwaltung wird so nicht überleben.

Die Paketverwaltung gehört neben dem Kernel seit vielen Jahrzehnten zur DNA von Linux als Betriebssystem. Egal wie die Distribution hieß, egal welche Architektur sie bediente: Eine Form der Paketverwaltung gab es immer. Die Art und Weise der Richtlinien zur Paketierung gruppierte Linux Distributionen in Rolling Release oder Stable und formte damit identitätsstiftende Lager. Der Umgang mit einer Paketverwaltung war zu jeder Zeit der vereinende Rahmen um die fragmentierte Linux Familie und unterschied sie von den Alternativen Systemen Windows und macOS.

In dieses ausdefinierte Linux Ökosystem platzten vor einigen Jahren die neuen Formate, die heute als Snaps und Flatpaks firmieren. Anfangs belächelt, zogen sie in den vergangenen Veröffentlichungen in immer mehr Distributionen ein und nehmen in diesen zunehmend mehr Raum ein.

Die neuen Formate unterscheiden sich - simplifiziert ausgedrückt - von den bisherigen Systemen, weil sie ein Kernelement von Linux Distributionen abschaffen. Aufwändig aufgesplittete Software, in riesigen Abhängigkeitsbäumen mit vielen Dependenzen sollten mit ihnen der Vergangenheit angehören. Die neuen Formate beinhalten einen Großteil der benötigen Abhängigkeiten selbst und setzen lediglich sehr allgemeine Basis-Pakete voraus.

Das löste Widerstand aus, weil viele Linux Anwender Stolz darauf auf ihre schlanken Systeme sind und dass im Idealfall keine Bibliothek doppelt auf dem System vorhanden ist. Angesichts gegenwärtiger Fest- und Arbeitsspeicherkapazitäten aber ein nachrangiger Faktor, der vor allem der persönlichen Befriedigung dient.

Trotz der vielen und teilweise sicher begründeten Kritik gibt es kein zurück zum Status quo ante. Aus folgenden Gründen:

  • Hinter den neuen Paketen stehen mit Red Hat und Canonical zwei Firmen, die mit ihrer Innovationskraft seit Jahren Linux im Desktop- und Serverbereich formen. Sie ziehen ganze Schwärme an Derivaten mit sich. Es mag kleine gallische Dörfer wie Devuan geben, aber die Masse der Linux Anwender folgt diesen beiden Leuchttürmen.
  • Die meisten Linux Distributionen kämpfen mit sinkenden Zahlen bei den ehrenamtlich beitragenden Maintainern. Gleichzeitig hat sich die Zahl der Distributionen in den letzten Jahren nochmal massiv erhöht. Momentan muss ein und dieselbe Software für jede Distribution und jede Version derselben neu paketiert werden. Die neuen Formate müssen im Idealfall lediglich einmal gebaut werden.
  • Viele essenzielle proprietäre Softwareprodukte werden bereits jetzt bevorzugt in den neuen Formaten ausgeliefert aber auch freie Projekte z. B. Nextcloud haben den Wechsel bereits vollzogen.
  • Viele Paketverwaltungen sind vom Design Produkte des letzten Jahrhunderts. Moderne Distributionen wie Arch Linux haben hier Teils alte Zöpfe abgeschnitten aber viele Distributionen setzen auf wenig performante Verwaltungen, die zusätzlich einen komplizierten Bauprozess erfordern. Ein Paradebeispiel für diese Probleme ist das DEB Format mit seinen zahlreichen parallel existierenden Managern.
  • Die neuen Formate ermöglichen erweiterte Sicherheitskonzepte wie spezielle Zugriffsrechte, die den Anwendern bereits von mobilen Geräten vertraut sind.

Die klassische Paketverwaltung wird deshalb nicht sofort verschwinden. Mir fehlt zur Zeit die Fantasie um mir die Verwaltung des Basissystem mit den neuen Formaten vorzustellen. Im Bereich der Desktopumgebungen und Programme ist der Wechsel aber nicht mehr aufzuhalten.


Bilder:
Einleitungs- und Beitragsbild von harshahars via pixabay

"

Wer bei dieser Überschrift an eine politische Partei denken mag liegt zumindest hier falsch. Diese drei Begriffe bezeichnen meiner Meinung nach die öffentlich in den (deutschen) Kommentarspalten (z. B. bei Pro-Linux, Heise und Golem), sowie in diversen Foren auftretende Linux-Gemeinschaft.

Ich hatte mich dazu kürzlich schon mal geäußert (siehe: Linux Anwender - Nörgeln bis das Ende kommt) und daher in den letzten Wochen die Kommentarspalten in dieser Hinsicht überflogen. Das jüngste Beispiel fand sich im Artikel zu Veränderungen bei Flatpak. Die neuen Paketformate gehören neben allem was von Lennart Poettering stammt zu den größten Hassobjekten einer reaktionären Nutzergemeinschaft, die im Internet immer zahlreicher auftritt.

Ich möchte an dem Beispiel mal kurz auflisten was man alles in den Kommentaren lesen darf:

Hinter Veränderung wird Zentralismus und Abkehr von den Idealen freier Software gewittert, gepaart mit schönen Verschwörungstheorien, weil Red Hat jetzt zu IBM gehört. Aber nicht nur Red Hat und IBM sind böse, nein die GNOME Foundation ist es auch. Gelder würden schließlich in irgendwelchen gerichtlichen Auseinandersetzungen versinken oder die Software gleich von der NSA unterwandert werden. Nebenei wird man natürlich wie Windows und bekommt deshalb wahlweise eine DLL Hölle oder noch schlimmer: Ein Mainstream-taugliches System. Schutzmaßnahmen der Software sind nur für Idioten, echte Linux-Anwender haben das nicht nötig etc. pp.

Dahinter stehen Verschwörungstheorien, sowie Denkweisen und Argumentationsmethoden, die vor allem im Rechtspopulismus seit Jahren Konjunktur haben. Viele Linux Nutzer lehnen große soziale Netzwerke ab, aber die Diskussionskultur ist teils schlimmer, als in den schlimmsten braunen Schlammgruben auf Facebook oder Twitter. Ich muss mich daher leider selbst korrigieren. Die online sichtbar auftretende Linux Community nörgelt nicht nur, sie ist von Hass zerfressen. Es fehlt in der Breite lediglich das persönliche Element, wobei die Anfeindungen gegen Personen wie Lennart Poettering nicht mehr weit davon entfernt sind.

Diese Kommentare sind nicht neu, aber seit einigen Jahren gibt es zunehmend weniger Gegenrede in den öffentlichen Diskussionen. Die Plattformbetreiber haben es durch die Abwesenheit einer Moderation größtenteils erfolgreich geschafft ihre Portale zu Plattformen des Hasses, der Überheblichkeit, unreflektierten Ablehnung des Fremden und Neuen und absoluter Selbstbezogenheit einer schrumpfenden Gemeinde werden zu lassen. Neuerungen, Änderungen oder jede Form von Entwicklung wird meist rundheraus abgelehnt. Ikonen der GNU- und Linux Szene - gleich welche Verfehlungen sie begangen haben - in den Himmel geschrieben. Ein unmöglicher Umgangston gar zu einem Stil verklärt. Entwickler und Anwender, die das anders sehen ziehen sich scheinbar zunehmend zurück oder wechseln gar zu anderen Plattformen um sich dem nicht mehr auszusetzen.

Das öffentliche Auftreten der Linux Gemeinde ist - gelinde gesagt - abstoßend (intern sieht das in vielen Projekten nicht anders aus). Entwickler wandern ab, Blogger ziehen ihre Artikel aus großen Planeten ab, Kommentatoren stellen das Kommentieren ein.

Nur mal so zum Nachdenken.


Bilder:
Einleitungsbild und Beitragsbild von von geralt via pixabay 

"

Die Entwickler von elementaryOS haben mit "Hera" eine Aktualisierung der aktuellen Veröffentlichung 5 herausgebracht. Im wesentlichen bündelt die neue Version die Neuerungen der letzten Jahre und integriert den jüngsten HWE-Stack in die Installationsmedien. Sie wirft aber gleichzeitig ein Schlaglicht auf eine gereifte Distribution.

Elemenetary OS basiert auf der jeweiligen Ubuntu LTS. Die neue Version 5.1 basiert wie ihre Vorgängerversion auf der LTS 18.04. Die neue Version bietet in den Paketquellen daher keine neuen Versionen der vielen Drittanbieterprogramme. Lediglich den von Ubuntu gepflegten HWE-Stack integriert man nun in die Installation. Bisher blieb elementary OS standardmäßig bei der Kernel Version 4.15, die ursprünglich in Ubuntu 18.04 enthalten war. Durch diese Änderung ermöglichen die Entwickler eine reibungslose Installation auf neuerer Hardware.

Der Blogartikel zur Veröffentlichung zeigt ansonsten sehr schön bebildert die wesentlichen Entwicklungsschritte von elementary OS im letzten Jahr, seit man die Version 5 herausbrachte.

Es gibt einen neu designten Loginscreen, der sehr sehenswert ist und nach der Installation eine informative Einführungsroutine, in der man einige zentrale Einstellungen vornehmen kann. Hinzu kommen viele kleine Änderungen an den eigenen Apps wie dem AppCenter, der Dateiverwaltung, dem Kalender und vielem mehr.

Besonders signifikant ist jedoch die Integration von Flatpak. Die Entwickler binden allerdings nicht Flathub ein, sondern kuratieren ihre eigene Sammlung, die auch über das AppCenter bereit gestellt wird.

Die Entwicklung neuer Paketformate ist immer noch sehr begrüßenswert um die Limitationen der klassischen Paketverwaltung zu überwinden (siehe: Kommentar: Flatpaks und Snaps - Ein Schritt in die richtige Richtung). Die Entscheidung für Flatpak ist allerdings eine riskante Wette der elementary-Leute. Die Ubuntu-Basis strebt Richtung Snap während das elementary-Derivat die Gegenrichtung einschlägt. Das könnte noch zu Unvereinbarkeiten führen.

Interessant dürfte daher in Zukunft sein, ob elementary OS weiterhin Ubuntu als Basis die Treue hält oder sich ggf. umorientiert.

Ansonsten ist elementary OS eine der aktuell interessantesten Linux Distributionen im Desktop Bereich. Mit der voraussichtlich im nächsten Jahr erscheinenden Folgeversion erwäge ich eine Migration der aktuellen Kubuntu 18.04 Systeme auf eOS.


Bilder:
Einleitungs- und Beitragsbild von stevepb via pixabay

"

4. Dezember 2019

Beim Senden einer Mail an eine Mail des Anbieters Freenet erhielt ich vom Mail-Server folgende Antwort:

host emig.freenet.de[2001:748:100:40::8:115]
said: 550-Inconsistent/Missing DNS PTR record (RFC 1912 2.1)
(exammple.org) 550 [2001:db8:a0b:12f0::1]:34865 (in reply to RCPT TO command)

Der PTR Resource Record, auf den hier verwiesen wird, ist ein wichtiges Element für Durchführung von Reverse DNS-Abfragen. Für die IPv4- und die IPv6-Adresse des Servers hatte ich einen solchen Eintrag gesetzt. Deshalb war ich etwas verwundert, dass diese Meldung gesendet wurde. Bei der Nachforschung stellte ich dann fest, dass der Server eine IPv4-Adresse besitzt, aber ein ganzes IPv6-Subnetz. Das ist nicht weiter verwunderlich, allerdings sendet Postfix nicht mit einer festen IPv6-Adresse, sondern nutzt irgendeine Adresse aus dem Subnetz. Werden die Einstellungen von Postfix geöffnet:

nano /etc/postfix/main.cf

findet sich dort der Eintrag:

inet_interfaces = all

Durch diesen Eintrag ist nicht genau festgelegt welcher IP-Adresse für das Senden genutzt wird. Hier sollten die genauen IP-Adressen festgelegt werden:

inet_interfaces = 82.91.44.12,2001:db8:a0b:12f0::1

Anschließend sollte Postfix neugestartet werden:

service postfix restart

Wird nun erneut eine Mail an den Freenet-Server geschickt, so kann es passieren, dass die Fehlermeldung erneut zurückgesendet wird. In einem solchen Fall muss noch einige Minuten bis Stunden gewartet werden, bevor der Freenet-Server die Mails entgegennimmt.

3. Dezember 2019

Mozilla hat mit Firefox 71 das letzte große Update des Jahres 2019 seines Browsers für Windows, Apple macOS und Linux veröffentlicht. Dieser Artikel fasst die wichtigsten Neuerungen zusammen – wie immer auf diesem Blog weit ausführlicher als auf anderen Websites.

Download Mozilla Firefox für Microsoft Windows, Apple macOS und Linux

Bild-in-Bild-Funktion ermöglicht Multitasking

Ein Video ansehen und gleichzeitig etwas anderes am Computer machen – Firefox macht’s möglich. Videos besitzen ab Firefox 71 eine Schaltfläche, um den Bild-in-Bild-Modus zu aktivieren. Damit wird das jeweilige Video vom Tab losgelöst und erscheint in einem eigenständigen kleinen Fenster. Dieses liegt über allen Anwendungen, d.h. Firefox muss sich nicht im Vordergrund befinden, um das Video zu sehen. Der Benutzer kann beispielsweise seine E-Mails in Thunderbird abrufen und gleichzeitig ein Video auf YouTube ansehen.

Die neue Funktion steht in Firefox 71 nur für Nutzer von Windows zur Verfügung und voraussichtlich ab Firefox 72, welcher Anfang Januar 2020 erscheinen wird, auch für Nutzer von Apple macOS und Linux.

Firefox 71

Neue Konfigurations-Oberfläche about:config

Firefox bietet unzählige Anpassungsmöglichkeiten für den Nutzer. Die für den Nutzer in den Einstellungen sichtbaren Einstellungen decken dabei nur einen geringen Teil ab. Über about:config findet man zahlreiche weitere versteckte Optionen zur Konfiguration.

Basierte das alte about:config noch auf der Mozilla-eigenen Oberflächen-Sprache XUL, ist die neue Oberfläche in Firefox 71 komplett mit moderner Webtechnologie entwickelt.

Firefox 71

Auch andere Teile von Firefox wurden in den letzten Monaten mit Webtechnologie neu entwickelt, unter anderem die Adressleiste sowie der Add-on Manager in Firefox 68 oder die Passwort-Verwaltung in Firefox 70.

Neuer Zertifikats-Betrachter

Infos zum TLS-Zertifikat einer Website hat Firefox bislang in einem separaten Fenter angezeigt. Mit Firefox 71 verschwindet das Fenster. Ab sofort verwendet Firefox einen neuen Zertifikats-Betrachter, welcher in einem Tab statt in einem separaten Fenster angezeigt wird und ebenfalls mit moderner Webtechnologie umgesetzt ist.

Firefox 71

Verbesserungen der Passwort-Verwaltung

Die Passwort-Verwaltung war bereits ein großes Thema in Firefox 70 mit der komplett erneuerten Oberfläche unter dem Firefox Lockwise-Branding. In Firefox 71 hat Mozilla weitere Verbesserungen vorgenommen.

So erkennt Firefox beim Ausfüllen von Passwörtern nun auch Passwörter, welche unter Subdomains der gleichen Haupt-Domain gespeichert sind. Und die Warnungen vor Datenlecks sind nun auch für Nutzer von Screenreadern zugänglich.

Entkoppelung von Firefox Account und Sync

Mozilla hat den Firefox Account und die Synchronisation mehr voneinander entkoppelt, um den Anwendungsfall zu unterstützen, in Firefox eingeloggt zu sein, ohne Browsing-Daten zu synchronisieren, da der Firefox Account mittlerweile mehr bietet als nur die Synchronisation. So gibt es beispielsweise seit Firefox 70 auf der Seite about:protections zusätzliche Informationen für eingeloggte Nutzer.

Firefox 71

Verbesserungen für Firefox-Erweiterungen (WebExtensions)

Natürlich gab es auch in Firefox 71 wieder Neuerungen für Entwickler von Firefox-Erweiterungen, unter anderem Verbesserungen der Downloads-API.

Eine Übersicht über diese und weitere Neuerungen für Erweiterungs-Entwickler gibt es hier.

Neuerungen bei den Entwickler-Werkzeugen

Schnellere Entwickler-Werkzeuge

Mozilla hat an der Performance-Schraube gedreht und die Geschwindigkeit der verschiedenen Werkzeuge zwischen acht und 15 Prozent verbessert, ein Konsolen-Test kam sogar auf eine gemessene Verbesserung von 40 Prozent.

Mehrzeilen-Modus für Webkonsole

Die Webkonsole hat einen neuen Mehrzeilen-Modus erhalten, welcher einen großen Texteditor seitlich des Ausgabebereiches aktiviert und so die Arbeit mit längeren Scripts vereinfacht.

Firefox 71

Blockieren von Ressourcen

Ein neues Feature im Netzwerkanalyse-Werkzeug erlaubt das einfache Blockieren von Ressourcen, um den Einfluss des Tracking-Schutzes oder den Ausfall von externen Diensten zu simulieren.

Firefox 71

Volltextsuche für Netzwerkanalyse

Weiter hat die Netzwerkanalyse eine Volltextsuche erhalten, über welche es möglich ist, die Inhalte der geladenen Ressourcen zu durchsuchen.

Firefox 71

Weitere Verbesserungen der Entwicklerwerkzeuge

Außerdem neu im Netzwerkanalyse-Werkzeug: Die Möglichkeit, WebSockets genauer zu untersuchen.

Bisher zeigte Firefox neben Farb-Definitionen bereits die Farbe visuell an. Dies ist ab sofort auch bei der Deklaration von CSS-Variablen der Fall.

Derzeit nur für Nutzer in den USA gibt es in den Entwickler-Werkzeugen ein neues Panel, welches Entwickler-spezifische Neuerungen der jeweiligen Firefox-Version anzeigt.

Weitere Informationen zu Verbesserungen für Webentwickler in Firefox 71 finden sich auf hacks.mozilla.org sowie in den MDN web docs.

Verbesserungen der Webplattform

Wie immer gibt es natürlich auch in Firefox 71 wieder neue Webstandards, welche von Firefox unterstützt werden, darunter die Unterstützung von CSS Subgrids – natürlich mit angepasstem Grid-Inspektor in den Entwickler-Werkzeugen -, die column-span-Eigenschaft für CSS Multi-column Layout, CSS clip-path: path() und die CSS-Eigenschaft aspect-ratio.

Ausführliche Informationen zu Verbesserungen der Webplattform in Firefox 71 finden sich auf hacks.mozilla.org sowie in den MDN web docs.

Übrigens: Mozilla hat einen neuen YouTube-Kanal, auf welchem wöchentlich neue Inhalte für Entwickler veröffentlicht werden.

Neuerungen für Unternehmen

Kiosk-Modus

Firefox kann ab sofort in einem sogenannten Kiosk-Modus betrieben werden. Nähere Informationen dazu finden sich auf Mozillas Hilfe-Plattform.

Neue Unternehmens-Richtlinien

Mittels Enterprise Policy Engine kann Firefox vorkonfiguriert werden, was vor allem im Unternehmensumfeld interessant ist. Dies geschieht auf Windows über GPO, auf Apple macOS via .plist-Datei oder plattformübergreifend auf Windows, Apple macOS und Linux über eine Datei policies.json. Auch Firefox 71 unterstützt wieder neue Enterprise Policies.

Sonstige Neuerungen in Firefox 71

Firefox kann auf Windows, Apple macOS und Linux nun nativ und ohne Drittanbieter-Abhängigkeit MP3-Dateien dekodieren.

Firefox kann jetzt auch auf Apple macOS Passwörter aus Google Chrome importieren.

Geschlossene Sicherheitslücken

Natürlich hat Mozilla auch in Firefox 71 wieder zahlreiche Sicherheitslücken geschlossen. Alleine aus Gründen der Sicherheit ist ein Update auf Firefox 71 daher für alle Nutzer dringend empfohlen.

Der Beitrag Mozilla veröffentlicht Firefox 71 erschien zuerst auf soeren-hentzschel.at.

30. November 2019

Nachdem ich mich lange Zeit gegen Streamingdienste gewehrt habe und alle Musik selbst mit MiniDLNA bereitgestellt habe, bin ich vorgestern mal den Schritt zu Spotify gegangen. Das habe ich auch gleich zum Anlass für neue Kopfhörer mit Bluetooth genommen und neben dem Smartphone soll ja auch Ubuntu 18.04 auf dem Notebook zum Musikhören genutzt werden. Das Bluetooth-Headset war sehr schnell mit den Einstellungen eingerichtet und verbunden. Und der Ton wird direkt nach dem Koppeln auch nur noch darüber ausgegeben. Auch die Lautstärkeregelung hat sich sofort auf das Headset umgestellt. Die Nach-Installation von Spotify habe ich dann mittels Snap ausgeführt (und mich mal bewusst gegen ein DEB Pakete entschieden). Der Befehl: snap install spotify hat in kurzer Zeit alles installiert und eingerichtet. Nach dem Anmelden mit meinem Spotify Konto konnte ich direkt alle Playlists sehen und nutzen. Die Sondertasten zum Vorspringen der Titel auf der Notebook Tastatur funktionieren tadellos und ich kann damit durch die Titel navigieren. Aber auch die Tasten am Headset, “nächster Titel”, funktionieren einwandfrei und auf dem Desktop wird in der Statusleiste oben direkt angezeigt, welches Lied als nächstes gespielt wird. Die Unterstützung von Spotify sowie dem Headset sind perfekt in Ubuntu integriert und ermöglichen einen problemlosen Musikgenuss.

26. November 2019

Mozilla hat seinen Finanzbericht für das Jahr 2018 veröffentlicht. Erstmals seit 2005 hat Mozilla weniger Umsatz als im Vorjahr gemacht und das deutlich. Dies hängt vor allem mit der Ablösung von Yahoo durch Google als Standard-Suchmaschine in den USA zusammen. Dennoch konnte Mozilla seine Vermögenswerte weiter steigern. Außerdem hat Mozilla in 2019 seine Beteiligung an der deutschen Cliqz GmbH gelöst und den Rechtsstreit mit Yahoo beigelegt.

Wie jedes Jahr am Jahresende hat Mozilla auch in diesem Jahr seinen Finanzbericht für das Vorjahr veröffentlicht, welcher offenlegt, in welcher Höhe Mozilla Einnahmen und Ausgaben hatte.

Gegenüber einem Umsatz von etwas mehr als 562 Millionen Dollar im Jahr 2017, konnte im Jahr 2018 ein Umsatz in Höhe von über 450 Millionen Dollar erzielt werden. Damit liegt Mozillas Umsatz erstmals seit 2005 unter dem des Vorjahres, und zwar deutlich, nachdem Mozillas Umsatz zuvor über Jahre teilweise rapide gestiegen war. Mozilla erklärt dies damit, dass das Jahr 2017 ein Ausreißer war, unter anderem wegen des in 2017 neu ausgehandelten Suchmaschinen-Vertrags. In diesem Jahr war Mozilla vorzeitig aus seinem Vertrag mit Yahoo ausgestiegen und hat seit dem für Nutzer in den USA wieder Google als Standard-Suchmaschine in Firefox.

Mozilla Umsatz 2018
Bildquelle: soeren-hentzschel.at/mozilla-umsatz

Den Rechtsstreit, welchen Mozilla und Yahoo wegen Mozillas vorzeitigem Ausstieg aus dem Suchmaschinen-Vertrag mit Yahoo seit Dezember 2017 ausgetragen hatten, ist nach Angaben von Mozilla im September 2019 zu einem Ende gekommen. Details zum Ausgang nannte Mozilla keine. Allerdings erwartete Mozilla nach eigenen Angaben keine nachteiligen finanziellen Auswirkungen.

Insgesamt ist Mozillas Abhängigkeit von Suchmaschinen leicht gesunken, und zwar von 93 auf 91 Prozent des Gesamt-Umsatzes. Es ist zu erwarten, dass dieser Anteil in den nächsten Jahren noch weiter sinken wird, da Mozilla verstärkt auf Services als weitere Einnahmequellen setzt, wie zum Beispiel durch das 2017 für 30 Millionen Dollar erworbene Pocket oder das Firefox Private Network, welches sich derzeit im noch kostenlosen Betatest befindet.

Auf der Ausgaben-Seite stehen knapp über 451 Millionen Dollar, verglichen mit fast 422 Millionen Dollar im Vorjahr. Knapp 278 Millionen Dollar davon sind Budget für die Produktentwicklung, unter anderem von Firefox (2017: knapp 260 Millionen Dollar). Für Marketing wurden knapp 53 Millionen Dollar und damit deutlich weniger als im Vorjahr ausgegeben (2017: knapp 66 Millionen Dollar).

Obwohl Mozillas Ausgaben im Jahr 2018 erstmals sogar knapp über den Einnahmen lagen, ist Mozillas Netto-Vermögen, unter anderem durch eine Steuer-Rückzahlung, von über 514 Millionen Dollar auf mehr als 523 Millionen Dollar gestiegen.

Wie aus dem Bericht weiter hervorgeht, hat Mozilla seine Anteile an der deutschen Cliqz GmbH im Juli 2019 zurück an Cliqz verkauft. Im August 2016 hatte Mozilla für 1,8 Millionen Dollar zehn Prozent der deutschen Cliqz GmbH erworben, um die Entwicklung innovativer Produkte im Bereich Datenschutz bei der Suche im Internet voranzutreiben. Mozilla ist damit also nicht länger Minderheits-Eigentümer der Cliqz GmbH.

Der Beitrag Mozilla 2018 erstmals mit weniger Umsatz, dennoch mit gesteigertem Vermögen erschien zuerst auf soeren-hentzschel.at.

25. November 2019

In dieser Rezension bespreche ich das Buch „Skarlierbare Container-Infrastrukturen“ vom Autor Oliver Liebel vom Rheinwerk-Verlag.

Hinweis: Der Rheinwerk-Verlag stellte mir für die Rezension ein Rezensionsexmplar frei zur Verfügung.

Was steht drin?

Viel! Sehr viel sogar. Das Buch umfasst insgesamt 1380 Seiten, ist nicht nur von außen betrachtet ein echt umfangreiches Buch. Es unterteilt sich in 5 Teile mit insgesamt 25 Kapiteln.

Der Autor beginnt den ersten Teil „Brave New World?“ mit dem allgemeinen Einstieg in das Thema der Container: Was ist es und wofür braucht man es? Er beantwortet zudem die Frage, ob es wirklich alles so einfach ist, wie behauptet wird.

Die Grundlagen werden im zweiten Teil „Single-Node Container-Systeme“ vermittelt. Hier geht es vor allem, aber nicht nur, um Docker. So wird ein Einstieg gegeben und die grundlegenden Konzepte und Kommandos an Hand von Beispielen erläutert.

Teil 3 „Skaliarbare Container-Cluster und Container-Orchestrierung“ behandelt im Wesentlichen Kubernetes und etcd. Dies ist zudem auch der umfangreichste Teil: Es macht mit 672 Seiten knapp die Hälfte des Buches aus. Kein Wunder: Kubernetes ist sehr komplex und auf die Einzelheiten wird näher eingegangen. Darunter etwa auch, wie man Kubernetes ohne Docker betreibt.

Im vierten Teil „High-Level-Orchestrierungstools für Container-Infrastrukturen (on Premise und in der Cloud)“ setzt auf den dritten Teil auf und behandelt im wesentlich OpenShift, was die Kubernetes-Distribution von Red Hat ist.

Der fünfte und letzter Teil „Software-Defined Storage für verteilte Container-Infrastrukturen“ befasst sich mit Software-Defined-Storage, darunter Ceph. Zusätzlich werden noch Checkpunkte für vor den Aufbau von Container-Infrastrukturen besprochen, sowie ein Ausblick und Fazit zur Container-Welt gegeben.

Kritik

Meine Gefühle für das Buch sind ein wenig gemischt. Keine Frage: Fachlich ist das Buch sehr gut. Es ist nicht nur beim Blick auf die Seitenanzahl sehr umfangreich, sondern auch beim tatsächlichen Inhalt. Wichtig ist, dass an sehr vielen Stellen erkennbar ist, dass der Autor viele Praxis-Kenntnisse in dem Bereich besitzt. Das führt dazu, dass an sehr vielen Stellen praxis-relevante Hinweise gegeben werden, wie gut oder vor allem schlecht etwas funktioniert.

Und genau der letzte genannte Punkt ist zeitgleich mein größter Kritikpunkt. Prinzipiell find ich es gar nicht so schlecht, wenn in Büchern „Klartext“ geschrieben wird und die Probleme richtig genannt werden, da nicht alles so schön einfach ist, wie immer behauptet wird. Mein wesentliches Problem ist der Ton. An sehr vielen Stellen liest sich die Kritik, etwa wenn etwas nicht wie angeworben funktioniert, als wenn der Autor sehr frustriert ist. Stellenweise hatte ich als Leser das Gefühl, dass der Autor seine Frust an Entscheidungsträgern und einzelnen Design- und Software-Entscheidungen nur im Buch auslässt.

Gepaart wird dies durch den hohen Einsatz von Umgangssprache, was meinen Eindruck vom Buch weiter senkt. Zu Beginn fand ich den Schreibstil ja ganz nett: Die Probleme und Irrtümer im Umgang mit Container-Infrastrukturen werden klar, deutlich und auch hart benannt. Auf die Dauer verbreitete sich bei mir das Gefühl, dass immer weiter Frust abgeladen wird. Zwei Beispiele für zu viel Slang, die sehr oft vorkommen: „Nö“ und „Würgaround“. „Nö“ wird sogar erschreckend oft in Überschriften von Absätzen verwendet. „Würgaroung“ (statt Workaround) kenne ich eher nur von alten Forenposts, wo es heutzutage auch kaum einer mehr verwendet. Meiner Meinung nach ist so ein Slang in einem professionellen Buch fehl am Platz und macht zumindest bei der Häufigkeit wie hier, keinen guten Eindruck.

Unabhängig von der Sprache ist der fachliche Umfang tadellos: Es ist sehr umfangreich und geht in sehr viele tiefe Eigenschaften, Eigenheiten und auch Probleme im Umgang mit den Technologien ein. Der Preis mit 79,90 € ist nicht gering, aber bei dem Umfang durchaus nachvollziehbar. Problematisch bei dem Themengebiet ist zusätzlich, dass sehr vieles in dem Buch sehr schnell veraltet. Dafür kann der Autor und der Verlag nichts, da die Welt der Container sich sehr schnell weiterentwickelt. Das Buch kam in der ersten Auflage im April 2017 und die von mir gelesene zweite Auflage im Oktober 2018 auf dem Markt. Ist also schon ein Jahr alt. In der Zwischenzeit ist viel passiert, so ist mittlerweile OpenShift 4 erschienen, was sich schon deutlich vom behandelten OpenShift 3 unterscheidet. Man muss sich also zusätzlich zu dem Buch noch separat auf den aktuellen Stand der Technik bringen.

Würde ich das Buch trotzdem empfehlen: Ja! Wer eine sehr gute Einführung in die Welt der Container möchte, kommt an dieses Buch nicht vorbei. Wichtig ist allerdings noch hervorzuheben, dass (sehr) gute Linux- und Netzwerk-Kenntnisse unabdingbar ist. Grundlagen zu diesen Themen werden nicht thematisiert, die muss man sich selbst aneignen. Wer sich dem Thema widmen sollte und nur grundlegende Kenntnisse mitbringt, wird es schwierig haben – und das ganz unabhängig von der verwendeten Lektüre.

Buchinfo:

Titel: Skalierbare Container-Infrastrukturen

Autor: Oliver Liebel

Verlag: Rheinwerk

Umfang: 1380 Seiten

ISBN: 978-3-8362-6385-6

Preis: 79,90 €

23. November 2019

In vielen Blogartikeln gehe ich mit den aktuellen Entwicklungen im Linux-Bereich hart ins Gericht. Daher möchte ich heute auch mal ein bisschen über aktuelle und nicht mehr so aktuelle Entwicklungen schreiben, die positiv sind und immer noch viel Potenzial haben. Zwei kleine Underdogs haben nämlich inzwischen eine respektable Qualität erreicht.

Der Linux Desktop schläft tendenziell den Schlaf der Gerechten. Große oder umstrittenen Innovationssprünge gab es seit Jahren nicht mehr. Die Entwickler hinter KDE und GNOME betreiben bereits seit Jahren Produktpflege, bei den kleineren Desktops ist das sowieso offizielle Existenzgrundlage (MATE, Xfce). Ähnlich sieht das bei den großen Distributionen wie Ubuntu oder Debian aus. Lediglich Fedora wird ab und an seinem Ruf als Testumgebung gerecht - zumindest in einigen Spins. Es gibt aber noch interessante Entwicklungen in anderen Bereichen.

Manjaro

Viele (ich auch) haben Manjaro anfangs belächelt. Ein Arch Linux für Einsteiger - welch paradoxe Idee. Außerdem brauchte Linux nun wirklich nicht noch eine weitere Distribution. Das ist Schnee von gestern. Inzwischen hat man mit Unterstützung von bluesystem ein stabiles Fundament geschaffen um die Entwicklung voran zu treiben.

Manjaro ist für mich aktuell das was Ubuntu mal war. Eine Distribution mit Fokus auf Einsteiger, die dennoch Innovationen ausrollen will und bereit ist dafür unkonventionelle Wege zu gehen.

Ähnlich wie Ubuntu früher begreift sich Manjaro nicht nur als Grundlage für Desktops sondern unterzieht die drei offiziellen Desktops Xfce, KDE Plasma und GNOME einem Redesign in Manajaro-Optik. Der Anwender sieht dadurch immer welche Distribution er nutzt. Ein optisches Unterscheidungsmerkmal, das viel zu viele Distributionen aus arbeitsökonomischen Gründen aufgegeben haben. Die Desktops wurden dadurch immer prägender und die Distributionen austauschbar.

Außerdem ist man bereit bei schwierigen Baustellen neue Wege zu gehen. Die Ankündigung LibreOffice und Softmaker Freeoffice künftig gleichberechtigt anzubieten war eine innovative Idee. Man musste zwar unter dem Shitstorm der Open Source-Community etwas zurückrudern aber die Manjaro Entwickler zeigten, dass sie bereit sind bei problematischen Dauerbaustellen unkonventionelle Wege zu gehen.

Elementary OS

Elementary OS (eOS) hatte ich hier bereits früher positiv erwähnt (siehe: elementaryOS - Wenigstens eine Vision für den Desktop). Dabei handelt es sich um gar kein so junges Projekt mehr, das trotzdem immer noch nichts von seinem Enthusiasmus verloren hat.

Der Ausgangspunkt waren einige Designpakete für Ubuntu. Inzwischen entwerfen die Entwickler, aufbauend auf der jeweils aktuellen Ubuntu LTS, einen eigenen Desktop mit zugehörigen Programmen. Das Ziel ist ein harmonisch entworfenes Gesamtkonzept von Desktop, Erweiterungen und Anwendungen. Man orientiert sich dabei ziemlich offensichtlich an macOS, ohne aber lediglich zu kopieren. Im Gegensatz zu vielen konkurrierenden Produkten wie KDE oder GNOME hat man als Anwender das Gefühl, dass die Entwickler das Gesamtgefüge immer Mitdenken und nicht lediglich ein Produkt aus vielen Einzelteilen zusammen stückeln. Viele innovative GTK-Apps werden inzwischen ganz offensichtlich für eOS entworfen.

Dazu gekommen ist zwischenzeitlich ein eigener App Store. Hier können Anwender, sofern sie das wünschen, auch für gute Apps bezahlen. Mit der Fokussierung auf Flatpaks emanzipiert man sich zudem zunehmend von der Ubuntu Basis.

Stabilität

Der große Nachteil an beiden Projekten ist ihr rollendes Entwicklungsmodell. Die hohe Innovationskraft macht dieses Modell erforderlich, da für langfristige Pflege keine Kapazitäten bereitstehen. Für den Eigenbedarf ist das auch kein Problem, dafür sind beide Produkte hinreichend stabil. Im wartungsarmen Einsatz bei Dritten ist der Einsatz aber ein Wagnis.

Hier erfreue ich mich daher immer noch an der Stabilität die openSUSE mit dem damaligen Split in Tumbleweed und Leap gewonnen hat (siehe: openSUSE:42 - Frische Ideen für das Chamäleon). Nachdem die Entwicklergemeinschaft jene Minderheit, die lautstark eine Namensänderung forderte (siehe: openSUSE kommt nicht zur Ruhe) forderte in die Schranken gewiesen hat kann man den Einsatz von openSUSE Leap wieder bedenkenlos empfehlen. Stabil, unaufgeregt und verlässlich verrichtet es seinen Dienst auf jenen Geräten, die einfach funktionieren sollen.

Da kann Debian gerne mal wieder über systemd abstimmen. Das läuft bei mir schon seit openSUSE 12.3. Sollte es damit mal Probleme gegeben haben ist mir das im Laufe der Jahre entfallen.


Bilder:
Einleitungs- und Beitragsbild von 3dman_eu via pixabay 

"

Auf dem Linux App Summit widmeten sich namhafte Entwickler aus dem Linux-Desktop-Umfeld der Frage wie man mehr und bessere Apps bzw. Programme hervorbringen kann. Mit dabei ein paar überfällige Einsichten. Nicht alles wird in der Community auf viel Gegenliebe stoßen aber weißt hoffentlich den Weg in die richtige Richtung.

Wenn man der Open Source Blogosphäre (oder dem was davon übrig ist) folgt konnte einem das Ereignis kaum entgehen. Die entsprechenden Planeten waren gespickt mit entsprechenden Blogposts der teilnehmenden Entwickler. Eine kleine Bilanz kann man bei Heise nachlesen.

Der Summit artikulierte einige überfällige Einsichten:

  • Entwickler sollten Apps aus Nutzersicht bewerten. Portierungen mit dem Ziel auf moderne Programmiersprachen zu wechseln, ohne den Endanwendern neue Funktionen zu bringen seien demnach sinnlos.
  • Daraus folgt die bereits oft geäußerte Einsicht, dass die unterschiedlichen Projekte bei den Grundlagen kooperieren sollten, da die Oberfläche und die Funktionen genug Distingierungsmerkmale bieten.
  • Die Einstiegshürden für Entwickler seien zu hoch. Die entsprechenden Werkzeuge sind zu fragmentiert, die Schnittstellen zu instabil und das Paketierungssystem ein überholter Ansatz.
  • Die vielen konkurrierenden Projekte kannibalisieren sich gegenseitig, sowohl hinsichtlich knapper Ressourcen, als auch hinsichtlich der schmalen Anwenderbasis.

Vieler dieser Gedanken sind nicht neu, aber ihre prominente Formulierung überfällig.

Interessant ist hier aber auch ein Blick in die Heise Kommentare. Die Entwickler vieler Projekte sind hier ganz offensichtlich weiter als die öffentlich sichtbar auftretende (Anwender-)Community. Diese hat sich eingerichtet in Lagerkämpfen, überkommenen Systemen und Funktionweisen und verweigert jeden objektiven Blick oder notwendige Reformen. Die Linux Gemeinde ähnelt damit etwas überspitzt gesagt mehr und mehr der Katholischen Kirche: Der Status quo ist heilig gesprochen.

Hoffentlich gehen engagierte Entwickler über diese notorischen Bedenkenträger hinweg und entwickeln vielversprechende Ansätze weiter um den Linux Desktop voran zu bringen. Das Jahr des Linux Desktops mag niemals kommen aber es wäre schade, wenn der Linux Desktop vor den Alternativen Windows und macOS zu Grunde gehen würde.


Bilder:
Einleitungsbild und Beitragsbild von von Violinka via pixabay

"

21. November 2019

19. November 2019

Wo Daten gespeichert werden sollte man zumindest einmal über Verschlüsselung nachdenken. Synology bietet dafür ein sehr leicht zu bedienendes Werkzeug auf Basis von eCryptFS um freigegeben Ordner zu verschlüsseln.


Dieser Artikel ist Teil einer Serie:


Verschlüsselung ist auf einem NAS nicht so zwingend wie auf einem Notebook oder Desktoprechner. Man könnte jetzt meinen, dies sei absurd, da auf einem NAS naturgemäß viel mehr (sensible) Daten gespeichert sind. Das Problem ist allerdings: Ein NAS läuft in der Regel - oft sogar 24/7. Um zu funktionieren sind die freigegebenen Ordner dann entschlüsselt und lassen einen Zugriff zu. Verschlüsselung schützt bei einem NAS also wirklich nur vor Diebstahl. Wenn man also das Gerät oder die Festplatten mitnimmt soll die Verschlüsselung ein Auslesen der Daten verhindern.

Das Synology DSM unterstützt Verschlüsselung nativ indem es die Linux-Lösung eCryptFS intregriert hat. Je nach Typ kann Verschlüsselung aber zu lasten der Transferraten gehen, da nicht alle Synology-Geräte potent genug sind. Bei neueren Modellen ohne J sollte es keine Probleme geben, da die Prozessoren hardwareseitig die Verschlüsselung unterstützen.

Um Verschlüsselung zu nutzen muss man in einem ersten Schritt den Schlüssel-Manager initialisieren. Diesen findet man in der Systemsteuerung unter Gemeinsame Ordner im Dropdown-Menü von Aktion. Sofern der Schlüssel-Manager auf einem internen Volume liegt kann man den Rechnerschlüssel nehmen.

Anschließend wählt man den zu verschlüsselnden gemeinsamen Ordner aus. Über Bearbeiten kann man im Reiter Verschlüsselung die Verschlüsselung aktivieren und einen Schlüssel festlegen. Je nach Freigabe-Typ kann man den Verschlüsselungsschlüssel zum Schlüssel-Manager hinzufügen. Das hängt letztlich davon ab, ob man möchte, dass die Freigabe nach dem Start automatisch eingebunden wird oder ob man dies selbst erledigen mag. Bei besonders oft verwendeten Verzeichnissen wie Home macht ein manueller Mount-Vorgang nur bedingt Sinn.

Anschließend sind einige Bestätigungsdialoge zu absolvieren, die prüfen, ob man die Tragweite der Aktion verstanden hat. Weiterhin sollte man die zum Download angebotene Key-Datei gut sichern, da man ohne diese Datei unter Umständen (z. B. Passwort vergessen) nicht mehr an seine Daten kommt. Den Schlüssel sollte man natürlich auf keinen Fall auf dem NAS speichern!

Abschließend muss man im Schlüssel-Manager noch den Haken für eine automatische Einbindung beim Systemstart setzen.

Anschließend ist die Freigabe verschlüsselt.

Abzuwarten bleibt ob Synology bei zukünftigen Versionen von eCrpytFS Abstand nimmt, da die Lösung mangels Entwickler dahinsiecht (siehe: eCryptFS - Zeit für die Suche nach Alternativen). Gegenwärtig ist die aber noch nicht gebrochen.


Bilder:
Einleitungs- und Beitragsbild von kreatikar via pixabay

"

Im Kontext von NAS-Systemen habe ich mich vor ein paar Tagen massiv gegen den verbreiteten Sicherheitsnihilismus gewandt (siehe: Kommentar: Externer Zugriff auf das NAS - Nicht auf Nihilisten hören). Das zu Grunde liegende Problem ist eine massiv unterschiedliche Beurteilung des gegenwärtigen Niveaus der Zielgruppe.

Die Grundlage ist ein Sicherheitsnihilismus, der darin besteht, dass vor allem IT-Experten wahlweise gerne Probleme (in der Sicherheit) nicht angehen, weil sie nicht alle damit zusammen hängenden Probleme lösen können oder ihre Lösungsvorschläge so kompliziert sind, dass niemand sie in der Realität verwenden mag. Anstelle eine Lösung zu suchen, bewundert man also das Problem. Ein relativ simples Beispiel ist, wenn man pauschal verschlüsselte Kommunikation ablehnt, bei der man nicht die Schlüssel der Kommunikationspartner persönlich verifiziert hat. Jede Sicherheitsmaßnahme ist daher wahlweise nichtig oder sinnlos, weil man den Prozess nicht bis ins letzte Detail absichern kann.

Sicherheitsnihilisten haben in der Sache nicht unbedingt unrecht, schwächen aber in der Praxis die Sicherheit bzw. die Bestrebungen zu mehr allgemeiner Sicherheit.

Das liegt vor allem an einer grundsätzlich unterschiedlichen Wahrnehmung der Realität.

Die allgemeine Realität, die ich wahrnehme und von der ich behaupte, dass sie die Mehrheit repräsentiert, ist eine weit verbreitete Absenz von Datenschutz und Sicherheit im digitalen Leben.

  • Die meisten Anwender nutzen ausweislich aller Statistiken Betriebssysteme wie Windows 10 oder Android und damit Systeme, die entweder sehr unsicher sind (Android) oder gezielt und massenhaft Nutzerdaten abgreifen (Windows 10). Verschlüsselung von Daten ist für die meisten Benutzer dieser Systeme kein Thema - auf dem Desktop noch weniger als mobil - sofern die Systeme das nicht im Hintergrund durch z. B. eine Bildschirmsperre erledigen.
  • Immer weniger Anwender nutzen dabei auf ihren Systemen einen sicheren und datenschutzfreundlichen Browser wie Firefox, sondern greifen zu Produkten wie Google Chrome, die sich - wenn überhaupt - nur mit viel Aufwand absichern lassen, was wiederum ebenfalls kaum jemand macht.
  • Die meisten Anwender verwenden einen kommerziellen Cloud-Dienstleister wie z. B. Dropbox, Google Drive oder OneDrive. Also einen Dienst, U.S.-amerikanischer Provinienz ohne clientseitige Verschlüsselung mit einem entsprechend geringen Schutzniveau für die Inhalte der Daten und all den Implikationen im Bereich staatlicher Überwachung.
  • Die meisten Anwender kommunizieren per E-Mail über kostenlose Dienstanbieter. Seien es Google Mail oder die in Deutschland verbreiteten Anbieter von United Internet. Durch die kostenlose Bereitstellung der Dienstleistung steht natürlich bei all diesen Anbietern der Verdacht im Raum, dass sie die Kundendaten anders monetarisieren. Sei es durch Werbung, verbunden mit dem ganzen Komplex Tracking und Profilbildung, oder andere Formen der Datenauswertung. Eine Inhalte- oder gar Metadatenverschlüsselung erfolgt nicht. Mobil führen die zu Facebook gehörenden Messenger und sozialen Netzwerke mit großen Abstand zu allen sichereren und unsichereren Konkurrenten. Lediglich im Bereich der Videotelefonie kann sich das - ebenfalls nicht unproblematische - Skype behaupten.
  • Die meisten Anwender haben zwar abstrakt Angst vor dubiosen Dienstanbietern im Internet, gehen aber in ihrem konkreten Lebensalltag viel zu sorglos mit ihren Daten um. Beispielsweise um irgendwelche Gutscheine zu bekommen oder vermeintliche Schnäppchen zu machen.
  • Sehr viele Anwender laden ihre Fotos und Videos automatisiert in die Cloud, gelockt von billigen Datentarifen und vorinstallierten Apps, wodurch sie bei der heutigen Fotodichte geradezu ein Profil ihres Lebens erstellen.
  • Sehr viele Anwender greifen - gelockt von billigen Angeboten vornehmlich von Amazon - zu Smart Home Produkten und hier vor allem Smarten Lautsprechern. Mikrofone in Gegenständen im Wohnbereich sind nicht neu, bei diesen Geräten sind diese Mikrofone aber funktionsbedingt immer angeschaltet und horchen in den Raum. Mit einer entsprechenden Fehlerwahrscheinlich, wie die Skandale der letzten Monate zeigen.
  • Viel zu wenige Anwender fertigen Backups ihrer Daten an. Noch viel weniger Menschen machen diese professionell mit dafür geeigneten Programmen oder denken gar an Offsite Backups.

Diese Liste ließe sich endlos fortführen.

Ausgehend von diesem Nutzungsszenario sind es bereits die kleinen Änderungen, die große Wirkung entfalten können: Ein besserer Maildienstleister, eine einfache Datenverschlüsselung, ein NAS von der Stange oder ein vertrauenswürdigerer Clouddienstleister. Kommt man diesen Anwendern mit Linux, pi-hole, einem Homeserver, PGP, Signaturprüfung und VPN-Tunneln - sie werden überfordert und frustriert zu ihren bisherigen Gewohnheiten zurückkehren. Datenschutz und -sicherheit ist dann nur noch etwas für Profis.

Daher mein Plädoyer für weniger realitätsfernen Sicherheitsnihilismus. Er mag in der Theorie korrekt sein, in der Praxis bewirkt man das Gegenteil.


Bilder:
Einleitungsbild und Beitragsbild von von geralt via pixabay

"

In den letzten Jahren kann man bei allen Plattformen den Trend weg von klassischen Lifetime-Lizenzen hin zu Abonnement-Modellen bei kommerzieller Software beobachten. Sieht man sich die Kunden-Reaktionen an ist das Modell ausgesprochen unpopulär, trotzdem setzt es sich mehr und mehr durch. Doch wann ist es gerechtfertigt?

Ausgerechnet der Open Source Bereich war hier Vorreiter. Freier Software fehlt bis heute durchweg ein Geschäftsmodell um die Entwicklung zu kommerzialisieren. Mit einer Ausnahme: Subscription-Verträge. Wenn man freie Software kommerzialisieren wollte blieb eigentlich nur der Supportvertrag um Geld zu verdienen. Die einzige Form mit der man Distributionen wie beispielsweise SLED oder RHEL erwerben kann ist daher der mehrjährige Subscriptions-Vertrag.

Ich persönlich habe solche Abonnements bisher gemieden, musste mich aber nun damit beschäftigen, da mit Enpass (siehe: Enpass - Ein Passwortmanager für alle Systeme & Enpass - Kleines Update mit nützlicher Funktion) ein ziemlich populärer plattformübergreifender Passwortmanager für Neukunden zum Abo-Modell wechselt.

Für Firmen liegen die Vorteile auf der Hand: Abonnements versprechen planbare Einnahmen ohne Bindung an Produktzyklen. Es kann aber nicht Aufgabe des Endanwenders sein die Unfähigkeit vieler Startups zur betriebswirtschaftlichen Kalkulation auszugleichen. Auch mit regulären Produktzyklen und Lifetime-Lizenzen für Versionen lässt sich kalkulieren. Wann macht ein Abonnement eigentlich Sinn für Endanwender bzw. ist so nachvollziehbar, dass man es unterstützen muss?

Die erste Variante ist das Microsoft Office-Modell. Der Einfachheit benannt nach einem ihrer wegweisenden Vertreter. Ein ehedem in normalen Produktzyklen (Neue Version alle zwei Jahre, gefolgt von einem mehrjähriger Supportzeitraum) erscheinende Software wechselt auf ein Abonnementsystem. Am Beispiel von MS Office kann man sehr einfach zeigen, dass hier der Kunde draufzahlt. Für eine normale Lizenz zahlte der Privatkunde ca. 120 €. Die Produktvarianten für Geschäftskunden sind theoretisch teurer, allerdings gab es hier viele Rabatte, Volumenlizenzen etc. weshalb sich das nicht so pauschal sagen lässt. Aus meinen Erfahrungen heraus kann ich lediglich sagen, dass Einzelplatz-Lizenzen weniger kosteten. Das Produkt ließ sich dann bis zu 10 Jahre lang nutzen (Office 2010 fällt im kommenden Januar aus dem Support). Bei den gegenwärtigen Abo-Preisen für Office 365 bedeutet das für den Kunden also erhebliche Mehrkosten, selbst wenn man die Rabatt-Aktionen für Office 365 berücksichtigt. Natürlich argumentiert Microsoft mit den neuen Funktionen und so mancher unkritische Kunde übernimmt diese Argumente aber wenn diese neuen Funktionen so unverzichtbar waren, weshalb setzen dann noch so viele Firmen auf alte Office-Versionen? Gerade also jene Einsatzgebiete, in denen Excel, Word und Powerpoint bis zum Exzess ausgenutzt werden?

Die zweite Variante ähnelt der ersten, ist jedoch noch ungünstiger für den Kunden. Microsoft brachte immerhin ca. alle zwei Jahre eine neue Version heraus, wovon der Kunde mit Abo-Vertrag nun theoretisch profitiert. Andere Firmen haben deutlich behäbigere Produktzyklen. Ein eher kleines Beispiel ist hier der FTP Client Transmit für macOS. Die Einzelplatz-Variante kostet $ 45 für eine Hauptversion. Transmit 4 erschien 2010, die Nachfolgeversion Transmit 5 erst 2017. Im Abo-Modell verlangen die Entwickler nun 25,99 € pro Jahr. Das ist für den Kunden unter absolut keinen denkbaren Bedingungen wirtschaftlich sinnvoll.

Die dritte Variante bezieht sich auf jene Produkte wie z. B. die Virtualisierungslösungen von VMware oder Banking-Programme (siehe: Onlinebanking - HBCI/FinTS einfordern). Es gibt zwar reguläre Releases mit Produktzyklen, aber aufgrund des sehr wartungsaufwändigen Umfeldes (zum Beispiel ständig neue Versionen von Host- und Gastsystemen und erforderlichen Anpassungen oder ständig neues regulatorisches Marktumfeld) müssen die Kunden fast jedes Jahr eine neue Version erwerben. Hier entwerteten sich die regulären Lifetime-Lizenzen derart schnell, dass das bisherige Modell einem Abo-System schon sehr nahe kam. Für den Kunden ändert sich also kaum etwas, eventuell spart er sogar wirklich ein wenig Geld.

Die vierte Variante koppelt das Produkt an eine kontinuierlich erbrachte Dienstleistung wie z. B. Cloud-Speicher. Das machen inzwischen relativ viele kommerzielle Produkte, die eine Synchronisations-Funktion über die Cloud integrieren. Diese kontinuierlich erbrachte Dienstleistung muss natürlich bezahlt werden weshalb das Abonnement für die Software die Miete für die Dienstleistung einschließt. In diese Kategorie fallen auch die meisten kommerziellen Open Source Produkte, da hier die Weitergabe der Software mit einem Dienstleistungsvertrag über Wartung und Support kombiniert wird.

Abonnement-Systeme lohnen sich (bzw. sind zumindest nachvollziehbar) für den Kunden nur bei den Varianten 3 und 4. Variante 1 ist inzwischen weit verbreitet aber nicht wirklich attraktiv und Variante 2 aus wirtschaftlichen Gesichtspunkten katastrophal (es sei denn die Firma zieht in der Folge die Entwicklungszyklen massiv an). Es kann nicht die Aufgabe der Kunden sein, die Unfähigkeit vieler risikokapitalgewöhnter Startups zur soliden Kalkulation dadurch auszugleichen, dass sie der Firma monatlich Geld überweisen. Letztlich obliegt es den Verbrauchern mit den Füßen abzustimmen und Softwareanbietern, der Kategorie 1 und 2 den Rücken zu kehren, um eine weitere Ausbreitung des Modells zu verhindern.

Aus diesem Grund rate ich Neukunden ab sofort auch massiv von Enpass ab.


Bilder:

Einleitungs- und Beitragsbild von stevepb via pixabay

"

16. November 2019

Vor zwei Jahren habe ich mir der "Wasser predigen, Wein trinken?" Reihe angefangen und werfe in kleinen Jahresrückschauen einen Blick auf die Veränderungen in meinem Nutzungsverhalten. Es ist ein ganz persönlicher Einblick in die Kompromisse, die man im Kampf um Datenschutz im digitalen Alltag eingehen muss.

Der Blog auf [Mer]Curius spiegelt meine gegenwärtigen Interessen im Bereich Datenschutz/-sicherheit meist ziemlich gut wider. Im vergangenen Jahr haben sich da bestehende Tendenzen fortgesetzt und es gab einige Neuerungen.

Hardware & Betriebssysteme

Der Hardware-Aspekt war dieses Jahr extrem langweilig. Ich verwende noch exakt die gleiche Kombination aus Desktop, Notebook und Smartphone wie vor einem Jahr. Seitdem ich Hardware mit Apfel drauf verwende, bin ich da deutlich nachhaltiger geworden. Die aktuellen Betriebssystemversionen laufen ohne Einschränkungen - warum sollte ich also neue Hardware kaufen? Ganz allgemein ist meine Bereitschaft viel Zeit in die Softwarepflege zu stecken gesunken. Konfigurationen mit hohem Wartungsaufwand löse ich zunehmend ab durch pflegeleichtere Alternativen.

Apple hat aber zugegebenermaßen meine Nerven in diesem Jahr sehr strapaziert. Nach jeder neuen Betriebssystemversion gibt es einige Kommentatoren die meckern. Oft sind das dann sehr spezielle Einsatzszenarien, veraltete Komponenten im Netz oder halb-defekte Hardware. Dieses Jahr hatte ich nach den Upgrades auf iOS 13 bzw. macOS 10.15 Probleme auf allen Geräten. Alleine schon die Anzahl an Updates seit September spricht da Bände.

Linux läuft noch auf zwei Notebooks in meiner Verantwortung und ein paar virtuellen Maschinen für spezielle Einsatzszenarien. Änderungen in diesem Bereich sind extrem unwahrscheinlich geworden, da ich die Entwicklung von Linux auf dem Desktop inzwischen höchst langweilig finde. Es gibt zwar andauernd Updates aber keine relevanten Entwickungen für mich. Die Desktopentwicklung stagniert, LibreOffice ist ein Graus, die Community kloppt sich immer noch wegen systemd und mit dem Dualismus aus Snap/Flatpak wiederholt man alte Fehler. Trotz des Ärgers mit der Apple-Qualitätssicherung sehe ich mich also mittelfristig nicht in größerem Umfang zu Linux zurückkehren.

Das gleiche gilt im mobilen Bereich. Für einen speziellen Einsatzzweck hatte ich im Sommer nochmal mit Android gearbeitet (siehe auch die Serie: Android ohne Google I: Vorüberlegungen) aber für den Alltag ist das nichts. Es fehlen nicht nur die Apps außerhalb des Play Store-Ökosystems, ich finde auch Android kein besonders gut zu bedienendes Betriebssystem. Die anderen Experimente im mobilen Bereich fristen leider ein Nischendasein. Ubuntu Touch läuft nur noch auf uralter Hardware, von Purism ist in nächster Zeit nicht viel zu erwarten (siehe: Purism Librem 5 - Bestenfalls eine Experimentalstudie) und SailfishOS bindet sich meiner Meinung nach zu stark an die russische Regierung (siehe: Jolla / Sailfish OS - Zu enge Staatsverbindungen?). Abgesehen davon finde ich die Communitys beider Systeme hochgradig unsympathisch (siehe: Kommentar: Librem 5 kommt später und nicht vollständig).

Mein Linux Homeserver hat im Sommer ebenfalls den Hardware-Tod erlitten. Nach einigen Monaten der Abwägung (siehe: Homeserver / NAS - Die Qual der Wahl) ist es dann ein Synology NAS geworden (siehe: Synology NAS I: Die Entscheidung für ein Synology NAS). Das Betriebssystem DSM basiert zwar auf Linux, ist aber natürlich nicht die reine Lehre und hat mit der Community nicht viel zu tun.

Das empfinde ich aber auch nicht mehr so tragisch wie früher. Ich weiß nicht, ob sich meine persönlichen Ansprüche und Erwartungen geändert haben oder ob sich die Community zum negativen verändert, aber manchmal habe ich den Eindruck, dass die Linux Gemeinschaft nur noch aus einem Haufen verbitterter, alter, weißer Männer mit Hang zu Verschwörungstheorien besteht. Die Kommentare rund um die jüngste Affäre von Richard Stallman auf einigen Plattformen wie z. B. Pro-Linux waren da sehr entlarvend.

Verschlüsselung

Der Absatz lässt sich deutlich kürzer halten. Vielleicht lasse ich ihn nächstes Jahr ganz weg. Keines meiner Systeme ist unverschlüsselt - das betrifft auch externe Backupmedien. Seit einiger Zeit ist das auch derart leicht bzw. wird von den Herstellern so offensiv angeboten, dass es alles andere als ein Hexenwerk ist.

Die verwendeten Methoden passen sich den Systemen an. Bei Linux ist eine Vollverschlüsselung mittels LUKS die erste Wahl (siehe: LUKS - Betriebssystem verschlüsseln), unter macOS findet die native APFS-Verschlüsselung in Kombination mit FileVault seine Verwendung (siehe: macOS mit FileVault verschlüsseln). Bei betriebssystemübergreifendem Einsatz ist VeraCrypt die erste Wahl (siehe: VeraCrypt - Systemübergreifende Verschlüsselung).

Daten kommen nicht in die Cloud, sondern werden über das NAS verwaltet.

Kommunikation

Wo Verschlüsselung hingegen ein durchaus problematisches Thema bleibt, ist der gesamte Kommunikationsbereich.

E-Mails, Kontakte und Kalender organisierte ich seit 2013 über Posteo (siehe: Datenschutz-sensible E-Mail Dienstleister). Bedingt durch persönliche Veränderungen verwalte ich Kontakte und Kalender inzwischen wieder selbst und nutze eine E-Mail Adresse bei einem anderen Dienstleister. An der grundsätzlichen Empfehlung für Posteo möchte ich aber nicht rütteln.

Sofern Videokommunikation notwendig ist greife ich meist zu FaceTime (siehe: FaceTime - Verschlüsselte Videokommunikation im Apple Ökosystem) oder Wire (siehe: Verschlüsselte (Video-)Kommunikation mit Wire) wenn der Gegenüber keine Apple-Hardware hat. Nach dem Umzug von Wire in die USA bin ich aber zur Zeit am überlegen, ob hier alternative Lösungen existieren.

Mobil habe ich ein Sammelsurium an Messengern. Man erreicht mich via Signal, Threema, SMS und iMessage (siehe: Sichere Messenger - Verschlüsselung und Metadaten). Telegram unterstütze ich hingegen ganz bewusst nicht, weil es lediglich Sicherheit simuliert.

Meine Dienstenutzung orientiert sich also am Mainstream. XMPP, Jitsi, Tox und andere Exotenlösungen haben meiner Meinung nach zu viele Ecken und Kanten um sinnvoll nutzbar zu sein. Zumal bei Kommunikationslösungen ja immer mehr als eine Person dazu gehören und ich die Benutzung dieser Dienste niemandem (nicht mal mir selbst!) aufbürden möchte.

Dienste

Das leitet ganz allgemein zu den Diensten über. Die allgemeine Richtlinie lautet: Man versuche freie Dienstangebote zu nutzen und nicht den großen Datenkraken weiteres verwertbares Material zu liefern. Letztes Jahr bin ich zu DuckDuckGo gewechselt - an die Gründe erinnere ich mich gar nicht mehr - daran hat sich auch nichts geändert. Zu Navigationsdiensten nutze ich meist Apple Maps, da es besser in meinen Arbeitsalltag integriert ist als OpenStreetMap und erstaunlicherweise Nutzerdaten ziemlich gut schützt (siehe: Kartendienste unter die Lupe genommen).

Ansonsten gilt das Prinzip möglichst viel lokal zu erledigen. Musikstreaming inklusive Verwertung meines Geschmacks erspare ich mir beispielsweise immer noch durch ordinären Kauf der gewünschten Alben. Nachrichten kommen per RSS-Feed ohne Zwischendienstleister wie Feedly & Co auf mein System um möglichst wenig über mein Leseverhalten zu teilen. Zur Synchronisation nutze ich seit einiger Zeit FreshRSS (siehe auch: RSS Feeds synchron halten mit FreshRSS)

Grundsätzlich muss man halt immer den Datenschutz mit einkalkulieren und dann entscheiden, ob einem der Dienst das wert ist (siehe: Kommentar: Daten als Faktor einkalkulieren).

Sünden

Die Blogartikel spiegeln also ziemlich gut was bei mir so technisch los ist. Aber das Leben wäre zu schön, wenn man es dabei belassen kann. Ein paar Sünden gibt es dennoch: Auf dem Smartphone ist WhatsApp installiert (mit gesperrtem Kontaktzugriff). Zumindest in meinem Freundes- und Bekanntenkreis kann ich hier keine Wanderungsbewegung zu sicheren Messengern feststellen. Hinzu kommen zwei Streaminganbieter für Filme und Serien, die laut DSGVO-Abfrage ziemlich viel Profilbildung im Hintergrund betreiben. Seit einigen Monaten experimentierte ich mit mobilen Zahlungsmethoden als alternative zur Kartenzahlung (siehe: Apple Pay - Gut umgesetzter Datenschutz) bevorzuge aber nach Möglichkeit weiterhin Bargeld.

Außergewöhnliches

Insgesamt würde ich mein Nutzungsverhalten noch als ziemlich Mainstream-Kompatibel bezeichnen. Es gibt lediglich eine kleine Besonderheit: Zum surfen verwende ich jedoch in einem substanziellen Bereich auch das Tor-Browser-Bunde (siehe: Anonymität im Internet mit TOR) und wenn ich ganz paranoid bin auch Tails (siehe: The Amnesic Incognito Live System). Hierzu habe ich Bereiche mit klarer Identität, wie z. B. hier auf [Mer]Curius, abgetrennt von Bereichen in denen ich anonym unterwegs sein möchte. Während die Tor Browser Bundles für den Desktop und Android klare Fortschritte verzeichnen, machen es einem Cloudflare und Konsorten zunehmend schwerer (siehe: Tor und die lästigen Captcha-Abfragen).

Fazit

Datenschutz und Sicherheit ist für mich spätestens seit 2013 ein wirklich wichtiges Thema. Dieses Projekt hier begleitet mich seit 2014. Die naheliegende Kombination mit Open Source ist bei mir tendenziell auf dem Rückzug. In manchen Bereichen musste ich einfach von puristischen Lösungen oder der dogmatischen Verwendung von Open Source Abstand nehmen. Anstelle von Linux haben Apple-Systeme bei mir inzwischen die Oberhand.

In vielen Bereichen haben aber Fortschritte in der Benutzbarkeit das Leben deutlich vereinfacht. Sichere Kommunikationslösungen wie Signal sind inzwischen weit verbreitet. Der E-Mail Verschlüsselung wurde jedoch 2019 der Todesstoß verpasst (siehe: Reale E-Mail Verschlüsselung - Eine Persiflage). Das war 2013 noch ein Thema, ist aber inzwischen erledigt.

Die größte Bedrohung für den Datenschutz geht von den Tendenzen zu einer immer größeren Automatisierung aus. Smartphone, Assistenzsysteme in Autos, Tracking im Nah- und Fernverkehr. Das Überwachungspotenzial ist hier gewaltig. Wie gut, dass viele in der Privacy-Szene immer noch über Telefonnummern nachdenken (siehe: Telefonnummern - Warum so ein Aufhebens?).


Bilder:

Einleitungs- und Beitragsbild von freestocks.org via Unsplash

"

Um ein NAS sinnvoll nutzen zu können benötigt man eigentlich einen Zugriff auf Gerät von außerhalb. DDNS und Portfreigabe sind hier die Schlagworte. Sobald man sich damit beschäftigt kommen mahnende Stimmen, die auf die mangelnde Sicherheit verweisen. Ignoriert sie!

Natürlich ist der Zugriff auf das heimische Netz ein Sicherheitsrisiko. Wenn man darauf verzichten kann, sollte man genau das tun. Sicherheit erreicht man schließlich durch Minimierung der überflüssigen Angriffsmöglichkeiten. Wer sich aber ein NAS anschafft um damit eine Cloud unter eigener Kontrolle aufzubauen, der hat sich den Sinn gut überlegt, schließlich musste man dafür je nach Gerät nicht unerhebliche Summen investieren.

Besondere Vorsicht sollte man natürlich walten lassen, wenn man eine Person des öffentlichen Lebens ist, starker persönlicher Bedrohung ausgesetzt ist oder in einem verbrecherischen System lebt. Auf die meisten Kunden eines NAS und Leser dieses Blogs wird das aber nicht zutreffen. Sie sind nur der ganz alltäglichen Bedrohung durch einen immer übergriffigeren Staat, spionierende Großkonzerne und neugierigen Familienmitgliedern ausgesetzt.

Bezogen auf jene mahnenden Experten, die das Perfekte zum Feind des Guten machen, wurde vor einigen Jahren der passende Begriff der Sicherheitsnihilisten geprägt (siehe: Sicherheitsnihilismus - Eine treffende Beobachtung). Schauen wir uns die Argumentation und die vorgeschlagenen Lösungen vor. Deren gibt es im wesentlichen drei.

Die erste Gruppe findet, dass eine Freigabe des NAS im Internet das Risiko so groß werden lässt, dass man besser auf kommerzielle Cloudspeicher ausweicht. Diese Leute umgehen also das Risiko einer Ausnutzung einer Sicherheitslücke auf dem eigenen Gerät durch einen Angreifer (immerhin also eine zielgerichtete Attacke) mit dem permanenten Risiko seine Daten bei einem fremden Anbieter zu speichern - wohlmöglich auch noch unverschlüsselt. Anstelle also das eigene Netz Ziel eines Angriffs werden zu lassen, gibt man lieber einem Anbieter, dessen Angestellten, (je nach Gesetzeslage dem Staat) und vielen weiteren die Möglichkeit auf die Daten zuzugreifen. Ganz davon abgesehen natürlich, dass auch die großen Anbieter Opfer von Angriffen werden können und man das Risiko damit nur auslagert.

Die zweite Gruppe sieht das nicht so extrem, sondern empfiehlt den Einsatz eines VPN-Zugriffs anstelle einer Portfreigabe der Dienste. Dadurch bewegt man sich bildlich gesprochen auch in der Ferne im eigenen Netz und kann dann die Dienste des NAS nutzen. Ob das praktikabel ist hängt aber von den Nutzungsszenarien ab, was die Verfechter des Szenarios gerne ignorieren. Insbesondere bei Nutzung des NAS als Sync-Zentrale erfordert dies eine permanente Aktivierung des VPN bei allen Endgeräten. Je nach Nutzungsort oder Land ist das teilweise gar nicht möglich. Diese Lösung funktioniert zudem nur, wenn man lediglich als Einzelperson das NAS nutzt und keine Freigaben für Dritte oder Gruppenzugriffe benötigt.

Die dritte Gruppe richtet alle ihre Endgeräte so ein, dass die Sync-Prozesse erst im Heimnetz aktiv werden und arbeitet außerhalb mit den gespeicherten Zwischenständen. Diese Gruppe ist aber offenkundig nicht sonderlich mobil, da ihr Arbeitsprozess voraussetzt, dass sie regelmäßig mit allen Endgeräten im Heimnetz sind um die Daten abzugleichen.

Meiner Meinung nach kann man diese Bedenkenträger getrost ignorieren. Wenn man ein NAS besitzt, dessen Betriebssystem noch nicht das Supportende erreicht und lediglich die benötigten Dienste und Ports freigegeben hat, verfügt man über ein hinreichendes System. Ein Angriff würde immerhin eine zielgerichtete Attacke mit krimineller Energie auf das eigene Netz voraussetzen. Hier kommt man in einen Bereich, da man sich besser einen Anwalt sucht und Anzeige erstattet, anstelle erweiterte technische Schutzmaßnahmen zu ergreifen.

Vor allem jene verbreitete Gruppe, die lieber auf öffentliche Clouds zurückgreifen um ihr NAS nicht einem potenziellen Angriff auszusetzen haben eine absurde Risikoabwägung vorgenommen. Sie gewichten das Risiko eines zielgerichteten Angriffs höher, als das permanente Datenschutzrisiko durch Rückgriff auf einen kommerziellen Cloudbetreiber. Wer sein NAS nur relativ eingeschränkt nutzt, kann über einen VPN Zugriff nachdenken. Wer dafür sein Nutzungsverhalten zu stark einschränken muss oder aber teile seiner Daten in eine öffentliche Cloud auslagern müsste, sollte seine Risikoabwägung nochmal überdenken.


Bilder:

Einleitungs- und Beitragsbild von Free To Use Sounds via Unsplash

 

Eine wichtige Funktion moderner NAS-Systeme ist die Bereitstellung einer persönlichen Cloud mit vergleichbaren Funktionen wie sie z. B. Dropbox, OneDrive, iCloud oder die zahllosen anderen kommerziellen Dienstleister bieten. Synology bietet hier mit Drive eine einfach einzurichtende und intuitiv zu bedienende Lösung.


Dieser Artikel ist Teil einer Serie:


Auf meinen bisherigen Linux Homeservern lief immer eine ownCloud/Nextcloud (siehe auch: Cloud in Eigenregie III: Nextcloud einrichten). Theoretisch ist es möglich auch auf einem Synology System eine Nextcloud einzurichten. Ich benötige aber nicht die vielen Funktionen einer Nextcloud, da Synology dafür eigene Apps entwickelt hat. Eine Nextcloud auf dem NAS einzurichten erschien mir dann überladen.

Synology hat in der Vergangenheit mit unterschiedlichen Ansätzen gespielt. Ursprünglich entwickelte man die Cloud Station. Diese hat man im dann vor einiger Zeit durch das neue Produkt Drive abgelöst. Im aktuellen DSM 6 System sind beide Pakete noch verfügbar aber im kommenden DSM 7 wird es nur noch das Synology Drive geben. Daher sollte man gleich das Drive einrichten um zukunftsfest zu sein.

Installation und Einrichtung

Die Installation geht wie üblich über das Paket-Zentrum, wo man das Paket Synology Drive Server installieren muss.

Anschließend hat man im App Launcher des NAS drei Symole:

  1. Synology Drive Admin-Konsole
  2. Synology Drive
  3. Synology Drive ShareSync

ShareSync ist eine Funktion um mehrere Synology NAS Systeme miteinander zu verbinden. Dieser relativ spezielle Anwendungsfall wird hier nicht berücksichtigt.

In der Admin-Konsole konfiguriert man das Synolog Drive. In den Einstellungen kann man festlegen welches Volume genutzt werden soll - eine Funktion, die vor allem bei 4-Bay NAS Systemen interessant sein kann. Weiterhin kann man entscheiden ob man die Dateiindizierung für die Suche nutzen möchte und über einige Funktionen entscheiden. Beispielsweise ob man Dateifreigaben überhaupt erlauben möchte.

Das Synology Drive kennt zwei unterschiedliche Typen von Freigaben. Es gibt Benutzerordner, die unter Eigene Dateien angelegt werden und meinem persönlichen Account zugeordnet sind und Team-Ordner für geteilte Freigaben. Was man hier verwendet hängt stark vom Nutzungszenario ab. Team-Ordner machen nur bei mehreren Nutzern in einem Haushalt oder kleinen Büro wirklich Sinn. Der typische Single-Nutzer kann einfach mit seinem persönlichen Account arbeiten. Hier sollte dann lediglich der Eigene Ordner aktiviert sein.

Hinter dem App Launcher Synology Drive verbirgt sich dann eine eigene Web-App mit den typischen Funktionen eines Cloud-Speichers wie sie auch andere Dienstleister bieten. Man kann Dateien verwalten und anlegen, sowie Freigaben organisieren.

Verbindung mit Clients

Spätestens seit Dropbox vor einigen Jahren seinen Client veröffentlichte gehören entsprechende Programme zum Konzept des Cloudspeichers. Sie integrieren den Webspeicher in die Dateiverwaltung des Betriebssystems und sorgen für eine Synchronisation der Dateien, sowie die Möglichkeiten auf die Daten zuzugreifen wenn kein Internet verfügbar ist.

Um von außerhalb des eigenen Netzwerks auf das Synology Drive zugreifen zu können müssen standardmäßig die Ports 6690 und 5001 für die Web-App und die mobilen Clients freigegeben werden. Für die Synchronisation mit den Desktopclients reicht die Freigabe des Ports 6690.

Sofern man die Web-App oder die mobilen Clients benötigt sollte man Synology Drive einen separaten Port zuweisen. Dies geht in der Systemsteuerung unter Anwendungsportal. Hier wählt man die Anwendung und dann die Schaltfläche bearbeiten. In den Einstellungen lässt sich nun ein beliebiger Port wählen (Synology weist drauf hin, wenn ein gewählter Port bereits reserviert ist). Diesen kann man anschließend für die Portweiterleitung im Router freigeben. Dadurch trennt man das Drive von der DSM Konfigurationsoberfläche, die man besser nicht von außerhalb des heimischen Netzes verfügbar macht. Wenn man natürlich aus irgendwelchen Gründen die Oberfläche des DSM bereits freigegeben hat, kann man sich diesen Schritt sparen.

Das Desktoprogramm für Synology Drive steht für Linux, macOS und Windows zur Verfügung. Die Installation erfolgt nach den Vorgaben des jeweiligen Betriebssystems. Leider haben die Programme einige Schwächen. Es handelt sich um Qt-basierte Programme mit einer eigenen Optik. Sie integrieren sich dadurch entsprechend schlecht in alle Betriebssysteme. Die macOS-App ist zudem keine native App, sondern installiert sich ziemlich sonderbar in das Homeverzeichnis des Benutzers unter .SynologyDrive. Weiterhin divergiert der Funktionsumfang je nach Betriebssystem. Die Funktion Sync-on-Demand, bei der die Dateien nicht vollständig synchronisiert werden, sondern erst beim Zugriff im Hintergrund geladen werden gibt es zur Zeit nur für Windows 10.

Die Einrichtung erfolgt ansonsten weitestgehend identisch zu anderen Sync-Clients. Man legt verschiedene Sync-Paare zwischen lokalen Ordnern und Ordnern auf dem NAS an.

Dabei kann man bei allen Betriebssystemen Unterordner ausschließen und Dateien per Filter vom Sync-Prozess ausnehmen. Im Synchronisationsmodus kann man zudem festlegen ob die Dateien immer abgeglichen werden oder lediglich ein Up- respektive Download erfolgen soll.

Innerhalb von Drive-Ordnern kann man über den Client sehr einfach Freigabe-Links erstellen und teilen.

Mobile Apps existieren für Android und iOS. Die Apps integrieren sich optisch ganz passabel in das jeweilige System und bieten einen zufriedenstellenden Funktionsumfang. Im Gegensatz zu ihren Desktoppendants bieten sie standardmäßig lediglich einen Online-Zugriff auf die Ordner mit der Option einzelne Dateien für einen Offline-Zugriff vorzuhalten.

Erfahrungen & Fazit

Synology Drive funktioniert unauffällig im Hintergrund. Die Synchronisationsprozesse funktionieren problemlos und klappen auch nach längeren Offline-Phasen oder bei Dateikonflikten. Durch Versionierung und Link-Freigaben hat man die gleichen Möglichkeiten, wie sie kommerzielle Cloud-Dienstleister bieten. Nur halt gespeichert in den eigenen vier Wänden und unter eigener Kontrolle.

Wünschenswert wäre eine bessere Integration in den jeweiligen Betriebssysteme - sowohl funktional, als auch hinsichtlich des optischen Erscheinungsbilds. Schön wäre zudem wenn neue Funktionen wie Sync-on-Demand auch für macOS und Linux zur Verfügung ständen. Vor allem bei Notebooks mit beschränkten SSD-Kapazitäten möchte man einzelne Ordner nicht komplett synchroniseren, sondern lediglich für den Zugriff bereithalten.


Bilder:
Einleitungs- und Beitragsbild von IO-Images via pixabay

"

13. November 2019

(Wirklich) kurz notiert: Rust 1.39, die Sprache für alle, die "C++ schon durchgespielt haben", ist letzte Woche erschienen.

async und await

Die wohl interessante Änderung ist, dass das async-System langsam zur "Marktreife" gelangt. async und await sind insbesondere für die nebenläufige Programmierung interessant und werden für die Netzwerkprogrammierung intensiv eingesetzt. Konkret ist es nun möglich, Funktionen mit

async fn foo() {

}

zu definieren und diese dann mit .await aufzurufen. Python-Entwickler sollten dieses Verhalten ebenfalls kennen.

Weitere Änderungen

Des Weiteren wurde das Verhalten beim Borrowing und Moving innerhalb von match-Blöcken geändert und (mein persönliches "Highlight") Parameter lassen sich mit Präprozessordirektiven-ähnlichen Attributen für konditionelle Programmierung so definieren, dass bestimmte Parameter einer Funktion z.B. nur auf Windows verfügbar sind.

Wie immer wurden darüber hinaus APIs "stabilisiert", d.h. Pinning und const fn (ähnl. zu constexpr in C++), welche in den letzten Rust-Versionen eingeführt wurden, halten weiter Einzug in die Standardbibliothek.

Happy programming!

12. November 2019

Zockertown.de 12. November 2019 10:03

vimrc

Nur mal so für mich zum merken.

Immer wenn ich mal auf einem neuen (jungfräulichen) Linuxrechner zu tun habe, fehlt mir meine Lieblingseinstellung für den vi

cat ~/.vimrc
:map <F2> :w\|!python3 %<CR>
:color industry
if has("autocmd")
  au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
endif

Der :map auf F2 sorgt für das unmittelbare Ausführen des Python Codes.

Aber das ist nur ein Gimmick.

:color ist selbsterklärend.

Wichtiger für mich ist der autocmd Teil. Das sorgt dafür, dass sich vi(m) merkt, in welcher Zeile ich in jeweiliger Datei war.

Ps: habt ihr evtl. noch andere Dinge, die das Leben erleichtern?

 

10. November 2019

Ein Medion Akoya E1210 fiel mir nach vielen Jahren wieder in die Hände.

Es war Debian 8 Jessi installiert.

Irgendwann war das Gerät zu klein, vor allem die Auflösung und der etwas lahme Prozessor waren wohl das Manko, was zum einmotten führte.

Bevor ich das Teil wieder in die Versenkung schicke, dachte ich mir, guckst du doch mal was das schlaue Internet dazu sagt.

Das Ergebnis:

Das Gerät ist weitgehend baugleich zum MSI Wind U100

Unterschied zum MSI U100: im Medion ist kein eingelötetes RAM, sondern nur ein Steckplatz, der ab Werk mit 1GB bestückt ist.

Der Hammer ist allerdings, dass es die Möglichkeit gibt das E1210 mit dem MSI BIOS zu flashen, um dann auch die Übertaktungsmöglichkeiten zur Verfügung zu haben.. Immerhin sind bis zu 124% CPU Takt drin!

Also ans Werk:

Freedos von http://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/distributions/ geholt,

BIOS von https://www.msi.com/Laptop/support/U100#down-bios.

Damit einen bootfähigen USB Stick konstruiert und das E1210 damit geflasht.

Eine fast 100% richtige Anleitung wie man das macht ist hier:

https://feeding.cloud.geek.nz/posts/creating-freedos-bootable-usb-stick-to/

(Richtig: cp /usr/lib/syslinux/mbr/mbr.bin . Falsch: cp /usr/lib/syslinux/mbr.bin .)

 

Das Gerät muß dazu am Netz sein, wenn es auf Akku läuft, verweigert das Flash Utility die Arbeit mit der irreführenden Fehlermeldung, es hätte die vorhergehende BIOS Version nicht auslesen können, obwohl der Schalter, um die Überprüfung zu übergehen gesetzt ist.

Nach stromlos machen, 30 Sekunden warten muß beim nun folgenden ersten Boot die ESC Taste gedrückt werden, denn wie oben bereits erwähnt hat das MSI Board 1GB eingelötetes RAM, das natürlich initialisiert, bzw. gecheckt wird. Da das beim Medion nicht vorhanden ist, führt der Versuch zum schwarzen, eingefrorenen Bildschirm.

Mein Medion Akoya E1210 läuft nun mit Debian 10 Buster, Mate Desktop und 24% Übertaktung recht flott.

Was mache ich nun damit?

Ich denke im Elektronik Bastelzimmer ist es gut aufgehoben, um mal schnell einen Datenblatt nachzuschlagen oder ähnliches.

Ok, Chromium ist etwas träge, der Epiphany ist ein klein wenig flotter, eine reine Fraude ist das aber auch nicht, vielleicht sollte ich die 12,50€ für einen 2GB Riegel ausgeben, schadet bestimmt nicht. Denn nur der laufende Webbrowser mit ein paar einfachen Seiten und evince mit einem PDF Dokument reichen bereits aus um das RAM auszulasten und ersten 200MB Swap zu nutzen.

Die 80GB Hitachi Platte könnte man noch gegen eine SSD tauschen. Sollte ich mal mein Tuxedo XC1506 aufrüsten, fällt eine gebrauchte SSD 256 ab.

 

 

 

 

 

 

 

Für Software-Projekte werden häufiger mehrere Repositorys benötigt, in denen getrennt und zusammen voneinander entwickelt wird. Dies trifft insbesondere dann zu, wenn etwa eine Bibliothek in mehreren Projekten benötigt wird, aber unabhängig voneinander in den anderen Projekten genutzt wird. Hier ergibt es Sinn, ein separates Git-Repository für die Bibliothek zu nutzen und dieses in die anderen Projekte einzubinden.

git submodule

Eine Möglichkeit solche Unter-Repositorys einzubinden ist die Nutzung von git submodule. Diejenigen die es schon nutzen, dürften wissen, dass die Arbeit mit Submodulen häufig sehr anstrengend und mühselig ist – und das aus verschiedenen UX-Gründen.

Submodule müssen in einem Git-Repository mit git submodule add $REPO_URL zunächst hinzugefügt werden. Dadurch wird im entsprechenden Haupt-Repository die Datei .gitmodules angelegt, die direkt zum Staging-Bereich hinzugefügt wird. Nach einem Commit ist das Submodule korrekt eingebunden. Wenn ihr das Log anschaut, dann seht ihr das Log des Submodules nicht. Wenn ihr in das Unterverzeichnis rein wechselt und euch von dort das Log anschaut, dann seht ihr das Log des Submodule-Repositorys. Sobald ihr nun Commits im Submodule macht, müsst ihr von dort aus die Commits pushen und zurück in das Haupt-Repository wechseln. Von dort muss man dann erneut ein Commit tätigen, um das die Änderungen aus dem Submodule im Haupt-Repository ebenfalls korrekt verwenden zu können. Eine Änderung im Submodule führt also zu mindestens zwei Commits: ein Commit im Submodule und ein Commit im Haupt-Repository.

Komplizierter ist das Verhalten, wenn jemand das Haupt-Repository neuklont. Beim Klonen muss ein rekursiver Clone mit git clone --recursive notwendig oder ihr klont „normal“ und führt dann git submodule init in dem jeweiligen Submodule Verzeichnis aus. Wenn ihr nun noch eine Änderung machen wollt, dann müsst ihr im Submodule-Repository zunächst den richtigen Branch auschecken. Letzteres ist häufig verwirrend, weil man das überhaupt nicht gewohnt ist. Die übrigen Schritte, die zuvor erklärt wurden, kommen dann nochmal obendrauf.

Wer jetzt denkt „Hä?“ oder es ziemlich umständlich findet, denen kann ich jetzt zu Recht sagen: Stimmt! Angenehm ist was anderes. Ganz allgemein lohnen sich Submodule besonders dann, wenn die Versionen in Submodulen selten aktualisiert werden müssen und es demnach keine hohe Entwicklungsaktivität stattfindet.

git subtree

Eine Alternative zu git submodule ist git subtree. Es ist zwar auch nicht die perfekte Lösung, bietet aber einige Vor- und Nachteile im Vergleich zu git submodule.

In produktiven Umgebungen habe ich noch nicht mit git subtree gearbeitet, sondern habe es für diesen Blogpost erst angeschaut. In meinem Git-Repository für meinen Blog, den ihr gerade lest, hatte ich bis gerade eben auch ein Repository als Submodule eingebunden, was dem Theme der Webseite entspricht.

Im Folgenden gehe ich direkt mal in die Praxis und zeige, wie git subtree an einem praktischen Beispiel verwendet werden kann.

Zu Beginn muss das Repository als weiteres Remote-Repository hinzugefügt werden. In der Regel besitzt man Remote-Repositorys origin und vielleicht upstream. In dem Fall hat man zwei Remote-Repositorys, um nach origin seine eigenen Änderungen pushen zu dürfen (bei einem Fork etwa) und upstream, was dem Upstream-Repository des Projektes entspricht.

Das Remote-Repository muss wie folgt angelegt werden:

$ git remote add -f $REMOTE_NAME $REPOSITORY_URL

Der Befehl muss, wie zu sehen ist, mit -f aufgerufen werden. -f ist die kurze Form von --force. Aber warum --force? Das Remote-Repository, was als Subtree hinzugefügt werden soll, hat keine gemeinsame Historie, da die Historie bisher komplett getrennt war. Es ist schlicht kein verwandtes Repository.

In der Praxis sah es bei mir dann so aus:

$ git remote add -f AllinOne git@git.svij.org:svij/hugo_allinone_theme.git
Aktualisiere AllinOne
warning: keine gemeinsamen Commits
remote: Enumerating objects: 968, done.
remote: Counting objects: 100% (968/968), done.
remote: Compressing objects: 100% (574/574), done.
remote: Total 968 (delta 362), reused 947 (delta 351)
Empfange Objekte: 100% (968/968), 24.54 MiB | 11.15 MiB/s, Fertig.
Löse Unterschiede auf: 100% (362/362), Fertig.
Von git.svij.org:svij/hugo_allinone_theme
* [neuer Branch]    master     -> AllinOne/master
* [neues Tag]       v1.0       -> v1.0
* [neues Tag]       v1.1       -> v1.1
* [neues Tag]       v1.2       -> v1.2
* [neues Tag]       v1.3       -> v1.3
* [neues Tag]       v1.4       -> v1.4

Wie ihr sehen könnt, erfolgt eine Warnung, dass es keine gemeinsamen Commits gibt. Davon abgesehen wird das Remote-Repository wie jedes andere Remote-Repository auch gefetcht, also die Objekte heruntergeladen. Bis zu diesem Zeitpunkt haben wir noch nichts spezifisches für git subtree gemacht, das kommt aber jetzt.

Das Hinzufügen mit git subtree benötigt einige Parameter:

$ git subtree add --prefix $PATH_IN_REPO $REMOTE_NAME $BRANCH --squash

Wie ihr seht, ruft man git subtree add mit dem Parameter --prefix auf. Hier kann auch die Kurzform -P genutzt werden. Der Prefix ist der Pfad im Repository, wo der Subtree landen soll. Zudem muss noch der Name des zuvor hinzugefügten Remotes angegeben werden, sowie der Branch. In diesem Fall habe ich auch noch --squash hinzugefügt, damit die bisherigen Historie des Subtree-Repositorys nicht im Haupt-Repository landen soll, sondern nur als einzigen Commit in der Historie der Haupt-Repositorys erscheint.

In meinem Fall sah das Ganze in der Praxis dann so aus:

$ git subtree add --prefix themes/AllinOne AllinOne master --squash
git fetch AllinOne master
Von git.svij.org:svij/hugo_allinone_theme
* branch            master     -> FETCH_HEAD
Added dir 'themes/AllinOne'

Wenn wir uns aber nun die Historie ansehen, sehen wir zwei neue Commits:

$ git log -2 --oneline
e82400c (HEAD -> master) Merge commit '59be897c12c39412755cd93996d85590ef53fdc9' as 'themes/AllinOne'
59be897 Squashed 'themes/AllinOne/' content from commit 88c7956

In dem älteren Commit wurde das angesprochene Squashing des Repositorys durchgeführt, und in dem darauffolgenden Commit ist ein Merge durchgeführt worden. Im konkreten Fall wurde ein Merge von einem Branch durchgeführt, der nicht denselben Ursprung hat.

Falls sich im Subtree-Repository etwas unabhängig vom Haupt-Repository verändert, dann können die Änderungen wie folgt heruntergeladen werden:

$ git fetch AllinOne master
Von git.svij.org:svij/hugo_allinone_theme
* branch            master     -> FETCH_HEAD

Diese sind dann aber noch nicht (!) im Haupt-Repository gemergt. Dazu muss mit folgendem Befehl durchgeführt werden:

$ git subtree pull --prefix themes/AllinOne AllinOne master --squash

Der Parameter sind äquivalent zu den vorherigen Befehlen. Auch hier muss man die vielen Parameter mit angeben.

Anders sieht es allerdings aus, wenn man einen Commit im Haupt-Repository macht, wo der Inhalt des Subtree-Repositorys angefasst wird. In meinem Beispiel will ich etwa das Verzeichnis themes/AllinOne/exampleSite aus dem Haupt-Repository und dem Subtree-Repository entfernen. Die ersten Schritte sind soweit ganz normal:

$ rm -rf themes/AllinOne/exampleSite
$ git add themes/AllinOne
$ git commit -m "Remove exampleSite from AllinOne"
$ git push origin master

Mit diesem Befehl wurde im Haupt-Repository das Verzeichnis entfernt, ein Commit erstellt und gepusht. Dass es sich um ein Subtree-Repository handelt, ist von der Handhabung her nicht zu erkennen.

Was jetzt noch fehlt, ist das Pushen des Commits in das Subtree-Repository. Das funktioniert ähnlich wie auch beim Pull:

$ git subtree push --prefix=themes/AllinOne AllinOne master

Wenn man nun in die Historie des Subtree-Repositorys schaut, sieht man genau einen neuen Commit mit der Commit-Message Remove exampleSite from AllinOne.

Und das war es auch schon. Theoretisch und auch praktisch ist es auch möglich das ganze ohne das git subtree Kommando zu erledigen, was die Handhabung der Subtree-Funktion allerdings nicht erleichtert.

Fazit

Mit git subtree hat man einige Vor- und Nachteile im Vergleich zu git submodule. Die perfekte Lösung ist es auch nicht, da man zwangsläufig ein paar neue Befehle lernen muss und nicht vergessen darf, damit in beiden Repositorys die Änderungen landen.

Welche Vorteile hat also git subtree im Vergleich zu git submodule?:

  • Bei bestehenden Repositorys mit Subtree ist kein git clone --recursive notwendig.
  • Der Workflow um Änderungen im Haupt-Repositorys zu veröffentlichen ist vergleichsweise einfach.
  • Nutzer von Repositorys mit Subtree müssen nicht wesentlich was Neues lernen.

Die Nachteile sind:

  • Ein neuer Befehl subtree mit zahlreichen Parametern wird benötigt.
  • Das Veröffentlichen von Änderungen im Subtree-Repository kann vergessen werden.

Es gibt sicherlich noch den ein oder anderen Vor- und Nachteil in der Praxis, der mir nicht bekannt ist. Da ich es bisher nicht produktiv eingesetzt habe, kann ich dazu noch nicht so viel sagen. Es ist jedenfalls auf Anhieb deutlich angenehmer zu nutzen, als git submodule und das ist dann ja schon mal etwas.

Für Software-Projekte werden häufiger mehrere Repositorys benötigt, in denen getrennt und zusammen voneinander entwickelt wird. Dies trifft insbesondere dann zu, wenn etwa eine Bibliothek in mehreren Projekten benötigt wird, aber unabhängig voneinander in den anderen Projekten genutzt wird. Hier ergibt es Sinn, ein separates Git-Repository für die Bibliothek zu nutzen und dieses in die anderen Projekte einzubinden.

git submodule

Eine Möglichkeit solche Unter-Repositorys einzubinden ist die Nutzung von git submodule. Diejenigen die es schon nutzen, dürften wissen, dass die Arbeit mit Submodulen häufig sehr anstrengend und mühselig ist – und das aus verschiedenen UX-Gründen.

Submodule müssen in einem Git-Repository mit git submodule add $REPO_URL zunächst hinzugefügt werden. Dadurch wird im entsprechenden Haupt-Repository die Datei .gitmodules angelegt, die direkt zum Staging-Bereich hinzugefügt wird. Nach einem Commit ist das Submodule korrekt eingebunden. Wenn ihr das Log anschaut, dann seht ihr das Log des Submodules nicht. Wenn ihr in das Unterverzeichnis rein wechselt und euch von dort das Log anschaut, dann seht ihr das Log des Submodule-Repositorys. Sobald ihr nun Commits im Submodule macht, müsst ihr von dort aus die Commits pushen und zurück in das Haupt-Repository wechseln. Von dort muss man dann erneut ein Commit tätigen, um das die Änderungen aus dem Submodule im Haupt-Repository ebenfalls korrekt verwenden zu können. Eine Änderung im Submodule führt also zu mindestens zwei Commits: ein Commit im Submodule und ein Commit im Haupt-Repository.

Komplizierter ist das Verhalten, wenn jemand das Haupt-Repository neuklont. Beim Klonen muss ein rekursiver Clone mit git clone --recursive notwendig oder ihr klont „normal“ und führt dann git submodule init in dem jeweiligen Submodule Verzeichnis aus. Wenn ihr nun noch eine Änderung machen wollt, dann müsst ihr im Submodule-Repository zunächst den richtigen Branch auschecken. Letzteres ist häufig verwirrend, weil man das überhaupt nicht gewohnt ist. Die übrigen Schritte, die zuvor erklärt wurden, kommen dann nochmal obendrauf.

Wer jetzt denkt „Hä?“ oder es ziemlich umständlich findet, denen kann ich jetzt zu Recht sagen: Stimmt! Angenehm ist was anderes. Ganz allgemein lohnen sich Submodule besonders dann, wenn die Versionen in Submodulen selten aktualisiert werden müssen und es demnach keine hohe Entwicklungsaktivität stattfindet.

git subtree

Eine Alternative zu git submodule ist git subtree. Es ist zwar auch nicht die perfekte Lösung, bietet aber einige Vor- und Nachteile im Vergleich zu git submodule.

In produktiven Umgebungen habe ich noch nicht mit git subtree gearbeitet, sondern habe es für diesen Blogpost erst angeschaut. In meinem Git-Repository für meinen Blog, den ihr gerade lest, hatte ich bis gerade eben auch ein Repository als Submodule eingebunden, was dem Theme der Webseite entspricht.

Im Folgenden gehe ich direkt mal in die Praxis und zeige, wie git subtree an einem praktischen Beispiel verwendet werden kann.

Zu Beginn muss das Repository als weiteres Remote-Repository hinzugefügt werden. In der Regel besitzt man Remote-Repositorys origin und vielleicht upstream. In dem Fall hat man zwei Remote-Repositorys, um nach origin seine eigenen Änderungen pushen zu dürfen (bei einem Fork etwa) und upstream, was dem Upstream-Repository des Projektes entspricht.

Das Remote-Repository muss wie folgt angelegt werden:

$ git remote add -f $REMOTE_NAME $REPOSITORY_URL

Der Befehl muss, wie zu sehen ist, mit -f aufgerufen werden. -f ist die kurze Form von --force. Aber warum --force? Das Remote-Repository, was als Subtree hinzugefügt werden soll, hat keine gemeinsame Historie, da die Historie bisher komplett getrennt war. Es ist schlicht kein verwandtes Repository.

In der Praxis sah es bei mir dann so aus:

$ git remote add -f AllinOne git@git.svij.org:svij/hugo_allinone_theme.git
Aktualisiere AllinOne
warning: keine gemeinsamen Commits
remote: Enumerating objects: 968, done.
remote: Counting objects: 100% (968/968), done.
remote: Compressing objects: 100% (574/574), done.
remote: Total 968 (delta 362), reused 947 (delta 351)
Empfange Objekte: 100% (968/968), 24.54 MiB | 11.15 MiB/s, Fertig.
Löse Unterschiede auf: 100% (362/362), Fertig.
Von git.svij.org:svij/hugo_allinone_theme
* [neuer Branch]    master     -> AllinOne/master
* [neues Tag]       v1.0       -> v1.0
* [neues Tag]       v1.1       -> v1.1
* [neues Tag]       v1.2       -> v1.2
* [neues Tag]       v1.3       -> v1.3
* [neues Tag]       v1.4       -> v1.4

Wie ihr sehen könnt, erfolgt eine Warnung, dass es keine gemeinsamen Commits gibt. Davon abgesehen wird das Remote-Repository wie jedes andere Remote-Repository auch gefetcht, also die Objekte heruntergeladen. Bis zu diesem Zeitpunkt haben wir noch nichts spezifisches für git subtree gemacht, das kommt aber jetzt.

Das Hinzufügen mit git subtree benötigt einige Parameter:

$ git subtree add --prefix $PATH_IN_REPO $REMOTE_NAME $BRANCH --squash

Wie ihr seht, ruft man git subtree add mit dem Parameter --prefix auf. Hier kann auch die Kurzform -P genutzt werden. Der Prefix ist der Pfad im Repository, wo der Subtree landen soll. Zudem muss noch der Name des zuvor hinzugefügten Remotes angegeben werden, sowie der Branch. In diesem Fall habe ich auch noch --squash hinzugefügt, damit die bisherigen Historie des Subtree-Repositorys nicht im Haupt-Repository landen soll, sondern nur als einzigen Commit in der Historie der Haupt-Repositorys erscheint.

In meinem Fall sah das Ganze in der Praxis dann so aus:

$ git subtree add --prefix themes/AllinOne AllinOne master --squash
git fetch AllinOne master
Von git.svij.org:svij/hugo_allinone_theme
* branch            master     -> FETCH_HEAD
Added dir 'themes/AllinOne'

Wenn wir uns aber nun die Historie ansehen, sehen wir zwei neue Commits:

$ git log -2 --oneline
e82400c (HEAD -> master) Merge commit '59be897c12c39412755cd93996d85590ef53fdc9' as 'themes/AllinOne'
59be897 Squashed 'themes/AllinOne/' content from commit 88c7956

In dem älteren Commit wurde das angesprochene Squashing des Repositorys durchgeführt, und in dem darauffolgenden Commit ist ein Merge durchgeführt worden. Im konkreten Fall wurde ein Merge von einem Branch durchgeführt, der nicht denselben Ursprung hat.

Falls sich im Subtree-Repository etwas unabhängig vom Haupt-Repository verändert, dann können die Änderungen wie folgt heruntergeladen werden:

$ git fetch AllinOne master
Von git.svij.org:svij/hugo_allinone_theme
* branch            master     -> FETCH_HEAD

Diese sind dann aber noch nicht (!) im Haupt-Repository gemergt. Dazu muss mit folgendem Befehl durchgeführt werden:

$ git subtree pull --prefix themes/AllinOne AllinOne master --squash

Der Parameter sind äquivalent zu den vorherigen Befehlen. Auch hier muss man die vielen Parameter mit angeben.

Anders sieht es allerdings aus, wenn man einen Commit im Haupt-Repository macht, wo der Inhalt des Subtree-Repositorys angefasst wird. In meinem Beispiel will ich etwa das Verzeichnis themes/AllinOne/exampleSite aus dem Haupt-Repository und dem Subtree-Repository entfernen. Die ersten Schritte sind soweit ganz normal:

$ rm -rf themes/AllinOne/exampleSite
$ git add themes/AllinOne
$ git commit -m "Remove exampleSite from AllinOne"
$ git push origin master

Mit diesem Befehl wurde im Haupt-Repository das Verzeichnis entfernt, ein Commit erstellt und gepusht. Dass es sich um ein Subtree-Repository handelt, ist von der Handhabung her nicht zu erkennen.

Was jetzt noch fehlt, ist das Pushen des Commits in das Subtree-Repository. Das funktioniert ähnlich wie auch beim Pull:

$ git subtree push --prefix=themes/AllinOne AllinOne master

Wenn man nun in die Historie des Subtree-Repositorys schaut, sieht man genau einen neuen Commit mit der Commit-Message Remove exampleSite from AllinOne.

Und das war es auch schon. Theoretisch und auch praktisch ist es auch möglich das ganze ohne das git subtree Kommando zu erledigen, was die Handhabung der Subtree-Funktion allerdings nicht erleichtert.

Fazit

Mit git subtree hat man einige Vor- und Nachteile im Vergleich zu git submodule. Die perfekte Lösung ist es auch nicht, da man zwangsläufig ein paar neue Befehle lernen muss und nicht vergessen darf, damit in beiden Repositorys die Änderungen landen.

Welche Vorteile hat also git subtree im Vergleich zu git submodule?:

  • Bei bestehenden Repositorys mit Subtree ist kein git clone --recursive notwendig.
  • Der Workflow um Änderungen im Haupt-Repositorys zu veröffentlichen ist vergleichsweise einfach.
  • Nutzer von Repositorys mit Subtree müssen nicht wesentlich was Neues lernen.

Die Nachteile sind:

  • Ein neuer Befehl subtree mit zahlreichen Parametern wird benötigt.
  • Das Veröffentlichen von Änderungen im Subtree-Repository kann vergessen werden.

Es gibt sicherlich noch den ein oder anderen Vor- und Nachteil in der Praxis, der mir nicht bekannt ist. Da ich es bisher nicht produktiv eingesetzt habe, kann ich dazu noch nicht so viel sagen. Es ist jedenfalls auf Anhieb deutlich angenehmer zu nutzen, als git submodule und das ist dann ja schon mal etwas.

8. November 2019

Als ich meinen ersten Heim-Server installiert habe war ich noch von der Variante “Bare Metal” überzeugt und hielt es für die beste Option um die Performance nutzen zu können. Damals fanden die ersten Tests noch mit Debian 7 und das erste produktive System mit Ubuntu 10.04 statt. Die Hardware war nicht besonders leistungsfähig und noch auf 32 Bit.

Seitdem sind einige Linux Versionen veröffentlicht worden und auch die Hardware wurde leistungsfähiger. Die ersten Berührungen mit Virtualisierung im beruflichen Umfeld fand ich nicht immer überzeugend und es dauerte einige Jahre bis ich die Vorteile zu schätzen lernte.

Nun nutze ich auch im privaten Bereich VirtualBox um meinen Server zu betreiben. Für mich steht hier weniger die optimale Auslastung des Rechners im Vordergrund. Vielmehr kann ich den Server so optimal sichern, einfach als OVA Datei exportieren und ich kann auf jedem Rechner, egal ob Windows oder Linux sehr schnell den Server wieder zum laufen bekommen.

Auf meinem Host System läuft Ubuntu 18.04.2 in der Standart-Installation und Virtual-Box ist aus den Paketquellen installiert. In den virtuellen Maschinen nutze ich Ubuntu 18.04.2 Server (Live-Installer). Ich bin mit dem System und der Performance sehr zufrieden und sehe in diesem Bereich die Virtualisierung als beste Lösung an.

Die aktuelle Ubuntu Server Version mit Live-Installer ist eine wirklich geeignete Software für dieses Vorhaben. Im Gegensatz zum “alten” Debian Installer hat man zwar weniger Kontrolle über Details der Installation aber mit wenigen Klicks hat man einen soliden Server installiert der sinnvolle Voreinstellungen vornimmt und aktuelle Technik an Bord hat.