staging.inyokaproject.org

31. Oktober 2020

Anoxinon e.V. fragt in einer Umfrage bis zum 01.12.2020 nach 3 FOSS-Projekten, die unterstützt werden sollen. Danach wird es einen Spendenaufruf geben und das Projekt mit den meisten Stimmen erhält die Spenden + 500€ von Anoxinon.

Ich finde das eine tolle Idee und habe für folgende Projekte gestimmt:

Welchen Projekten habt ihr eure Stimme gegeben?

30. Oktober 2020

Mozilla hat die Release-Termine bis Sommer 2021 offiziell bekannt gegeben. Firefox 85 (und alle nachfolgenden Versionen) werden zwei Wochen später als von manchem vielleicht erwartet erscheinen.

Neue Major-Releases von Firefox erscheinen mittlerweile alle vier Wochen. Auf diese Weise erreichen Neuerungen schneller den Endnutzer, der nicht viele Monate auf bereits implementierte Funktionen warten muss.

Mozilla hat die Veröffentlichungstermine von Firefox bis Sommer 2021 nun offiziell bekannt gegeben. Große Überraschungen gibt es keine, jedoch eine Verschiebung von zwei Wochen, was Firefox 85 und alle darauffolgenden Versionen betrifft, wenn man den bereits bekannten Vier-Wochen-Zyklus strikt auslegen möchte.

Firefox 85 wird eine besondere Veröffentlichung, da Mozilla mit Firefox 85 die Unterstützung des Adobe Flash Players endgültig einstellen wird. Dass Adobe das sogenannte End of Life des Flash Players ebenfalls um zwei Wochen auf den 12. Januar 2021 verschoben hat, dürfte mehr als Zufall zu betrachten sein und keine Rolle spielen. Tatsächlich ist es schlicht und ergreifend die Weihnachts- und Neujahr-Zeit, welche traditionell auch bei Mozilla jedes Jahr zu stark eingeschränkten Ressourcen zwischen Mitte Dezember und Januar führt, so dass hier eine „Verschiebung“, wäre ein Termin denn bereits offiziell angekündigt gewesen, fast schon zu erwarten war.

Das sind die Release-Termine bis Sommer 2021

Firefox 83, Firefox ESR 78.5
17. November 2020 (4 Wochen nach Firefox 82)

Firefox 84, Firefox ESR 78.6
15. Dezember 2020 (4 Wochen nach Firefox 83)

Firefox 85, Firefox ESR 78.7
26. Januar 2021 (6 Wochen nach Firefox 84)

Firefox 86, Firefox ESR 78.8
23. Februar 2021 (4 Wochen nach Firefox 85)

Firefox 87, Firefox ESR 78.9
23. März 2021 (4 Wochen nach Firefox 86)

Firefox 88, Firefox ESR 78.10
20. April 2021 (4 Wochen nach Firefox 87)

Firefox 89, Firefox ESR 78.11
18. Mai 2021 (4 Wochen nach Firefox 88)

Firefox 90, Firefox ESR 78.12
15. Juni 2021 (4 Wochen nach Firefox 89)

Firefox 91, Firefox ESR 91.0, Firefox ESR 78.13
13. Juli 2021 (4 Wochen nach Firefox 90)

Der Beitrag Firefox: Release-Termine 2021 erschien zuerst auf soeren-hentzschel.at.

28. Oktober 2020

Mozilla hat Firefox 82.0.2 für Windows, Apple macOS sowie Linux veröffentlicht und behebt damit ein Problem der Vorgängerversion.

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

Nur einen Tag nach Veröffentlichung von Firefox 82.0.1 hat Mozilla noch einmal nachgelegt und Firefox 82.0.2 mit einer weiteren Korrektur veröffentlicht, welche es nicht mehr in das vorherige Update geschafft hatte.

Firefox 82.0.2 behebt ein Problem, welches auf Websites, die WebSockets nutzen, zu duplizierten Nachrichten führen konnte.

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

27. Oktober 2020

Mozilla hat Firefox 82.0.1 für Windows, Apple macOS sowie Linux veröffentlicht und behebt damit mehrere Probleme der Vorgängerversion.

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

Mit dem Update auf Firefox 82.0.1 hat Mozilla eine mögliche Absturzursache behoben.

Weiter hat Mozilla zwei Probleme mit der Druckfunktion behoben. Zum einen konnte es beim Ausdruck von Dokumenten zu einem zusätzlichen Randabstand kommen, der wiederum abgeschnittenen Inhalt verursachen konnte. Zum anderen ist es wieder möglich, auf Papiergrößen zu drucken, deren Breite oder Höhe größer als 100 Zoll ist.

Bei der Installation von Firefox auf Windows forderte der Installer unter bestimmten Umständen zum Neustart von Windows auf.

Außerdem wurde ein Problem in Zusammenhang mit dem Marionette Testing-Framework behoben.

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

Bei Linuxnews gab es in den vergangenen Tagen zwei Artikel, die sich mit dem BER des Linux Desktops beschäftigen: Wayland. Weder ist es reif für den Produktiveinsatz, noch wird das Vorgängersystem aktiv gepflegt. Und bis es kommt, gibt es vielleicht den Bedarf nicht mehr. Es ist gleichzeitig ein anschauliches Beispiel für die Abhängigkeit des Linux Desktops von einer einzigen Firma: Red Hat.

Wayland kommt einfach nicht. Die Ablösung von X.org ist eigentlich Konsens, weil das System zu viele Altlasten mitschleppt und Wayland ist eigentlich auch seit Jahren stabil aber bei den Anwender ist es immer noch nicht angekommen. Die GNOME Shell läuft so halbwegs mit Wayland, KDE Plasma/KWin behauptet seit Jahren jetzt bald endlich auch mal vernünftig mit Wayland zu funktionieren. Die kleineren Desktops (Xfce, MATE & Konsorten) erwähnt man in diesem Kontext besser gar nicht.

Das Thema ist schwierig, denn im Gegensatz zu vielen anderen zentralen Bestandteilen (Kernel, systemd, Multimedia-Framework etc. pp.) braucht nur der Desktop Wayland - eben genau jenes Produkt, welches kommerziell noch nie irgendwo ein Erfolg war. Weshalb halt außer Red Hat auch keine nennenswerte Firma mehr Ressourcen in den Linux Desktop steckt. Die umso wichtigeren freiwilligen Entwickler zersplittern sich dann noch auf ein halbes Dutzend Projekte und entwickeln das Rad quasi jedes Mal neu. Dieses Stereotyp über freie Software und die Zersplitterung stimmt in diesem Fall wirklich mal. Die in jedem Projekt vorhandenen Ressourcen scheinen dann nicht mehr für eine so große Migration zu reichen.

Das Vorgängermodell pflegt aber auch niemand mehr aktiv. Eine abgekündigte Software ist nicht sexy, dementsprechend übernehmen das hauptsächlich bezahlte Red Hat Mitarbeiter. Hier gibt es aber Bestrebungen, die Entwicklung möglichst bald einzustellen, da GNOME inzwischen halbwegs zufriedenstellend mit Wayland läuft.

Übergeordnet verschiebt sich gerade noch mehr. IBM spaltet sich demnächst auf und das neue "IBM" soll sich auf Cloud und Software-Lösungen konzentrieren. In diesem Zusammenhang betont man dort die sinnvolle Akquise von Red Hat. Ich bezweifle ja schon länger, dass IBM dem defizitär-liebhaberischen Treiben Red Hats im Deskop-Bereich lange zusehen wird (siehe: Kommentar: IBM übernimmt Red Hat - Auswirkungen auf Linux).

Doch wer sollte diese Lücke füllen?


Bilder:

Einleitungs- und Beitragsbild von Megan_Rexazin via pixabay

"

Kurzmeldung: Das neue Fedora ist da. Soeben wurde Fedora 33 veröffentlicht. Die von Red Hat gesponserte Communitydistribution war ursprünglich bereits für vergangene Woche angekündigt und wurde nun mit einigen Tagen Verzögerung freigegeben.

Fedora 33 verwendet standardmäßig nun das Dateisystem Btrfs. LTS-Versionen gibt es bei der „blauen Distribution“ anders als bei Ubuntu nicht, jede Version wird nur knapp 13 Monate unterstützt. Auf ein Rolling-Release-Modell wird jedoch ebenfalls verzichtet.

26. Oktober 2020

Dieses Tutorial erklärt, wie der Let’s Encrypt Client (LE-Client) acme.sh mit dem Plugin dns_nsupdate auf einem Linux-System installiert und zur Nutzung der „DNS-01 challenge“ im DNS-Alias-Modus konfiguriert werden kann.

Um dem Tutorial folgen zu können, sollte man den grundlegenden Umgang mit einem Terminal und einer weitgehend POSIX-kompatiblen Shell beherrschen. Grundlegende Kenntnisse der Funktion von DNS und Resource Records sind hilfreich, jedoch nicht erforderlich und können im Zweifel unter den verlinkten Seiten erworben werden.

In diesem Tutorial werden nicht die Vor- und Nachteile der „DNS-01 challenge“ diskutiert. Diese können unter vorstehendem Link nachgelesen werden.

Die Begriffe SSL-Zertifikat, TLS-Zertifikat oder nur Zertifikat werden in diesem Tutorial synonym verwendet. Der zum Zertifikat gehörende Schlüssel wird als Private-Key bezeichnet.

Umfeld

Im Folgenden werden die Begriffe Subdomain und Zone synonym verwendet. Es sei darauf hingewiesen, dass diese Begriffe in einem anderen Kontext eine unterschiedliche Bedeutung haben können.

Als Beispiel-Domain wird example.org mit den beiden Subdomains foo.example.org und bar.example.org verwendet. Um dem acme.sh-Client keinen direkten Zugriff auf diese DNS-Zonen geben zu müssen, hat der DNS-Anbieter die DNS-Zone acme.foo.example.org definiert, welche für den Zweck der DNS-Challenge verwendet wird.

Der Nameserver für alle in diesem Tutorial verwendeten Domains lautet ns.example.org.

Vom DNS-Anbieter wird ein sogenannter TSIG-Schlüssel bereitgestellt, welcher berechtigt ist TXT-Ressource-Records in der oben genannten DNS-Zone acme.foo.example.org anlegen zu können. In diesem Tutorial werden folgender Name und Wert für einen TSIG-Schlüssel angenommen:

  • TSIG-NAME: acme-key
  • TSIG-WERT: SuperGeheim1111elf==
  • TSIG-Algorithmus: hmac-sha512

Das Ziel soll nun sein, ein Zertifikat ausgestellt zu bekommen, welches für die beiden folgenden Hostnamen gültig ist:

  • host.foo.example.org
  • mein-schoener-host.bar.example.org

In diesem Tutorial wird als Webserver Apache in der Distribution RHEL 7 verwendet. Die entsprechende Service-Unit lautet demnach httpd.service. Wird ein anderer Webserver oder eine andere Distribution verwendet, ist der Name der Service-Unit entsprechend anzupassen (z.B. nginx.service).

Sinn und Zweck des DNS-Alias-Modus

Der DNS-Alias-Modus kann verwendet werden, wenn man einem Programm wie dem acme.sh-Client keinen direkten API-Zugriff auf die DNS-Zonen der eigenen Domain geben möchte. In diesem Abschnitt werde ich beispielhaft erklären, warum eine Nutzung dieses Modus angeraten erscheint.

Bevor Let’s Encrypt ein Zertifikat ausstellt, muss der anfragende Client beweisen, dass er die administrative Kontrolle über die Domain hat. Im Falle der DNS-Challenge geschieht dies indem ein TXT-Record in der jeweiligen DNS-Zone erstellt wird. Der LE-Client benötigt somit Zugriff mit Schreibberechtigung auf die entsprechenden DNS-Zonen. Dies kann jedoch verheerende Folgen haben, wenn der Host mit dem LE-Client kompromittiert wird. Ein Angreifer könnte hierdurch API-Zugang erlangen und die Informationen einer (oder mehrere) DNS-Zonen löschen. Oder noch schlimmer, die Einträge manipulieren bzw. eigene Einträge hinzufügen.

In unserer Organisation hat daher nur autorisiertes Personal mit personalisierten Zugangsdaten Zugriff auf ausgewählte Zonen.

Eine wichtige Eigenschaft von personalisierten Zugangsdaten ist, dass diese nur von der Person verwendet werden, an die sie ausgehändigt wurden. Diese sollten tunlichst nicht in einen LE-Client eingetragen werden, den man anschließend für Monate oder Jahre sich selbst überlässt.

Der DNS-Alias-Modus funktioniert so, dass der DNS-Anbieter eine Zone einrichtet, in der dynamische Updates durch LE-Clients gestattet sind. Die Authentifizierung und Autorisierung kann mittels sogenannter TSIG-Schlüssel durchgeführt werden.

Als Sysadmin erstellt man nun einen CNAME-Eintrag in der eigentlichen DNS-Zone, z.B. foo.example.org welcher auf die Zone acme.foo.example.org zeigt. Der LE-Client legt während der DNS-Alias-Challenge eine TXT-Record in der Zone acme.foo.example.org an. Let’s Encrypt kann nun über den CNAME den erstellten TXT-Record validieren. Anschließend wird das Zertifikat an den LE-Client ausgestellt.

Wird der LE-Client kompromittiert, sind damit zwar auch die auf ihm gespeicherten Private-Keys kompromittiert (was schon schlimm genug ist), es kann jedoch darüber hinaus nur die sogenannte DNS-Alias-Zone manipuliert werden. Eine Manipulation der eigentlichen Zone bleibt ausgeschlossen.

Installation des acme.sh-Clients

Um ein neu ausgestelltes bzw. erneuertes Zertifikat und den dazugehörigen Private-Key in einem Webserver zu verwenden, muss die Webserver-Konfiguration neu geladen werden. Dazu sind meist Root/sudoer-Rechte erforderlich. In diesem Tutorial wird der acme.sh-Client unter einem User mit sudo-Berechtigung installiert.

Hinweis: Das Projekt empfiehlt die Nutzung von sudo ausdrücklich nicht. Weitere Informationen finden sich unter dem Link: https://github.com/acmesh-official/acme.sh/wiki/sudo

Da ich glaube, zu wissen, was ich tue, werde ich hier optional die Einrichtung unter einem User mit sudo-Berechtigung dokumentieren. Befehle sind entsprechend mit oder ohne sudo auszuführen, je nachdem welcher User verwendet wird.

Zur Installation führt man folgende Kommandos aus (Quelle):

git clone https://github.com/acmesh-official/acme.sh.git
cd ./acme.sh
./acme.sh --install

Durch die Installationsroutine werden folgende drei Aktionen durchgeführt:

  1. Erstellen und Kopieren von acme.sh in das HOME-Verzeichnis ($HOME): ~/.acme.sh/. Unterhalb dieses Verzeichnisses werden die ausgestellten Zertifikate abgelegt.
  2. Erstellen eines Alias für: acme.sh=~/.acme.sh/acme.sh.
  3. Erstellen eines täglichen cron job, welcher die Restlaufzeit der Zertifikate prüft und diese ggf. verlängert.

Beispiel eines Cron-Jobs:

1 0 * * * "/home/alice/.acme.sh"/acme.sh --cron --home "/home/alice/.acme.sh" > /dev/null

Nach der Installation meldet man sich am besten einmal neu an, damit der Alias für acme.sh genutzt werden kann.

Anlegen der CNAME-Records

Nun legen wir die CNAME-Records an, welche für den DNS-Alias-Mode benötigt werden (Quelle).

_acme-challenge.host.foo.example.org IN CNAME acme.foo.example.org
_acme-challenge.mein-schoener-host.bar.example.org IN CNAME acme.foo.example.org

Der vom DNS-Anbieter bereitgestellte TSIG-Schlüssel ist ausschließlich zum Erstellen von Records in der Zone acme.foo.example.org berechtigt. Mit dem CNAME-Record weisen wir quasi nach, dass wir die Kontrolle über die DNS-Zone haben und dort Ressource-Records erstellen dürfen, während der acme.sh-Client nur berechtigt ist Einträge in jenen Zonen zu erstellen, auf welche die CNAME-Records verweisen.

Dies geschieht aus Sicherheitsaspekten. Auf diese Art und Weise wird verhindert, dass ein kompromittierter Host mit acme.sh-Client die wichtigen Zonen überschreiben kann.

Beantragung, Ausstellen und Installation eines Zertifikats

Die Überschrift deutet bereits an, dass der folgende Prozess aus drei Schritten besteht. Ich beginne mit einem optionalen Schritt, in dem ich die notwendige Konfiguration für einen sudo-User erkläre.

Optional: Konfiguration für non-root-User

Wer den acme.sh-Client unter dem User root installiert hat, kann diesen Abschnitt überspringen. An dieser Stelle wird die Konfiguration eines sudo-Users beschrieben.

Verwendet wird dabei ein Useraccount, der bereits über sudo-Berechtigungen verfügt, sich bei der Verwendung von sudo jedoch mit einem Passwort authentisieren muss. Im Folgenden nennen wir diesen Useraccount Alice.

Anpassung der sudoers-Datei

Da für die Installation des Let’s Encrypt Zertifikats in einem Webserver ein Reload der Konfiguration des Webservers erforderlich ist und dies später automatisch (ohne Passworteingabe) geschehen soll, ist eine Anpassung der sudoers-Datei von Alice erforderlich.

Die sudoers-Datei von Alice (/etc/sudoers.d/alice) sieht zu Beginn wie folgt aus:

alice  ALL=(ALL) ALL

Um Alice nun das Recht zu geben, die Webserver-Konfiguration ohne Passworteingabe neu zu laden, wird folgende Zeile hinzugefügt. Dabei ist die Reihenfolge der Zeilen zu beachten (siehe sudoers(5)). Die Bearbeitung der Datei wird mit dem Kommando sudo visudo -f /etc/sudoers.d/alice durchgeführt.

alice  ALL=(ALL) ALL
alice  ALL=(ALL) NOPASSWD: /bin/systemctl reload httpd.service

Verzeichnis für TLS-Zertifikate und Private-Keys erstellen

Zur weiteren Nutzung durch den Webserver, sollen die Zertifikate und Private-Keys in einem Verzeichnis gespeichert werden, auf das Alice Schreibrechte hat. Der Verzeichnisname kann dabei abweichend vom folgenden Beispiel frei gewählt werden. Im Beispiel wird die Gruppe apache verwendet. Diese ist ggf. an das eigene System anzupassen:

sudo mkdir -m 750 /etc/letsencrypt
sudo chown alice.apache /etc/letsencrypt

Die folgenden Schritte sind für root und alice gleich. Nur muss alice einige Befehle halt mit sudo auführen. Diese sind entsprechend gekennzeichnet. root lässt ein führendes sudo einfach weg.

Zertifikat beantragen und austellen

Wie eingangs erwähnt, wird ein TSIG-Schlüssel und das Plugin dns_nsupdate genutzt, um dynamische Zonen-Updates auf dem Nameserver durchzuführen. Um den acme.sh-Client entsprechend zu konfigurieren, wird zuerst eine Key-Datei erstellt, welche den TSIG-Schlüssel in JSON-Notation enthält (vgl. Abschnitt Umfeld).

Wichtig: Der TSIG-Schlüssel erlaubt dynamische Zonen-Updates im DNS. Er ist geheim zu halten und bestmöglich zu schützen.

Der Name der Datei ist dabei frei wählbar. Ich empfehle die Datei im HOME-Verzeichnis des Users abzulegen, welcher den acme.sh-Client ausführt und die Datei nur für diesen User lesbar zu machen (chmod 0400 DATEINAME). Beispiel:

cat ~/.nsupdate.key
key "acme-key" {
  algorithm hmac-sha512;
  secret "SuperGeheim1111elf==";
};

chmod 0400 ~/.nsupdate.key

Als nächstes werden notwendige Informationen über den Nameserver und unseren TSIG-Key verfügbar gemacht. Die folgenden Kommandos sind einmalig auszuführen. Die Werte werden vom acme.sh-Client später automatisch in ~/.acme.sh/account.conf gespeichert (Quelle).

export NSUPDATE_SERVER="ns.example.org"
export NSUPDATE_KEY="/home/alice/.nsupdate.key"

Nun ist es endlich soweit, dass ein Zertifikat ausgestellt werden kann. Für die in diesem Tutorial verwendeten Werte lautet der Befehl dazu wie folgt:

acme.sh --issue --dns dns_nsupdate -d host.foo.example.org -d mein-schoener-host.bar.example.org --challenge-alias acme.foo.example.org

Der folgende Code-Block zeigt ein konkretes Beispiel unter Verwendung der Staging-Umgebung.

acme.sh --issue --staging --dns dns_nsupdate -d host.foo.example.org -d mein-schoener-host.bar.example.org --challenge-alias acme.foo.example.org

[Fr 4. Sep 09:52:41 CEST 2020] Using ACME_DIRECTORY: https://acme-staging-v02.api.letsencrypt.org/directory
[Fr 4. Sep 09:52:42 CEST 2020] Using CA: https://acme-staging-v02.api.letsencrypt.org/directory
[Fr 4. Sep 09:52:42 CEST 2020] Create account key ok.
[Fr 4. Sep 09:52:42 CEST 2020] Registering account: https://acme-staging-v02.api.letsencrypt.org/directory
[Fr 4. Sep 09:52:43 CEST 2020] Registered
[...]
[Fr 4. Sep 09:52:43 CEST 2020] Creating domain key
[Fr 4. Sep 09:52:44 CEST 2020] The domain key is here: /home/alice/.acme.sh/host.foo.example.org/host.foo.example.org
.key
[Fr 4. Sep 09:52:44 CEST 2020] Multi domain='DNS:host.foo.example.org,DNS:mein-schoener-host.bar.example.org'
[Fr 4. Sep 09:52:44 CEST 2020] Getting domain auth token for each domain
[Fr 4. Sep 09:52:46 CEST 2020] Getting webroot for domain='host.foo.example.org'
[Fr 4. Sep 09:52:46 CEST 2020] Getting webroot for domain='mein-schoener-host.bar.example.org'                                             
[Fr 4. Sep 09:52:46 CEST 2020] Adding txt value: 2tG2NCvV23KGUNCSGeVO3P_UVaOVAG4t0ehbv1cJbtY for domain:  _acme-challenge.acme.foo.example.org
[Fr 4. Sep 09:52:46 CEST 2020] adding _acme-challenge.acme.foo.example.org. 60 in txt "2tG2NCvV23KGUNCSGeVO3P_UVaOVAG4t0ehbv1cJbtY"
[Fr 4. Sep 09:52:46 CEST 2020] The txt record is added: Success.
[Fr 4. Sep 09:52:46 CEST 2020] Adding txt value: yFbL8EF6xQre3v3RfYiCYQ8X4KH0gykagD9_oRfIvgA for domain:  _acme-challenge.acme.foo.example.org
[Fr 4. Sep 09:52:46 CEST 2020] adding _acme-challenge.acme.foo.example.org. 60 in txt "yFbL8EF6xQre3v3RfYiCYQ8X4KH0gykagD9_oRfIvgA"
[Fr 4. Sep 09:52:46 CEST 2020] The txt record is added: Success.
[Fr 4. Sep 09:52:46 CEST 2020] Let's check each DNS record now. Sleep 20 seconds first.
[Fr 4. Sep 09:53:07 CEST 2020] Checking host.foo.example.org for _acme-challenge.acme.foo.example.org                       
[Fr 4. Sep 09:53:07 CEST 2020] Not valid yet, let's wait 10 seconds and check next one.
[Fr 4. Sep 09:53:20 CEST 2020] Checking mein-schoener-host.bar.example.org for _acme-challenge.acme.foo.example.org
[Fr 4. Sep 09:53:21 CEST 2020] Domain mein-schoener-host.bar.example.org '_acme-challenge.acme.foo.example.org' success.
[Fr 4. Sep 09:53:21 CEST 2020] Let's wait 10 seconds and check again.
[Fr 4. Sep 09:53:32 CEST 2020] Checking host.foo.example.org for _acme-challenge.acme.foo.example.org
[Fr 4. Sep 09:53:32 CEST 2020] Domain host.foo.example.org '_acme-challenge.acme.foo.example.org' success.
[Fr 4. Sep 09:53:32 CEST 2020] Checking mein-schoener-host.bar.example.org for _acme-challenge.acme.foo.example.org
[Fr 4. Sep 09:53:32 CEST 2020] Already success, continue next one.                                                                          
[Fr 4. Sep 09:53:32 CEST 2020] All success, let's return
[Fr 4. Sep 09:53:32 CEST 2020] Verifying: host.foo.example.org
[Fr 4. Sep 09:53:35 CEST 2020] Pending
[Fr 4. Sep 09:53:38 CEST 2020] Success
[Fr 4. Sep 09:53:38 CEST 2020] Verifying: mein-schoener-host.bar.example.org                                                               
[Fr 4. Sep 09:53:41 CEST 2020] Success
[Fr 4. Sep 09:53:41 CEST 2020] Removing DNS records.
[...]
[Fr 4. Sep 09:53:41 CEST 2020] Removed: Success
[Fr 4. Sep 09:53:41 CEST 2020] Verify finished, start to sign.
[Fr 4. Sep 09:53:41 CEST 2020] Lets finalize the order.
[Fr 4. Sep 09:53:41 CEST 2020] Le_OrderFinalize='https://acme-staging-v02.api.letsencrypt.org/acme/finalize/15482274/142528495'
[Fr 4. Sep 09:53:42 CEST 2020] Downloading cert.
[Fr 4. Sep 09:53:42 CEST 2020] Le_LinkCert='https://acme-staging-v02.api.letsencrypt.org/acme/cert/fa6e5a9922acccb49619cc8808f6f0916dc0'
[Fr 4. Sep 09:53:43 CEST 2020] Cert success.
[...]
[Fr 4. Sep 09:53:43 CEST 2020] Your cert is in  /home/alice/.acme.sh/host.foo.example.org/host.foo.example.org.cer
[Fr 4. Sep 09:53:43 CEST 2020] Your cert key is in  /home/alice/.acme.sh/host.foo.example.org/host.foo.example.org.key
[Fr 4. Sep 09:53:43 CEST 2020] The intermediate CA cert is in /home/alice/.acme.sh/host.foo.example.org/ca.cer
[Fr 4. Sep 09:53:43 CEST 2020] And the full chain certs is there:  /home/alice/.acme.sh/host.foo.example.org/fullchain.cer

Damit liegen alle benötigten Dateien auf unserem Host. Im nächsten Schritt werden diese in die korrekte Lokation installiert.

Installation der Zertifikate für Apache

Das folgende Beispiel gilt für den Webserver Apache und ist der Dokumentation des acme.sh-Clients entnommen. Auf der verlinkten Seite findet sich ein weiteres Beispiel für den Webserver NGINX.

Das Kommando im folgenden Beispiel enthält am Ende den Parameter --reloadcmd "sudo systemctl reload httpd.service. Das sudo ist notwendig, wenn man einen User mit sudo-Berechtigungen wie z.B. Alice nutzt (siehe oben). Als root lässt man sudo einfach weg. Ggf. muss der Name der Service-Unit an das eigene System angepasst werden.

acme.sh --install-cert -d host.foo.example.org --cert-file /etc/letsencrypt/host.foo.example.org.cer --key-file /etc/letsencrypt/host.foo.example.org.key --fullchain-file /etc/letsencrypt/host.foo.example.org.fullchain.cer --reloadcmd "sudo systemctl reload httpd.service"

Hat alles funktioniert, erzeugt obiger Befehl folgende Ausgabe:

[Fr 4. Sep 12:36:22 CEST 2020] Installing cert to:/etc/letsencrypt/host.foo.example.org.cer
[Fr 4. Sep 12:36:22 CEST 2020] Installing key to:/etc/letsencrypt/host.foo.example.org.key
[Fr 4. Sep 12:36:22 CEST 2020] Installing full chain to:/etc/letsencrypt/host.foo.example.org.fullchain.cer
[Fr 4. Sep 12:36:22 CEST 2020] Run reload cmd: sudo systemctl reload httpd.service
[Fr 4. Sep 12:36:22 CEST 2020] Reload success

Hinweis: Der Webserver bzw. VirtualHost des Webservers muss so konfiguriert werden, dass die Zertifikate aus dem entsprechenden Pfad auch verwendet werden. Diese Konfiguration ist nicht Gegenstand dieses Tutorials. Es wird hierzu auf die Dokumentation des genutzten Webservers verwiesen.

Die Dateiberechtigungen für oben installierte Dateien sind nach der Installation einmalig zu korrigieren und ggf. mit chown und chmod so zu konfigurieren, dass nur Alice und der Webserver-User Zugriff darauf haben. Wichtig: Der Private-Key darf unter keinen Umständen von allen Usern gelesen werden dürfen. Folgender Code-Block zeigt eine mögliche Berechtigung:

ls -l /etc/letsencrypt/
total 12
-rw-r-----. 1 alice apache 1964  4. Sep 15:09 host.foo.example.org.cer
-rw-r-----. 1 alice apache 3644  4. Sep 15:09 host.foo.example.org.fullchain.cer
-rw-r-----. 1 alice apache 1679  4. Sep 15:09 host.foo.example.org.key

Die Dateiberechtigungen bleiben bei einer Erneuerung des Zertifikats und beim Überschreiben der existierenden Dateien erhalten.

Die vorgenommenen Einstellungen und Befehle werden in der Datei ~/.acme.sh/account.conf gespeichert. In der Standard-Einstellung wird das Zertifikat automatisch alle 60 Tage erneuert, in den angegebenen Pfaden installiert und ein Neustart des Webservers durchgeführt.

Weiterführende Quellen und Links

  1. A Technical Deep Dive: Securing the Automation of ACME DNS Challenge Validation: https://www.eff.org/deeplinks/2018/02/technical-deep-dive-securing-automation-acme-dns-challenge-validation
  2. How-to install acme.sh: https://github.com/acmesh-official/acme.sh/wiki/How-to-install
  3. Install from Git: https://github.com/acmesh-official/acme.sh#2-or-install-from-git
  4. Set up Let’s Encrypt certificate using acme.sh as non-root user: https://gist.github.com/Greelan/28a46a33140b65c9a045573ca460f044

25. Oktober 2020

Heute noch ein gedrucktes Buch zu einem IT Thema kaufen, wo doch so viele Informationen kostenfrei im Internet zur Verfügung stehen? Bei dem im mitp Verlag erschienen Buch "Private Cloud und Home Server mit Synology NAS" von Andreas Hofmann lohnt es sich trotzdem. Alleine die schiere Fülle an Informationen ist konkurrenzlos.

Das Buch hebt sich schon durch seinem Umfang von den üblichen IT Ratgebern ab. Mal eben im Sessel lesen ist auf die Dauer eine Herausforderung für die Handgelenke - vorausgesetzt man hat die Printausgabe. Aber das soll natürlich kein Kriterium für eine Bewertung sein, denn auf knapp 600 Seiten wird das Thema Synology NAS nahezu erschöpfend behandelt. Der umfassende Anspruch erinnerte mich ein wenig an das legendäre Linux Handbuch von Michael Kofler, auch wenn dieses mehr als doppelt so dick ist. Allerdings ist "Linux" auch ein viel größeres Thema.

Synology eignet sich auch deshalb verhältnismäßig gut für ein klassisches Medium wie ein Handbuch, da sowohl das Produktportfolio, als auch die Softwareumgebung ziemlich statisch ist. Viele Neuerungen fallen in den Bereich Produktpflege und machen das Handbuch nicht gleich obsolet.

Die Print-Variante kostet 29,99 €, das e-book ist etwas preiswerter und schlägt mit 25,99 € zu Buche. Was man bevorzugt hängt sicherlich vom individuellen Geschmack ab.

Inhalt

Das Inhaltsverzeichnis des Buches ist sehr fein strukturiert. Vor allem bei Handbüchern schätze ich das, weil gezielt die passende Stelle angesteuert werden kann. Die Kapitel bauen aufeinander auf, der Autor bemüht sich allerdings jedes Kapitel für sich genommen lesbar zu halten. Das ist eine kaum zu unterschätzende Leistung, wenn man dabei gleichzeitig große Redundanzen vermeiden möchte.

Die Kapitel folgen lose dem Grad Einsteiger - Fortgeschrittene - Professionelle. Wobei es auch als fortgeschrittener Anwender interessant sein kann die ersten Kapitel zu lesen. Andreas Hofmann schafft es relativ komplizierte Sachen wie die einzelnen RAID-Typen auch für Einsteiger greifbar zu machen.

Die meisten Einsteiger werden vor allem die ersten 5 Kapitel schätzen. Der Autor führt gekonnt durch den für Außenstehende unübersichtlichen Modell-Zoo von Synology, verweist auf die elementaren Punkte wie Festplattenanzahl und Leistungsfähigkeit, ohne immer die teuren Modelle zu empfehlen. Anschließend wird der Zusammenbau und initiale Konfiguration erläutert.

Fortgeschrittene Nutzer können direkt die Kapitel 7 bis 9 ansteuern und lernen dort die Konfiguration einer persönlichen Cloud und die Zugriffsmöglichkeiten aus dem Internet.

Beide Zielgruppen sollten aber Kapitel 10 Beachtung schenken, denn dort werden elementare Sicherheitsprinzipien erklärt, ohne gleich auf die paranoide "Ohne VPN ist alles Mist" Schiene zu verfallen, die man viel zu oft im Internet liest.

Es folgen dann noch sehr spezielle Kapitel, die einen je nach Einsatzszenario mehr oder weniger interessieren dürften. Dank des gut strukturierenden Inhaltsverzeichnisses ist es überhaupt kein Problem die subjektiv relevanten Punkte zu finden.

Zum Schluss kommen dann noch wirkliche Expertenthemen wie der Einsatz als Webserver. Ein Bereich mit dem ich mich selbst bisher kaum beschäftigt hatte ich von dem ich immer ausging, dass kaum jemand hierfür ein Synology NAS betreibt.

Etwas künstlich wirkt das letzte Kapitel zu Nextcloud. Es hat nur sehr entfernt etwas mit Synology zu tun und ersetzt hinsichtlich der Funktionen viele native Dienste. Im Sinne einer stimmigen Gesamtdarstellung hätte man sich dieses Kapitel sparen können. Das gleiche gilt für die lose Inhaltesammlung im letzten Kapitel, die zwar direkt mit Synology zu tun haben aber besser in die inhaltliche Struktur der restlichen Kapitel gepasst hätte. So wirkt sie wie ein liebloser Nachtrag.

Bewertung

Das Buch hat Potenzial zum deutschsprachigen Standardwerk für Synology zu werden. Viele Kapitel dürften weit über das Jahr 2020 gültig bleiben und mich immer wieder zu diesem Buch greifen lassen. Informationen zu Synology finden sich im deutschsprachigen Raum sonst oft nur auf Youtube im Kanal von iDomiX und schmale Einstiegsbüchern mit wenig Mehrwert, weshalb Andreas Hofmanns Buch gewissermaßen in eine Lücke stößt.

Das Handbuch ist gut zu lesen, hat ein angemessenes Niveau und ist im Gegensatz zu manch anderen deutschsprachigen IT-Handbüchern sorgfältig gearbeitet. Deshalb auch mein obiger Vergleich mit Koflers Linux Handbuch.

Hoffentlich gibt der Absatz regelmäßig aktualisierte Neuauflagen her.

Transparenzhinweis: Der Verlag stellte mir ein kostenfreies Rezensionsexemplar für diesen Artikel zur Verfügung.

"

22. Oktober 2020

2020 ist das Jahr der Videokonferenz. Dienstreisen und Meetings wurden in den virtuellen Raum verlegt. Dabei spielt natürlich zunehmend die Frage eine Rolle, wer diesen Raum kontrolliert und über die Sicherheit entscheidet. Der Primus Zoom war deshalb im Frühjahr heftiger Kritik ausgesetzt. Nun hat es Big Blue Button erwischt.

Die Kritik im Frühjahr an Zoom war heftig. Proprietär, unsicher, mangelhafter Respekt vor Datenschutz - die Vorwürfe waren mannigfaltig und vor allem die Open Source Community blies hier heftig mit ins Horn. Teilweise auch ungerechtfertigt, denn verschlüsselte Gruppenvideotelefonie bot bis dahin niemand an. Aber man hatte ja Jitsi Meet und Big Blue Button, für die man fleißig die Werbetrommel rührte.

Das ist natürlich nicht falsch. Digitale Souveränität kann es nicht geben, wenn vom Ministerium bis zur kleinen Firma alle von der Kommunikationslösung einiger weniger vorwiegend US-amerikanischer Firmen abhängig sind. Die funktionalen Defizite und Probleme in der Stabilität, insbesondere bei vielen Teilnehmern, wurden zwar von manchen etwas leichtfertig unter den Tisch gekehrt, aber im Grunde genommen können wir dankbar sein, dass es diese Projekte gibt.

Der Golem-Bericht zeigt halt nun, dass diese kleinen Projekte nicht unbedingt professioneller auf das Thema Sicherheit und Datenschutz reagieren als die ach so bösen IT-Konzerne. Die Liste der Vorwürfe reicht von Intransparenz, verschleppten Sicherheitsfixes und üblen Designentscheidungen bei Themen wie Videoaufzeichnung und Stummschaltung. Bei Zoom & Co wäre die erregungsfreudige Internet-Öffentlichkeit vermutlich schon durch die Decke gegangen.

Das ist meiner Meinung nach aber nicht mal das Hauptproblem. Die Sicherheitsprobleme bei BBB sind mal wieder symptomatisch für die Probleme viel genutzter Open Source Projekte. Ein kleines Team entwickelt und zukunftsversprechende Software und leistet im Rahmen ihrer Möglichkeiten großartige Arbeit. Zahllose kleine, aber auch sehr viele große Anbieter greifen dann auf die Software zurück - und geben dann in der Regel nichts zurück. Die Gründe hierfür sind mannigfaltig. Zwei Hauptprobleme seien aber angesprochen. Open Source ist bei vielen eben doch oft Freibier und die Finanzierung der meist spendenbasiert agierenden Projekte für die öffentliche Hand schwierig. Eine öffentliche Einrichtung darf schlicht nicht an Projekte spenden.

Ein Teufelskreis, von dem letztlich nur die proprietären Dienstanbieter profitieren.


Bilder:

Einleitungs- und Beitragsbild von Mudassar Iqbal via Pixabay 

"

21. Oktober 2020

Die MZLA Technologies Corporation hat mit Thunderbird 78.4 ein Update für seinen Open Source E-Mail-Client veröffentlicht.

Neuerungen von Thunderbird 78.4

Mit dem Update auf Thunderbird 78.4 nimmt Thunderbird automatisch eine Umwandlung von bestehenden Yahoo- und AOL-Konten auf die mittlerweile bei diesen Diensten verpflichtende Authentifizierung via OAuth2 vor.

Darüber hinaus wurden weitere MailExtension-Schnittstellen implementiert sowie diverse Fehler-Korrekturen vorgenommen und Sicherheitslücken geschlossen. Eine vollständige Liste der Änderungen gibt es in den Release Notes (engl.).

Der Beitrag Thunderbird 78.4 veröffentlicht erschien zuerst auf soeren-hentzschel.at.

Besucht man heute eine durchschnittliche Website, so werden unzählige Skripte und Tracker nachgeladen. Dadurch können die Webseitenbetreiber, Google, Facebook, usw. Daten über mich sammeln und meinen Streifzug durch die Weiten des Internets verfolgen. Zum Glück muss man sich diesem Treiben nicht ergeben und es gibt viele sinnvolle Erweiterungen z.B. für den Browser (uBlock Origin, uMatrix, etc.). Diese Lösungen haben den Nachteil, dass ich sie auf jedem Gerät und für jeden Browser einzeln installieren muss. Deshalb möchte ich heute vorstellen, wie man Werbung und unerwünschte Inhalte mit pfSense und pfBlockerNG netzwerkweit filtern kann. Das ist z.B. sinnvoll in einem Heim- oder Schulnetzwerk.

pfBlockerNG installieren

Zuerst loggen wir uns in pfSense ein und öffnen den Package Manager. Dort wählen wir pfBlockerNG-devel unter „Available Packages“ aus:

pfBlockerNG installieren

Mit „Install“ können wir das Paket installieren. PfSense lädt nun das pfBlockerNG Paket herunter und fügt es der Firewall hinzu.

pfblockerng installation fertig

pfBlockerNG Ersteinrichtung

Als nächsten werden wir pfBlockerNG konfigurieren. Dazu gehen wir zu Firewall  → pfBlockerNG.

pfblockerNG Menü

Es begrüßt und ein Assistent, der uns bei der Einrichtung von pfBlockerNG helfen wird. Mit „Next“ geht es weiter.

pfBlockerNG Assistent Seite 1

Auf der nächsten Seite wird erklärt, welche Dinge nun eingerichtet werden:

  • Es wird ein Standard-Setup für Anfänger mit pfBlockerNG eingerichtet.
  • Falls man vorher schon einmal pfBlockerNG installiert hatte, werden alle Einstellungen gelöscht.
  • Zwei Komponenten werden installiert:
    • IP: Firewall-Regeln für die WAN-Schnittstelle, um die schlimmsten bekannten Angreifer zu sperren.
    • DNSBL: Werbung und andere bekannte bösartige Domains werden geblockt.

Mit „Next“ geht es wieder weiter.

pfBlockernNG Assistent Seite 2

Im nächsten Schritt müssen wir die eingehende Schnittstelle (WAN) und ausgehende Schnittstelle (LAN) auswählen. Wenn man mehrere interne Schnittstellen hat, kann man alle diejenigen auswählen für die man pfBlockerNG einrichten will. Möchte man z.B. das Gäste-WLAN filtern, aber nicht das WLAN für die Lehrkräfte, kann man hier die entsprechenden Schnittstellen aus bzw. abwählen.

pfBlockerNG Schnittstellen

Als nächstes müssen wir eine sogenannte VIP-Adresse festlegen. Auf dieser läuft der Webserver von pfBlockerNG und sollte unter keinen Umständen eine IP aus einem verwendeten Netzwerk sein! Wenn das LAN-Netz z.B. 192.168.1.1/24 ist, sollte die VIP-Adresse nicht in diesem Bereich liegen. Hier in unserem Beispiel lassen wir die Adresse bei 10.10.10.1. Die Ports muss man i.d.R. nicht ändern.

pfBlockerNG VIP Adresse

Das Setup ist nun fertig und wir können den Assistenten mit einem Klick auf „Finish“ beenden.

pfBlockerNG Setup Ende

Danach öffnet sich die pfBlockerNG Updateseite und es werden automatisch alle aktivierten Blocklisten heruntergeladen und aktiviert.

pfBlockerNG einrichten

Wir haben nun ein fertig eingerichtetes pfBlockerNG Setup, dass unerwünschte Werbung und bösartige Domains und Webseiten blockiert. pfBlockerNG ist aber ein sehr mächtiges & flexibles Werkzeug. Deshalb möchte ich gern ein paar Einstellungen hervorheben.

Wichtig: Damit geänderte Einstellungen auch wirksam werden (egal, ob DNSBL oder IP), müssen wir unter Update → Reload → All → Run ausführen, damit die (geänderten) Listen heruntergeladen und aktiviert werden.
pfblockerng update

IP

Im IP Reiter, empfehle ich folgende Einstellungen:

  • Floating Rules → Enable. Wenn man nur eine interne Schnittstelle hat, kann man es auch deaktiviert lassen. Bei vielen Schnittstellen (z.B. in einem Schulnetzwerk), macht es Sinn, diesen Punkt zu aktivieren, damit die Firewallregeln übersichtlicher bleiben.
  • Kill States → Enable. Wenn pfBlockerNG die Blocklisten aktualisiert, werden alle aktiven Verbindungen zu IPs in den Listen zurückgesetzt.pfblockerNG IP Einstellungen

GeoIP Blocking

Möchte man Zugriffe aus bestimmten Regionen der Erde verbieten, muss man sich zuallererst einen kostenloses Konto bei MaxMind erstellen. Daraufhin erhält man einen Lizenzschlüssel, den man unter IP → MaxMind GeoIP Configuration eintragen. Danach muss man einmal unter Update → Reload → IP die GeoIP Datenbanken herunterladen.

pfblocker geoip

Nun können wir unter IP → GeoIP die gewünschten Kontinente oder Top-Spammer auswählen. Dazu klicken wir auf den kleinen Stift rechts und wählen dann in der Liste alle Einträge aus. Unten wählen wir noch „Deny Both“ (List Action). Top Spammer

Hinweis zu „Deny Inbound“ und „Deny Outbound“: „Deny Inbound“ bedeutet, dass die IPs für alle eingehenden Verbindungen geblockt werden. Wenn man z.B. einen Webserver betreibt und man möchte bestimmte Länder blocken, dann kann man das mit „Deny Inbound“ machen. „Deny Outbound“ gilt für alle ausgehenden Verbindungen, d.h. ich kann mich von einem Rechner im Netzwerk nicht zu dieser IP verbinden. Hier muss man aufpassen! Wenn ich z.B. alle IPs Nordamerikas mit „Deny outbound“ sperre, kann ich ab sofort keine Webseiten mehr erreichen, die auf diesem Kontinent gehostet sind!

DNSBL / Feeds

pfBlockerNG blockt neben IPs auch Domains. Es findet also keine Man-in-the-Middle-Attacke statt, um Inhalte zu filtern, sondern es wird einfach in eine lange Liste geschaut, ob eine Domain erlaubt ist oder nicht (funktioniert auch mit HTTPS). Unter Feeds können wir einstellen, welche Listen aktiv genutzt werden sollen. Es gibt dabei Feeds für IP Blocklisten, als auch für DNSBL, also Blocklisten für DNS / Domains.

Alle aktivierten Feeds haben einen Haken am Ende der Zeile. Wenn wir nun einen noch nicht aktiven Feed hinzufügen wollen, klicken wir einfach auf das „+“:

Feed hinzufügen

Es öffnet sich eine Seite auf der wir Details zu dem Feed einstellen können. Folgende Felder sind wichtig:

  • State: ON
  • Action: Unbound
  • Update Frequency: Once a day

Feed Details

Manchmal möchte man einen Feed hinzufügen, der nicht in der Liste ist (z.B. einzelne Feeds von Steven Black). Dazu gehen wir zu DNSBL → DNSBL Groups und klicken unten auf „Add“:

Feed hinzufügen

Auf der nächsten Seite geben wir der DNSBL Gruppe einen Namen und fügen und DNSBL Source Definitions unseren Feed (oder mehrere) hinzu.

  • Name: StevenBlack
  • State: ON
  • Source: https://raw.githubusercontent.com/StevenBlack/hosts/master/alternates/gambling/hosts
  • Header / Label: Glückspiel
  • Action: Unbound
  • Update Frequency: Once a day

Mit „Save“ schließen wir den Vorgang ab.

Custom Feed

Whitelists

Wenn eine Domain nicht geblockt werden soll, muss man sie unter DNSBL → DNSBL Whitelist in die Whiteliste aufnehmen. Wenn man einen Punkt („.“) vor den Domainnamen setzt, werden auch alle Subdomains freigeschaltet, sonst nur genau die (Sub)Domain, die man eingetragen hat.

DNSBL whitelist

SafeSearch

Unter DNSBL → DNSBL SafeSearch kann man SafeSearch für die bekanntesten Suchmaschinen einstellen. Weiterhin können wir auch noch DNS over HTTPS von Firefox blockieren sowie Beschränkungen für Youtube einstellen.

DNSBL SafeSearch

pfSense als DNS Server erzwingen

Damit auch alle Anfragen in unserem Netzwerk durch pfBlockerNG gefiltert werden, müssen wir verhindern, dass jemand im Netzwerk einen anderen DNS-Server als den DNS-Server von pfSense verwendet. Dazu erstellen wir 2 Regeln für die LAN-Schnittstelle (mehr Details hier):

DNS Regel

Fazit

pfBlockerNG ist ein tolles Open Source Projekt. Es hilft Werbung, unerwünschte Inhalte und ganze Netzbereiche zu filtern. Egal ob IPs oder DNS-Blocklisten – mit pfBlockerNG kann man beides verwalten und so konfigurieren, wie man es für sein Netzwerk haben möchte. Es gibt aber auch Alternativen für pfBlockerNG, z.B. pi-hole, welches sich gut auf einem Raspberry Pi oder in einer VM bzw. Container installieren lässt. Unter Strich bleibt, dass ein werbefreies Netzwerk möglich ist!

Nutzt du pfBlockerNG oder pi-hole in deinem (Schul)Netzwerk?

 

Der Beitrag pfBlockerNG – Werbung und unerwünschte Inhalte filtern erschien zuerst auf zefanjas.

20. Oktober 2020

Mozilla hat Firefox 82 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

Performance-Verbesserungen

Mozilla hat die Geschwindigkeit in mehreren Bereichen verbessert. Websites, welche ein Flexbox-Layout nutzen, sollen 20 Prozent schneller als zuvor laden. Das Wiederherstellen einer Sitzung soll im Mittel 17 Prozent schneller sein als zuvor. Und für Nutzer von Windows soll das Öffnen von neuen Fenstern zehn Prozent schneller als bisher sein.

Ebenfalls Nutzer von Windows profitieren von der Nutzung von DirectComposition für das Hardware-Decoding von Videos, was zu einer verbesserten CPU- und GPU-Nutzung führt und dies wiederum zu einer verbesserten Akkulaufzeit.

PDF-Ebenen ein- und ausblenden

Mit der vorherigen Version Firefox 81 hatte Mozilla zahlreiche Verbesserungen des PDF-Betrachters implementiert, darunter ein neues Design, die Möglichkeit, PDF-Formulare auszufüllen, sowie die Unterstützung von Ebenen. Mit Firefox 82 ist es nun auch möglich, einzelne Ebenen gezielt ein- und auszublenden.

Firefox 82

Vorschau: Hinzufügen beliebiger Suchmaschinen

Firefox ermöglicht bereits das Hinzufügen von Suchmaschinen entweder über den OpenSearch-Standard, falls von der jeweiligen Website implementiert, via WebExtension oder Unternehmensrichtlinie. In Zukunft wird es eine weitere Möglichkeit geben, beliebige Suchmaschinen zu Firefox hinzufügen zu können. Dieses Feature befindet sich noch in Entwicklung und kann bereits vorab getestet werden, indem über about:config der Schalter browser.urlbar.update2.engineAliasRefresh als neuer Boolean-Schalter mit dem Wert true angelegt wird.

Suchmaschine hinzufügen in Firefox 82

Suchmaschine hinzufügen in Firefox 82

Weitere Informationen zu dieser Neuerung gibt es in einem gesonderten Artikel.

Verbesserungen der Webplattform

Die MediaSession API erlaubt es Webentwicklern, Media-Benachrichtigungen des Betriebssystems anzupassen. Außerdem kann der Browser über die Schnittstelle auf die Media-Tasten von Tastaturen, Headsets etc. reagieren, so dass darüber Website-Funktionen genutzt werden können, ohne dass die Website im Vordergrund sein muss.

Das CSS Pseudo-Element ::file-selector-button erlaubt die visuelle Anpassung des Durchsuchen-Buttons von Upload-Feldern.

Eine Verhaltensänderung von window.name sorgt dafür, dass diese Eigenschaft nicht länger als XSS-Schwachstelle ausgenutzt werden kann.

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

Sonstige Neuerungen in Firefox 82

Die Schaltfläche zum Starten des Bild-in-Bild-Modus für Videos wurde optisch überarbeitet und besser positioniert. Für Nutzer von Apple macOS gibt es nun auch einen Tastatur-Kurzbefehl, um diesen Modus zu starten.

Die Entwicklerwerkzeuge können jetzt serverseitige Events im Netzwerkanalyse-Werkzeug anzeigen.

Firefox 82
(Screenshot-Quelle: hacks.mozilla.org)

Für Nutzer der englischsprachigen Version von Firefox gibt es beim Speichern von Seiten in Pocket nun direkt Vorschläge für weitere Artikel.

Auch wurde in Firefox 82 WebRender wieder für weitere Nutzer ausgerollt. Genauer gesagt wurde die minimal erforderliche Treiber-Version für Intel-GPUs erneut gesenkt, außerdem wird WebRender nun auch für Nutzer älterer Versionen von Windows 10 ausgeliefert.

Die Darstellung von Trennlinien in Kontextmenüs unter macOS Big Sur wurde korrigiert.

Beim Toolbar-Button für den Firefox Account gibt es unter „Tab an Gerät senden“ jetzt auch einen Menüeintrag, um zur Verwaltung aller verbundenen Geräte zu gelangen.

Für Entwickler von WebExtensions erwähnenswert ist, dass die Cookie-Berechtigung nicht länger erforderlich ist, um die cookieStoreId eines Tabs zu erhalten, was es nun möglich macht, sogenannte Tab-Umgebungen ohne zusätzliche Berechtigung nur dafür zu erkennen.

Beim Download von WebExtensions von anderen Seiten als addons.mozilla.org warnt Firefox, dass man sicherstellen soll, dass man der Website vertraut, bevor man fortfährt. Für Erweiterungen, welche Teil von Mozillas Programm empfohlener Erweiterungen sind, entfällt diese Warnung ab Firefox 82.

Natürlich kam auch in Firefox 82 die Unterstützung weiterer Unternehmensrichtlinien dazu. Auch Verbesserungen der Barrierefreiheit sowie diverse Fehlerbehebungen und Korrekturen unter der Haube kamen wie immer dazu.

Geschlossene Sicherheitslücken

Wie immer hat Mozilla auch in Firefox 82 wieder mehrere Sicherheitslücken geschlossen. Alleine aus Gründen der Sicherheit ist ein Update auf Firefox 82 daher für alle Nutzer dringend empfohlen.

Der Beitrag Mozilla veröffentlicht Firefox 82 – die Neuerungen erschien zuerst auf soeren-hentzschel.at.

18. Oktober 2020

Die MZLA Technologies Corporation hat mit Thunderbird 78.3.3 ein Update für seinen Open Source E-Mail-Client veröffentlicht.

Neuerungen von Thunderbird 78.3.3

Mit dem Update auf Thunderbird 78.3.3 nehmen die Entwickler von Thunderbird einmal mehr Verbesserungen an der OpenPGP-Unterstützunug vor. Außerdem wurde behoben, dass Termine im Kalender keinen Titel erforderten.

Der Beitrag Thunderbird 78.3.3 veröffentlicht erschien zuerst auf soeren-hentzschel.at.

13. Oktober 2020

Mozilla hat Firefox 81.0.2 für Windows, Apple macOS sowie Linux veröffentlicht und behebt damit einen Fehler im Tracking-Schutz.

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

Mozilla hat Firefox 81.0.2 veröffentlicht und behebt damit genau ein Problem. Ein Fehler im Schutz vor Aktivitätenverfolgung verursachte bei strenger Konfiguration (kein Standard), dass Benutzer auf Twitter nur eine Fehlerseite sahen.

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

12. Oktober 2020

Die MZLA Technologies Corporation hat mit Thunderbird 78.3.2 ein Update für seinen Open Source E-Mail-Client veröffentlicht.

Neuerungen von Thunderbird 78.3.2

Mit dem Update auf Thunderbird 78.3.2 nehmen die Entwickler von Thunderbird mehrere Verbesserungen und Fehlerkorrekturen vor. So wird Thunderbird unter anderem nicht mehr automatisch Updates installieren, wenn die Einstellungen geöffnet werden. Auch gab es wieder Verbesserungen der OpenPGP-Unterstützung und mehr. Eine vollständige Liste der Änderungen gibt es in den Release Notes (engl.).

Der Beitrag Thunderbird 78.3.2 veröffentlicht erschien zuerst auf soeren-hentzschel.at.

Auch JWM kann nicht alles, aber erstaunlich viel – und bleibt dabei flott und übersichtlich. Wenn man etwas Zeit mitbringt, sich in die Konfiguration einzufuchsen, erhält man mit minimalen Mitteln eine mächtige Linuxoberfläche.


JWM mit zwei Panels

Gnome ist klasse, KDE ist super – aber reine Fenstermanager haben nichts von ihrem Reiz verloren: schnell, individuell und hochflexibel kann man sich damit eine effiziente Linux-Arbeitsumgebung selbst zusammenstellen. Wer jedoch glaubt, mit Openbox, Fluxbox & Co. schon alles Relevante ausprobiert zu haben, der irrt. Und auch als langjähriger Linuxnutzer ist man immer wieder überrascht, was da noch alles für Perlen schlummern. Der Fenstermanager „JWM“ ist so ein Kandidat. Wenn er irgendwo erwähnt oder gezeigt wird, wirkt er immer wie eine Art Basis-WM, gemacht für den rudimentären (Not-)Betrieb für ganz schwachbrüstige Rechner. Welch ein Irrtum. Zwar setzen viele Distributionen für PCs mit geringer Hardwareausstattung (etwa Puppy Linux, Damn Small Linux oder Vector Linux Light Edition) bevorzugt auf JWM als Standardoberfläche, doch auch auf moderneren Systemen macht JWM eine ausgezeichnete Figur.

Merkmale

Funktional steckt er sogar manch anderen Fenstermanager in die Tasche und bietet ein paar Konzepte, die es in dieser Form bei den Mitbewerbern nicht gibt. Als Beispiel sind hier die Snap-Funktion zu nennen, bei der Fenster angepasst auf Bildschirmbereiche oder den gesamten Monitor vergrößert werden können, indem man die Fenster an einen Rand des Bildschirms zieht.


Ein anderer Farbverlauf auf der nächsten Arbeitsfläche. Auch weitere Bilder wären möglich

Ein Alleinstellungsmerkmal ist das Darstellen von verschiedenen Hintergrundbildern pro Desktop. Während andere Fenstermanager mit Bordmitteln gar kein Hintergrundbild erlauben und man dafür die Autostartfunktion plus Extraprogramm nutzt, kann lässt sich bei JWM bei Bedarf sogar ein Desktopbild pro Arbeitsfläche angeben. Das automatische Starten von Programmen auf verschiedene Arbeitsflächen ist auch möglich – oder das Wechseln der Arbeitsflächen mit dem Mausrad. Bei Betrieb mehrerer Monitore kann ein Panel über alle Bildschirme reichen.

Eine weitere Besonderheit ist, dass man die gesamte Konfiguration über eine einzige Textdatei steuert. Andere verbreitete Fenstermanager haben ihre Einstellungen meist auf mehrere Dateien verteilt. Bei JWM ist es unerheblich, ob man ein Menü, Panel, den Autostart, Arbeitsflächen- oder Fensterverhalten ändern will, man bleibt dazu immer in derselben Datei.

Die Panels

Im Gegensatz zu etwa Openbox bietet JWM die Möglichkeit, mit Bordmitteln ein Panel anzulegen (bei JWM „Tray“ genannt). Anders als bei IceWM und Fluxbox ist es aber nicht in der Grundkonfiguration vorhanden, man muss es sich selbst einrichten. Dafür sind dann auch mehrere Panels möglich. Klassische Taskleisten mit Menüs, Programmstartern, Benachrichtigungsfeld und Uhrzeit lassen sich damit ebenso bauen wie Pseudo-„Docks“ zum Starten von Anwendungen.


JWM mit einer anderen Panel-Konfiguration

Die Taskliste gruppiert auf Wunsch die geöffneten Fenster einer Anwendung und kann entweder nur die Fenster der gerade aktiven Arbeitsfläche oder die Fenster von allen Arbeitsflächen gemeinsam anzeigen. Dabei verhält sich die Taskleiste wie ein Dock: Klickt man auf eine Programmgruppe in der Taskleiste, werden die jeweiligen Fenster alle gemeinsam wieder in den Vordergrund geholt, es öffnet sich kein Menü, wo man erst auswählen muss. JWM ist damit wohl der einzige Fenstermanager, der so etwas wie Dock-Funktionalität in eine Taskleiste integriert. Panels können permanent sichtbar sein oder lassen sich standardmäßig ausblenden und werden nur bei Berührung der Bildschirmkante sichtbar.

Beschränkungen

Intelligentes Ausblenden der Panels, also das Ausweichen vor aktiven Fenstern, ist nicht möglich. Außer in einem Panel erhält man auch keine Taskliste, man kann sich auf keinem alternativen Weg über geöffnete Fenster informieren. Die bekannte Tastenkombination Alt+Tab wechselt ebenfalls direkt zwischen den Fenstern durch, ohne eine Auswahlliste anzuzeigen. Fenster lassen sich nicht mit der Maus auf eine andere Arbeitsfläche ziehen, das funktioniert jedoch per Tastenkürzel.


Mögliches Menü bei Mausklick auf den Desktop

Auch Theming funktioniert mit JWM nur rudimentär und rein mit Bordmitteln – den Fensterdekos lassen sich nicht ohne Weiteres Graphiken überstülpen, optische Anpassungen funktionieren ebenfalls über die globale Konfigurationsdatei. Auf den bekannten „Eycandy“-Seiten taucht JWM daher gar nicht auf. Die Fensterdekorationen kennen dabei nur 2 Grundstile: flach oder klobig. Farblich und in der Größe kann man sie jedoch beliebig verändern. JWM unterstützt Transparenz in Panels, Menüs und Fenstern, jedoch muss dazu ein Compositing-Manager wie Compton laufen.

JWM einrichten

Die Konfigurationsdatei wird mit XML geschrieben, was sie ein wenig unübersichtlich macht. Dafür sind auf diese Weise schnell einzelne Anpassungen und Erweiterungen der jeweiligen Funktion möglich. Die Datei wird einfach als .jwmrc im Home-Verzeichnis angelegt. Anhand einer Beispielkonfiguration aus der Dokumentation kann man sich gut an der Einrichtung entlanghangeln. Manches ist selbsterklärend, doch ganz so intuitiv wie manche Kollegen ist JWM nicht. Um alle Funktionen auszureizen, kommt man am Studium der Konfigurationsanleitung nicht vorbei.

Eine Umsteiger-Falle lauert bei den Menüs, die z. B. per Mausklick auf dem Desktop erscheinen sollen. Diese müssen durchnummeriert werden – und die Ziffern stehen dann gleichzeitig auch für die gewünschte Mausfunktion: Die 1 für die linke, die 2 für die mittlere und die 3 für die rechte Maustaste. Das macht die Verwaltung auf der anderen Seite hochflexibel: jeder Mausklick auf dem Desktop kann je nach Taste ein unterschiedliches Menü hervorzaubern. Der Clou liegt ebenso darin, dass man diese Menüs dann wahlweise auch per Tastenkürzel oder über einen Panel-Button aufrufen kann, ohne die Menüs noch einmal neu anlegen zu müssen.

Fazit

Auf den ersten Blick wirkt JWM in der Tat schlichter als andere Fenstermanager, doch bei genauerem Hinsehen entfaltet er ein erstaunliches Potential und bringt einige Funktionen mit, die man sonst nur von ausgewachsenen Desktopumgebungen kennt. Dadurch ergibt sich der Eindruck eines sehr flexiblen und schnellen Systems. Das klassisch-schlichte Erscheinungsbild ergibt einen professionellen Eindruck und wirkt mit Transparenzen sehr elegant.

10. Oktober 2020

Heute stelle ich euch mein aktuelles Projekt vor: eine Programmiersprache, die das imperative Programmiersprachenparadigma um logische Aspekte ergänzt, um durch logische Schlussfolgerung weniger Code schreiben zu müssen.

→ Schnellzugriffe für diesen Artikel: Arbeitspapier (engl., PDF), GitHub-Repository

Programmierung ist heutzutage ein extrem wichtiges Werkzeug geworden. Dabei hat sich in den vergangenen Jahren der Fokus geändert: war der „portable Assembler“ namens C in den 1970ern noch dafür da, Abstraktion für verschiedene Plattformen zu ermöglichen, geht es heutzutage eher darum, Funktionalität so zusammenzustecken, dass das resultierende Programm den Anforderungen genügt. Bis heute ist allerdings der imperative Ansatz derjenige, der unangefochten die Programmierlandschaft beherrscht. Dabei spezifiziert der Programmierer Schritt für Schritt den Lösungsweg, den der Computer dann ausführt.

Ein Blick in die Geschichte

Es ergeben sich allerdings einige Probleme, die früher keine größere Aufmerksamkeit benötigten, heute allerdings die Arbeit erheblich erschweren: so konnte man es sich in den 1980ern leisten, die komplette Codebase selber zu entwickeln. Ken Thompson formulierte dabei das Credo „You can't trust code that you did not totally create yourself.“ Dieser Satz gilt heute eigentlich nach wie vor, da importierter Code auf dem gleichen Level wie die eigene Software agiert.

Nun gibt es verschiedene Programmiersprachen, die auch verschiedene Zwecke erfüllen: während das zuvor erwähnte C auf der Low-Level-Ebene unterwegs ist, gibt es Sprachen wie Python, die immer weiter abstrahieren.

Diese Abstraktion nimmt allerdings keineswegs ein Ende und das macht die Sache besonders interessant. Denn eigentlich befinden wir uns bei den imperativen bzw. prozedularen Sprachen auf Stufe 3 von insgesamt 5. Auf den tieferen Stufen haben wir Maschinencode oder Assemblersprachen, auf deren darüberliegenden Stufen liegen SQL, die Unix Shell und R (4GL) sowie Mercury und OPS5 (5GL). Während die Sprachen der 4. Generation noch den meisten geläufig sind, werden sicherlich die wenigsten von Mercury o.ä. gehört haben.

Ziel dieser Abstraktion ist es übrigens, dem Computer nur noch das Problem zu beschreiben und diesen dann den Lösungsweg ermitteln zu lassen.

Als ich davon vor einigen Jahren gehört habe, hat es mich nicht mehr losgelassen. Und so überlege ich seit einigen Jahren, wie man neben C, C++, Rust und Python eine Möglichkeit nutzen kann, abstrakt Programme zusammenzustellen, die dann vom Computer zusammengeschweißt werden (und zwar ohne dynamische Typisierung). Eben wie die klassische Unix-Philosophie, die sich in den Code hineinzieht.

Vor einigen Monaten hat sich abgezeichnet, dass sich die Idee am besten in einer (vorerst experimentellen) Programmiersprache umsetzen lässt.

XKCD 2309: X, License: CC BY-NC 2.5

xkcd 2309: X, License: CC BY-NC 2.5

Was aber ist nun die Besonderheit der Sprache? Die oben eingeführten Sprachen der fünften Generation sind sehr funktional, deklarativ – und vielen unhandlich. Man ist zu sehr an die imperative Arbeitsweise gewöhnt, um sie komplett auszutauschen. Trotzdem blieb bei mir der Aspekt, die imperative Arbeitsweise durch logische Programmierung zu erweitern, irgendwie hängen. Ausschlaggebend hierfür war das Semantic Web, das in den 2000ern besonders Konjunktur hatte. Aber auch Wikidata fasziniert mich mit der Art und Weise, wie Informationen formalisiert werden können, um anschließend Wissen daraus ableiten zu können. So ist es heute schon möglich, die Mondphase am Geburtstag von John von Neumann abzufragen, ohne einen genauen Algorithmus hierfür spezifzieren zu müssen. Ehrlich gesagt finde ich das extrem spannend und überlege, wie sich das sinnvoll in der Programmierung einsetzen lässt. Denn für obiges Szenario müssen wir nicht einmal auf maschinelles Lernen zurückgreifen, sondern können uns an einem regelbasierten System bedienen, das in formalen Umgebungen besonders hilfreich ist.

Um was es geht

Dafür habe ich nebenbei begonnen, die Ontology-assisted Experimal Programming Language, kurz OXPL, in eine Grammatik zu gießen.

Die OXPL geht dabei auf einen Ausflug in die Welt der Ontologien: bei diesen geht es grob gesagt darum, Wissen dem Computer zugänglich zu machen, damit dieser dies Verarbeiten kann. Teilweise wird dies schon heute umgesetzt, wenn wir uns Klassenhierarchien in z.B. Java anschauen.

Ich möchte nur einmal kurz die Schlüsselaspekte umreißen: beginnen wir mit dem „Hello world“.

fn main() {
    println("hello, world");
}

So weit, so unspektualär. Wie wir sehen, sind wir allerdings auf dem Gebiet der imperativen Programmierung unterwegs - und das ist ein entscheidender Aspekt: man kann sie jederzeit als Fallback nutzen. Wagen wir aber nun den Sprung ins kalte Wasser: der folgende Codeblock implementiert einmal eine Addition: zwei Summanden werden abgefragt, das Ergebnis wird ausgegeben.

instance Summand1: integer {
    std::fetchesFrom <std::io::stdin>.
    <std::io::stdin> std::io::prompts "Summand 1: ".
}

instance Summand2: integer {
    std::fetchesFrom <std::io::stdin>.
    <std::io::stdin> std::io::prompts "Summand 2: ".
}

instance Sum: std::math::sum {
    std::math::sum::hasSummand <Summand1>.
    std::math::sum::hasSummand <Summand2>.
}

fn main() {
    println("The sum is " + string::from(Sum));
}

Hier sehen wir das charakteristische Merkmal der Sprache: das Programm ist bis auf die main-Funktion lediglich eine Beschreibung zweier Summanden sowie einer Summe. Die Tripel (Subjekt - Prädikat - Objekt - Punkt) formulieren explizit die Beziehungen und Anforderungen untereinander. Nun soll der Interpreter bzw. Compiler im nächsten Schritt über Regeln sowie viele Informationen ableiten, dass eine imperative Ausführung möglich und eine Executable entsteht. Auch wenn man mit Python dieses Vorhaben in einer Zeile lösen könnte, würde das obige Beispiel rein konstruktiv bereits die Summanden als Ganzzahlen erkennen, sodass Bugs wie eine Summe "11" bei den Summanden 1 und 1 vermieden werden.

Ein weiterer Aspekt: Sicherheit. Der Super-Gau unter importierten Bibliotheken sind unerwartete, bösartige Seiteneffekte. Wie wäre es, wenn jegliche Kommunikation nach außen hin erlaubt werden muss? Dann fällt besonders auf, wenn eine Calculator-Bibliothek auf einmal Festplatten- und Netzwerkzugriff möchte. Für das Ausgabebeispiel würde das Ganze so aussehen:

allows(this, std::io::print, main).     

fn main() {
    println("hello, world!");
}

OXPL wird dieses Permissionsystem von Anfang an implementieren, sodass spätere Nachbesserungen wie die libseccomp im Normalfall by-design nicht mehr notwendig ist.

Was ich bereits habe

Ich habe bereits angefangen, als Sideproject an der ontology toolchain (ontc) zu entwickeln. Das wird die Referenzimplementierung sein. Sie ist in C geschrieben und steht bereits auf GitHub zur Verfügung.

Mit

sudo apt install build-essential git bison flex
git clone https://github.com/v-gar/ontc.git
make

kann die Anwendung gebaut werden. Die Executable ontc liegt dann im Buildverzeichnis. Nun kann eine Datei helloworld (eine Dateiendung habe ich noch nicht festgelegt) erstellt werden, die das obige Hello world enthält. Das Ausführen ist mitteils ./build/ontc run helloworld möglich. Um die Ontologie zu testen, habe ich folgendes Beispiel:

fn hey() {
    println("Hey!");
}

fn main() {
    println("Hello world!");
}

<main> isPreceededBy <hey>.

Dieses Beispiel zeigt, dass über diese Tripel auch Einfluss auf den Programmablauf genommen werden kann, sofern (wie im Beispiel) der Interpreter bestimmte Prädikate berücksichtigt.

Ein Anfang

Diese beiden Beispiele sind Teil des Proof-of-Concepts dieses Projekts. Großartig mehr ist noch nicht möglich. Zwei Dinge sind für die Sprache entscheidend: gute Entwicklungswerkzeuge und eine vielfältige, hochqualitative Standardbibliothek. Die Standardbibliothek gibt, ähnlich wie bei schema.org, den Rahmen und definiert, wie üblicherweise Prädikate aufgebaut sind, wie mit dem Compiler interagiert werden kann, etc. Die ontc soll dabei mit gemeinsamer Codebase als Toolchain dienen und einen Interpreter, Debugger und Analyzer beherbergen, um schnell gute Programme zu schreiben.

Wer gerne mehr zu meinem Projekt lesen möchte, kann sich mein Arbeitspapier (PDF) hierzu anschauen.

Da dieses Vorhaben unmöglich in absehbarer Zeit alleine umsetzbar ist, suche ich nach Mitstreitern, die sich an diesem Projekt beteiligen wollen. Ihr könnt euch hierzu unter meiner Kontaktadresse melden!

9. Oktober 2020

Seit vielen Jahren setzen wir stark auf Open Source Anwendungen in unserer Schule – auf dem Server, aber auch auf den Computern und Laptops. Vor allem im Serverbereich ist Open Source Software weit verbreitet und es gibt viele tolle Softwareprojekte, die sich wunderbar in einer Schule einsetzen lassen. Heute möchte ich deshalb meine 5 Favoriten vorstellen.

Koha

koha

Koha ist ein integriertes Bibliothekssystem. Es wird weltweit in öffentlichen, Schul- und anderen Bibliotheken eingesetzt. Auch wir haben vor ca. 5 Jahren unsere Bibliothek auf diese Software umgestellt. Koha bringt sehr viele Features mit und ist flexibel in der Konfiguration. Der Einstieg ist, wenn man nicht gerade vom Fach ist, etwas steil, aber man wird dafür mit einem tollen System belohnt. Wer mehr über Koha und den Einsatz in Schulen erfahren möchte, sollte sich diese kleine Blog-Post Serie anschauen.

xcp-ng / LXD

xcp-ng

Mein nächster Favorit betrifft die Serverinfrastruktur. Wer eigene Server in der Schule betreibt, muss sich mit der Frage beschäftigen, welchen Hypervisor er einsetzen will. Die Auswahl ist groß und man kann zwischen einigen Open Source Optionen wählen. Wir haben uns vor Jahren für xcp-ng entschieden (aus XenServer hervorgegangen). Dazu setzen wir XenOrchestra ein, um die Server zu verwalten. Mit xcp-ng verwalten wir unsere virtuellen Maschinen.

Die meisten unserer (Web)Anwendungen laufen aber in Linuxcontainern. Dafür verwenden wir LXD – ein Container-Hypervisor. LXD bringt mit lxc einen sehr einfach zu bedienende Anwendung mit, um Container zu erstellen, Backups zu erstellen, usw. Der große Vorteil von Linuxcontainern ist für mich, dass ich sie genauso wie eine virtuelle Maschine verwalten, konfigurieren und administrieren kann. Dafür sind sie wesentlich ressourcensparender als eine VM. Seit dem 4.0 Release kann man sogar „richtige“ VMs mit LXD erstellen und verwalten!

pfSense

pfsense

Für mich ist pfSense eines der besten Open Source Firewall Systeme. PfSense kann man einfach installieren und benutzen und läuft seit Jahren sehr stabil in unserem Netzwerk. Mit pfBlockerNG hat man zusätzlich ein sehr mächtiges Werkzeug, um Werbung, Malwareseiten u.v.a. aus dem Netzwerk fernzuhalten (Webfilter auf DNS Basis).

linuxmuster.net

linuxmuster.net

Über linuxmuster.net habe ich schon oft in diesem Blog geschrieben. Linuxmuster.net ist eine Open Source Schulserverlösung, mit der man Benutzer (Lehrkräfte, Schüler/innen) und Schulcomputer einfach verwalten kann. LINBO, ein Werkzeug von linuxmuster.net, ist für mich eines der wichtigsten Features, denn damit kann ich alle Schulcomputer mit nur einem Image verwalten, auch wenn sie unterschiedliche Konfigurationen haben.

Nextcloud

nextcloud

Nextcloud darf in dieser Liste nicht fehlen. Gerade in den letzten Monaten sind eine Menge neuer Features dazugekommen, die auch im Schulumfeld sehr nützlich sind. Nextcloud ist dabei weit mehr, als nur eine gemeinsame Dateiablage. Durch die vielen Erweiterungen kann man Nextcloud sehr an die individuellen Bedürfnisse anpassen. Egal ob Online Office Suite, Videokonferenz oder einfach nur ein gemeinsamer Kalender – vieles ist mit Nextcloud möglich.

Bonus: Zammad

zammad

Noch eine kleine Bonusempfehlung am Ende: Zammad. In den letzten Jahren haben wir verschiedene Service Desk / Helpdesk Anwendungen ausprobiert. Letztendlich sind wir bei Zammad gelandet und es gefällt uns sehr gut. Wie auch alle anderen Empfehlungen hier, bringt es viele nette Features mit. Es lässt sich gut in die bestehende Infrastruktur integrieren und man kann über viele verschiedene Kanäle Tickets erstellen (Soziale Netzwerke, eMail, Chat, …).

Fazit

Die Liste hier könnte man noch beliebig erweitern. Gerade für den Infrastrukturbereich gibt es eine große Menge an Open Source Anwendungen. Allein diese Liste spricht für sich: https://github.com/awesome-selfhosted/awesome-selfhosted. Moodle oder Mahara sollten eigentlich auch noch mit aufgenommen werden, aber damit haben wir bisher kaum Erfahrung sammeln können.

Welche Open Source Anwendungen gehören zu deinen Favoriten, die in keiner Schule fehlen sollten?

Der Beitrag Die 5 besten Open Source Anwendungen für eine Schule erschien zuerst auf zefanjas.

4. Oktober 2020

Digitalisierung ist seit Jahren in aller Munde. Die Pandemie hat aus Schlagworten in Sonntagsreden dann endlich Taten folgen lassen. Wieder einmal geht es dabei um die Herausforderung, quelloffene und freie Lösungen zu etablieren und nicht blind der Marketing-Maschinerie der großen IT-Konzerne zu folgen.

Vom Bildungssektor über die staatliche Verwaltung - Digitalisierung ist endlich in der Gegenwart angekommen. Nicht mehr nur als Übertragung analoger Arbeitsschritte in digitale Pendants - vom Papier zum Computer gewissermaßen - sondern durch Nutzung der Chancen und Möglichkeiten solcher Veränderungen. Homoffice, Homeschooling und hybride Modelle machen es endgültig notwendig. Der Versuch vieler Behörden, den Publikumsverkehr zu reduzieren, kommt da noch hinzu.

Bei der Umsetzung der Digitalisierung sollten quelloffene und freie Lösungen im Fokus stehen. Die Forderung ist oft zu hören, wird offensiv von entsprechenden Interessenvertretungen propagiert und ist absolut legitim. Wenn der Staat selbst etwas entwickelt / entwickeln lässt, sollte das ebenso der Allgemeinheit zur Verfügung gestellt werden, wie auch Open Source bei gleichwertigen Angeboten immer bevorzugt werden sollte. Die Art und Weise, wie der Staat hier beispielsweise die deutsche Corona Tracing App transparent und offen entwickeln ließ, ist absolut vorbildlich. Das ist nicht das einzige Leuchtturmprojekt, sondern der Einsatz von Nextcloud durch den Bund fällt ebenfalls in diese Kategorie. Denn hier wird nicht nur auf quelloffene Software zurückgegriffen, sondern die maßgebliche Entwicklerfirma mit einem Auftrag bedacht und dadurch langfristig in der Weiterentwicklung unterstützt. Die Berücksichtigung von Open Source Angeboten und Bevorzugung solcher Lösungen bei Ausschreibungen ist leider immer noch keine Selbstverständlichkeit und das kann nicht oft genug kritisiert werden. Entsprechende Initiativen wie in Schleswig-Holstein oder nun auch wieder München sind daher begrüßenswert. Diese Grundsätze sind in Fachkreisen eigentlich eine Selbstverständlichkeit und mir sind keine validen Gegenargumente bekannt.

Nur sollte man dabei nicht über das Ziel hinaus schießen. Bei Gleichwertigkeit die quelloffene Lösung bevorzugen und gleichzeitig langfristig an einer Ablösung der proprietären Software zu arbeiten, ist absolut richtig. Gleichsam ist die Abhängigkeit der Regierung von einem einzigen IT-Konzern hochgradig bedenklich. Problematisch wird es, wenn Open Source Lösungen in allen Bereich als absolut gleichwertig propagiert werden. In einigen Bereichen ist es das sicherlich richtig, in anderen eher nicht. Da muss ganz stark auf die Anforderungen und Möglichkeiten schauen. Realistisch ist daher eher ein Mischbetrieb, denn eine reine OSS-Umgebung.

Hier läuft man Gefahr, die Fehler der Linux Community von circa 2005 zu wiederholen. Damals kursierten Nachrichten, nach denen Linux vermeintlich etabliert sei oder Behörden angeblich verstärkt auf Open Source setzen würden. Der Sprung auf die Firmen-Desktops stünde gar kurz bevor. Dahinter stand der Stolz auf die Entwicklungserfolge bei Linux, aber wir kennen die Geschichte - es war mehr Hoffnung, denn Realität. In der realen Welt war Linux halt noch nicht so weit und viele Pilotprojekte scheiterten. Spektakulär waren dabei Wienux und LiMux, die beide bezeichnenderweise 2005/2006 an den Start gingen. Diese Misserfolge könnte man zwar als unvermeidbar verbuchen, aber es ging auch viel Vertrauen verloren. Durch die wahrgenommene Diskrepanz aus Versprechen und Realität und entsprechende Praxiserfahrungen verfestigte sich die Ansicht "Linux sei halt doch noch nicht reif für den Desktop" für viele Jahre.

Genau das gilt es zu vermeiden. Werbung für Open Source ist sinnvoll, gleichwertige Projekte zu empfehlen auch, die Forderung nach mehr Förderung ebenfalls verständlich und perspektivisch sinnvoll um Lücken zu schließen. Schwächen negieren oder weg zu diskutieren bringt aber nichts, denn die Anwender merken dies schnell. Plakativ formuliert: Zu behaupten XMPP könnte Teams & Co ersetzen hilft niemandem. Nextcloud könnte OneDrive ersetzen ist hingegen realistisch.


Bilder:

Einleitungs- und Beitragsbild von Megan_Rexazin via pixabay

"

2. Oktober 2020

Wie so viele andere Veranstaltungen in diesem Jahr findet auch der LinuxDay in Vorarlberg dieses Jahr ausschließlich online statt.

Die Linux User Group (LUG) Vorarlberg schickt sich an, die Veranstaltung erstmals im Cyberspace und auf Basis von Open Source Software auszurichten. Ich denke sowohl die Veranstalter, Vortragende und Teilnehmer sind auf diese Premiere gespannt.

Das diesjährige Vortragsprogramm bietet insgesamt 12 Vorträge. Diese verteilen sich auf zwei Blöcke mit jeweils sechs Vorträgen. Von mir ist in diesem Jahr auch wieder ein Beitrag dabei. Um 11:00 Uhr werde ich euch zwei kleine Projekte vorstellen, mit denen sich ein Spiegelserver und ein Patch-Management für Red Hat Enterprise Linux realisieren lassen.

Ich persönlich finde es sehr schade, dass diese und viele weitere Veranstaltungen dieser Art in diesem und vermutlich auch im nächsten Jahr ausschließlich im Cyberspace abgehalten werden können. Die Gründe dafür verstehe ich und kann die Entscheidung nachvollziehen. Doch geht das, was ich an diesen Veranstaltungen am meisten schätze, derzeit verloren.

Für mich stellt der Besuch des LinuxDay eine willkommene Abwechslung zum Alltag dar. Die Vorfreude beginnt bereits Tage vor der Anreise. Auf diesen Veranstaltungen treffe ich Gleichgesinnte in lockerer und ungezwungener Atmosphäre. Einige Menschen treffe ich tatsächlich ausschließlich am Rande dieser Veranstaltungen. Bei Kaffee, Mate und Bier lässt sich fachsimpeln, über aktuelle Entwicklungen diskutieren und man fühlt sich verstanden. Dies alles geht bei reinen Online-Konferenzen in meinen Augen verloren. Daher hoffe ich, dass möglichst bald ein Impfstoff gegen das Corona-Virus gefunden wird und wir uns vielleicht schon 2022 vor Ort wiedersehen können.

1. Oktober 2020

Mozilla hat Firefox 81.0.1 für Windows, Apple macOS sowie Linux veröffentlicht und behebt damit mehrere Probleme der Vorgängerversion.

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

Voraussichtlich mit Firefox 82 wird Mozilla eine neue Druck-Vorschau ausliefern. Im Zuge der dazugehörigen Plattform-Arbeiten kam es zu mehreren Fehlern in Firefox 81, welche Mozilla mit Firefox 81.0.1 aus der Welt schafft.

Außerdem hat Mozilla einen Fehler in Zusammenhang mit der IntersectionObserver-API behoben, welches in der virtuellen Lern-Plattform Blackboard fehlenden Inhalt verursachte.

Weiter wurde ein Skalierungsproblem behoben, welches ausschließlich Flash-Content auf Systemen mit HiDPI-Bildschirm und macOS als Betriebssystem aufgetreten ist.

Ein Problem in der Enterprise Policy Engine sorgte dafür, dass Unternehmensrichtlinien, welche Boolean-Einstellungen in about:config nach dem älteren Standard änderten, auf Windows nicht mehr funktionierten, falls über GPO umgesetzt.

Die Schaltfläche zur Verwendung der Bild-in-Bild-Funktion für Videos wurde fälschlicherweise auch auf der Wiedergabe-Seite von reinen Audio-Medien dargestellt.

Ein Problem wurde behoben, welches bei Verwendung bestimmter Add-ons, unter anderem Disconnect, einen starken Anstieg des Arbeitsspeichers verursachte.

Schließlich wurden noch mehrere potentielle Absturzursachen behoben.

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

28. September 2020

Die MZLA Technologies Corporation hat mit Thunderbird 78.3.1 ein Update für seinen Open Source E-Mail-Client veröffentlicht.

Neuerungen von Thunderbird 78.3.1

Mit dem planmäßigen Update auf Thunderbird 78.3.0 hat das Team der MZLA Technologies Corporation zahlreiche Korrekturen und Verbesserungen unter der Haube vorgenommen und Sicherheitslücken behoben. Eine vollständige Liste der Änderungen lässt sich in den Release Notes (engl.) nachlesen.

Die kurz nach Thunderbird 78.3.0 veröffentlichte Version Thunderbird 78.3.1 behebt eine mögliche Absturzursache, welche nach dem Update auf Thunderbird 78.3.0 auftreten konnte.

Der Beitrag Thunderbird 78.3.1 veröffentlicht erschien zuerst auf soeren-hentzschel.at.

26. September 2020

Das relationale Datenbankmanagementsystem PostgreSQL ist in Version 13 veröffentlicht worden. Optimiert wurden der Speicherplatzverbrauch sowie die Performance.

PostgreSQL ermöglicht seit einem knappen viertel Jahrhundert bereits die Verwaltung relationaler Datenbanken und stellt eine Alternative zu MySQL oder ähnlichen RDMS dar. Seit 2017 wurde jedes Jahr im oder kurz vor dem Oktober ein neues Major-Release des stetig an Popularität gewinnenden Systems veröffentlicht. So hat auch dieses Jahr die PostgreSQL Global Development Group am 24. September 2020 eine neue Version veröffentlicht: PostgreSQL 13.

Der neuste Release ermöglicht eine bessere Verarbeitung großer Datenbanken, besonders bei der Administration und im Betrieb: PostgreSQL 13 kann besser mit duplizierten Daten in B-Tree Indizes umgehen, was Speicherplatzeinsparungen zur Folge hat. Dies betrifft viele Datenbanken, da B-Tree Indizes die Standardindizes im RDBMS sind.

Bessere Administration

Weitere Verbesserungen gibt es beim VACUUM-Befehl. Zur Erinnerung: PostgreSQL greift, ähnlich wie andere Datenbanken, auf die Multiversion Concurrency Control-Verfahrenstechnik zurück. Diese isoliert im Grunde alle Transaktionen voneinander. Wird nun ein Datensatz aktualisiert (UPDATE), so wird das nicht an zentraler Stelle gespeichert, da andere parallele Transaktionen gerade noch auf die alte Version zugreifen könnten. Aus Performancegründen ist das Aufräumen ein getrennter Vorgang, der manuell über VACUUM, quasi den Garbage Collector, angestoßen werden muss. Die gute Nachricht: ab der neuen Version 13 gibt es die Option PARALLEL, damit VACUUM Indizes parallel verarbeiten kann. Allerdings gilt diese Nebenläufigkeit nicht für VACUUM FULL.

Mit max_slot_wal_keep_size kann nun bestimmt werden, wie viele WAL-Segmente von den Replication Slots im pg_wal-Verzeichnis vorgehalten werden dürfen, um Out-of-memory-Probleme auf der Primärdatenbank zu verhindern.

In der konkreten Anwendungsentwicklung hilft nun datetime() für SQL/JSON, um z. B. ISO 8601-Strings in für PostgreSQL native Datentypen zu konvertieren. Eine UUIDv4 kann nun nativ über gen_random_uuid() generiert werden.

Darüber hinaus kann mit dem neuen Kommando pg_verifybackup die Integrität von pg_basebackup-Erzeugnissen überprüft werden.

Sicherheit

Auf der Sicherheitsebene führt PostgreSQL 13 das Konzept der vertraulichen Erweiterungen ein, um einfachen Datenbank-Benutzern die Möglichkeit zu geben, zuvor von Superusers als vertraulich deklarierte Erweiterungen selbst zu installieren.

Neu ist auch das (erzwungene) Channel-Binding für Verbindungen, besonders bei SCRAM-Authentifziuerng. postgres_fdw kann nun Zertifikate für die Authentifzierung verwenden und mit dem sslpassword-Parameter können nun auch passwortgeschützte TLS-Zertifikate genutzt werden.

Weiterführende Informationen

Die vollständige Liste der Änderungen ist wie immer in den Release Notes zu finden, weiterhin sind auch die deutsche Pressemitteilung und die Pressemitteilung zum vorausgegangenen Beta-Release lesenswert.

PostgreSQL 13 ist ab sofort zum Bauen verfügbar und wird demnächst in die ersten Distributionen Einzug halten. Wer schon jetzt Version 13 ausprobieren möchte, kann auch auf das Docker-Image postgres:13 zurückgreifen.

23. September 2020

Mozilla hat Firefox 81 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

Neues optionales Farbschema

Neben dem vorwiegend hellen Theme mit Akzent als Standard-Design und einem komplett hellen sowie einem komplett dunklen Theme wird Firefox standardmäßig bereits mit drei Design-Optionen ausgeliefert. Mit Firefox 81 kommt noch eine vierte Wahlmöglichkeit dazu.

Das neue Theme hört auf den Namen Firefox Alpenglow und ist besonders farbenfroh. Damit hebt es sich ganz bewusst von den drei anderen Themes ab. Dem Nutzer dürfte durch diesen Kontrast zu den anderen Firefox-Themes vor allem die vielfältigen Möglichkeiten der farblichen Anpassung vermittelt werden. Nutzer können über addons.mozilla.org aus tausenden weiteren Themes wählen.

Firefox Alpenglow

Firefox Alpenglow

PDF-Betrachter in neuem Design

In neuer Optik erstrahlt auch der PDF-Betrachter von Firefox. Während das alte Design sehr dunkel war und nicht der sonstigen Design-Sprache von Firefox entsprochen hatte, zeichnet sich das neue Design durch neue Icons, passend zum Photon-Stil von Firefox, größere Schaltflächen sowie dem Fehlen von Farbverläufen und Schattierungen aus, wodurch es nicht nur moderner wirkt, sondern durch eine reduzierte Größe auch schneller lädt. Außerdem gibt es nun sowohl ein dunkles als auch ein helles Farbschema, passend zu den unterschiedlichen Design-Optionen von Firefox.

Firefox 81

Firefox 81

Ausfüllen von PDF-Formularen

Aber nicht nur die Optik des PDF-Betrachters hat sich geändert. Während Mozillas PDF-Betrachter in der Vergangenheit wirklich als reiner Betrachter zu sehen war, ist es ab Firefox 81 auch möglich, PDF-Formulare, sofern es sich um AcroForm-Formulare handelt, auszufüllen und diese ausgefüllt zu speichern und zu drucken. Diese Neuerung wird in Kürze ausgerollt werden. Neugierige können das Feature bereits jetzt aktivieren, indem sie über about:config den Schalter pdfjs.renderInteractiveForms auf true setzen.

Firefox 81

Unterstützung von Ebenen in PDF-Dateien

Eine weitere große Verbesserung im Umgang mit PDF-Dateien ist die Unterstützung von Ebenen. Bisher hat Firefox keine Ebenen in PDF-Dateien unterstützt, was beim Betrachten von PDF-Dateien mit unsichtbar geschalteten Ebenen dafür sorgen konnte, dass Inhalte in PDF-Dateien angezeigt worden sind, welche in anderen PDF-Anwendungen nicht zu sehen waren.

Firefox 81 hält sich dabei an die Standard-Vorgaben des PDF-Dokuments, ab Firefox 82 wird es möglich sein, jede Ebene gezielt ein- und auszublenden.

Firefox 82

USA, Kanada: Speichern von Kreditkarteninformationen

Für Nutzer in den USA und in Kanada ist es nun möglich, Firefox Kreditkarteninformationen speichern zu lassen, was vor allem Nutzern entgegenkommt, welche häufiger im Web shoppen gehen. Diese Änderung wird schrittweise an die Nutzer ausgerollt.

Österreich, Schweiz, Belgien: Pocket-Empfehlungen

Für Nutzer in Deutschland zeigt die Firefox-Startseite bereits seit langer Zeit Empfehlungen von Pocket an, einem Dienst von Mozilla. Mit Firefox 81 aktiviert Mozilla dieses Feature auch für Nutzer der deutschen Firefox-Version in Österreich, der Schweiz sowie in Belgien.

Firefox 81

Verbesserungen der Entwicklerwerkzeuge

Im Barrierefreiheit-Werkzeug wurde das Tool zur Simulation von Sehschwächen (steht nur bei aktiviertem WebRender zur Verfügung) dahingehend überarbeitet, dass es die jeweiligen Einschränkungen genauer simuliert.

Im Editor-Modus der Konsole ist es jetzt möglich, Code-Teile für eine bessere Übersicht einzuklappen.

TypeScript-Dateien werden im Debugger-Panel zur schnelleren Identifikation mit einem entsprechenden Symbol gekennzeichnet. Ein Kontextmenü-Eintrag im Debugger erlaubt das Umbrechen langer Zeilen.

Verbesserungen der Webplattform

Das sandbox-Element des iFrame-Elemts unterstützt jetzt das allow-downloads-Token. Die Unterstützung für das nicht standardisierte mozallowfullscreen-Attribut in iFrames wurde entfernt. Stattdessen ist allow=“fullscreen“ zu nutzen.

Firefox unterstützt aus Kompatibilitätsgründen zu anderen Browsern jetzt auch die nicht standardisierte Form des Content-Disposition Headers ohne Anführungszeichen und mit Leerzeichen im Dateinamen.

Ausführliche Informationen zu Verbesserungen der Webplattform in Firefox 81 finden sich in den MDN web docs.

Sonstige Neuerungen in Firefox 81

Ab sofort ist es möglich, die Wiedergabe von Audio und Video auch über die Media-Tasten der Tastatur oder des Headsets zu steuern.

Der Bild-in-Bild-Modus erlaubt es, die Wiedergabe von Videos von der Website loszulösen und über andere Tabs und sogar Anwendungen zu legen. Die entsprechende Schaltfläche wird in Kürze ein neues Design erhalten.

Werden Lesezeichen aus einem anderen Browser importiert, zeigt Firefox nun standardmäßig die Lesezeichen-Symbolleiste an.

Ab sofort lassen sich heruntergeladene Dateien in den Formaten .xml, .svg sowie .webp direkt in Firefox öffnen.

Firefox unterstützt nun die hardwarebeschleunigte Wiedergabe von VP9-Videos auf macOS Big Sur.

Die Benachrichtigungsleisten von Firefox wurden optisch überarbeitet.

Firefox 81

Sind in Firefox für eine Website noch keine Zugangsdaten gespeichert, in einem anderen Browser jedoch schon und das Profil ist noch keine Woche alt, schlägt Firefox bei Fokussierung des Passwortfelds nun den Import der Zugangsdaten aus entsprechendem Browser vor.

Mozilla hat die Parameter für das Scrolling mit dem Mausrad angepasst, damit sich Firefox nicht langsamer als andere Browser wie Chrome oder Edge anfühlt. Für bestehende Nutzer sind die Änderungen dabei geringer als für neue Nutzer, um bestehende Nutzer schrittweise umzugewöhnen.

Auch wurde in Firefox 81 WebRender wieder für weitere Nutzer ausgerollt. Genauer gesagt wurde die minimal erforderliche Treiber-Version für Intel-GPUs erneut gesenkt, außerdem wird WebRender nun für Nutzer weiterer Intel-Grafikchips ausgeliefert.

Für Entwickler von WebExtensions gibt es bei Verwendung der menus.create()-API hilfreichere Fehlermeldungen. Außerdem gab es zwei Kompatibilitäts-Anpassungen der webNavigation-API, damit sich Firefox vergleichbar zu Google Chrome verhält. Die tabs.saveAsPDF()-API funktioniert jetzt auch auf macOS. Firefox-Nutzer sehen in den Einstellungen einen Hinweis, wenn eine Erweiterung die Einstellung zum Speichern von Zugangsdaten kontrolliert.

Natürlich kam auch in Firefox 81 die Unterstützung weiterer Unternehmensrichtlinien dazu.

Es wurde ein Fehler behoben, der für Nutzer von Sprachpaketen dafür sorgen konnte, dass die Sprache nach einem Firefox-Update auf Englisch zurückgesetzt worden ist.

Außerdem wurde die Barrierefreiheit nativer HTML5 Audio- und Video-Elemente verbessert.

Geschlossene Sicherheitslücken

Wie immer hat Mozilla auch in Firefox 81 wieder mehrere Sicherheitslücken geschlossen. Alleine aus Gründen der Sicherheit ist ein Update auf Firefox 81 daher für alle Nutzer dringend empfohlen.

Der Beitrag Mozilla veröffentlicht Firefox 81 – die Neuerungen erschien zuerst auf soeren-hentzschel.at.

Apple hat mit Safari 14 eine Art Tracking Pranger eingeführt (siehe: Radikale Transparenz gegen Tracking). Ein interessanter Ansatz um die allgegenwärtige Spionage im Netz für den Anwender praktisch greifbar zu machen. Die Ergebnisse sind wenig überraschend, prangern aber eine Firma besonders an.

Tracking ist eine Seuche des modernen Internets (siehe: Internet - Schutz vor Tracking und Anonymität). Ihre Ursache liegt letztlich in der Kostenlos-Kultur des Netzes. Weil Werbung die einzige wirklich gut funktionierende Einnahmequelle des Internets ist, versuchen alle beteiligten Akteure ihre Ausbeute zu steigern. Das geht nur, indem man immer mehr über den einzelnen Kunden erfährt. Nur zielgerichtete Werbung ist effiziente Werbung, denn letztlich soll Werbung Produkte verkaufen. Eine Werbung für ein Luxus-Auto ist bei einem Studenten ebenso fehl am Platz wie Babyprodukte bei einem Senior. Irgendwann haben alle beteiligten Akteure an diesem Markt beschlossen, dass der Kunde faktisch keine Rechte hat und man ihm hemmungslos nachspionieren kann.

Dabei ist zu beachten, dass die simple Erhebung von Statistiken kein Tracking ist. Wenn ein Webseitenbetreiber gerne mit den Serverlogs oder Matomo ein bisschen Datenauswertung betreibt, stellt das nur einen begrenzten Eingriff in die Privatsphäre dar. Der Betreiber kann dadurch nur die Bewegungen auf der einen Seite verfolgen und bei gesetzeskonformer Konfiguration keine Rückschlüsse auf die reale Person machen. Beim Tracking werden aber Daten von unzähligen Seiten zusammen geführt, was generalisierte Aussagen zulässt und - Anonymitätsversprechen hin oder her - Rückschlüsse auf die reale Person ermöglicht. Wirkliche Anonymisierung ist nämlich sehr kompliziert, muss ständig angepasst werden und bei beträchtlichen Datenmengen entsteht oft die Möglichkeit zur Deanonymisierung.

Um mal in den Blick zu nehmen, wer da so Daten erhebt, habe ich eine Woche lang mein Mehrbrowser-Konzept aufgehoben und nur mit Safari 14 gearbeitet. Das Ergebnis ist natürlich nur bedingt allgemeingültig. Erstens enthält es nur Tracker, die Apple auch als solche erkennt und zweitens basiert es auf meinem persönlichen Surfverhalten. Nachrichtenseiten aus Politik, Wirtschaft und Technik sind also überproportional vertreten, Social Media eher unterrepräsentiert. IoT-Geräte und mein Smartphone sind ebenfalls nicht in die Statistik eingeflossen. Das Ergebnis zeigt dennoch eine klare Tendenz.

Insgesamt bin ich beim surfen über 44 Tracking-Anbieter gestolpert, von denen mindestens einer auf 65 % meiner besuchten Seiten vertreten war. Die Tracking-Anbieter verteilen sich aber nicht gleichmäßig. 17 Tracking-Anbieter waren nur auf einer einzigen besuchten Seite vertreten, weitere 13 auf maximal 2 bis 3 Seiten. Lediglich 5 Tracking-Anbieter waren auf mehr als 10 Seiten vertreten: Google, Criteo, INFOnline, Amazon und Facebook.

Hierbei gibt es Schwerpunktbildungen. INFOnline könnte man als Tracker für die deutsche Medienwirtschaft bezeichnen. Die Erhebung erfolgt nahezu nur auf deutschen Onlinemedien. Hier aber von der Lokalzeitung über deutschlandweite Medien bis hin zu IT/Technikportalen. Die Amazon-Tracker finden sich "nur" auf Seiten mit Werbung für Produkte auf Amazon. Lediglich eine einzige Firma ist allerdings omnipräsent und verfügt über ein halbes Dutzend aktiver Tracker: Google

Google arbeitete in den vergangenen Tagen auf diesem System mit Google Tag Manager, DoubleClick, Google Tag Services, Google Analytics, Google Syndication und Google Ad Services. Viele Webseiten haben gleich mehrere Tracker von Google eingebunden, alleine der Google Tag Manager war aber auf einem Drittel der besuchten Seiten vertreten. Google sitzt also wie eine Spinne im Netz und erhebt Daten mit freundlicher Mithilfe zahlloser Webseitenbetreiber auf zweifelhafter rechtlicher Grundlage. Denn eine freiwillige und informierte Einwilligung habe ich nirgendwo erteilt. Dabei muss der Nutzer noch nicht einmal direkt einen Dienst von Google wie die Suchmaschine oder Youtube aufrufen.

Das Experiment brachte also im Grunde genommen nicht viel Neues zutage. Abgesehen davon, dass ich nicht vermutet hätte, so viele unterschiedliche Firmen in diesem Markt vorzufinden. Einige Webseiten - beispielsweise ein bekanntes deutsches IT-Blog - stellten sich zudem als so Tracker-verseucht heraus, dass sie aus meinen Bookmarks geflogen sind. Mit einem vielfältigeren Surfverhalten und der Einbeziehung von mehr internationalen Webseiten wäre hier vielleicht ein noch differenziertes Bild entstanden, allerdings wollte ich ja gezielt mein eigenes Surfverhalten überprüfen und mit welchen Trackern ich trotz sorgsam gesetzten Einwilligungen auf den besuchten Seiten konfrontiert werde.

Hier könnte diese kleine Geschichte über Tracking im Internet enden. Ein paar Sätze zum Phänomen Google müssen aber noch sein. Die meisten der oben gelisteten Anbieter kann ich meiden. INFOnline bietet nur Statistik-Dienstleistungen, ansonsten komme ich damit nicht in Kontakt. Natürlich reichern auch solche Firmen den Datenpool an und tragen ihren Teil zur Profilbildung bei, sie setzen aber einen aktiven Zukauf oder Verkauf von Daten voraus. Übrigens ein Hebel, an dem der Gesetzgeber dringend ansetzen müsste. Amazon und Facebook kann ich - mit etwas Mühe - aus dem Weg gehen. Google hingegen nicht und Google muss die Daten eigentlich nicht mal zukaufen, sondern erhebt sie alle selbst!

Ich stolpere nicht nur auf allen möglichen Seiten über Google-Tracker, selbst wenn ich meine IT-Systeme möglichst datenschutzfreundlich ausrichte, lauert überall der Suchgigant. Viele Anwender von Open Source Software haben ein gesteigertes Datenschutz-Bewusstsein und viele Projekte möchten genau dies bedienen (siehe z. B. KDE gibt sich Ziele: Privacy). Letztlich lauert hier aber überall Google. Sei es durch die Förderung der Projekte über den Google Summer of Code, als Hauptfinanzier von Mozilla oder über die omnipräsente Chromium-Engine, sowie die direkte Einbindung von Trackern auf den Distributions-Seiten (z. B. bei Ubuntu und Red Hat) und da ist das Phänomen Android mit all seinen Diensten noch komplett außen vor. Die enge Anbindung der Open Source-Welt an Google ist somit das genaue Gegenteil des Privatsphäre-Versprechens und beruht zumindest teilweise auf wirtschaftsfeindlichen Lizenzbedingungen freier Lizenzen. Nutze ich also einen Linux Desktop und ein Android Smartphone um meine technischen Systeme selbstbestimmt zu kontrollieren, hänge ich direkt und indirekt mehr von Google ab als bei Windows- und Apple-Produkten. Ein zumindest problematischer Wderspruch.

"