ubuntuusers.de

10. April 2024

Seit 1,5 Jahren produziere ich den Podcast Risikozone, in dem es um Themen der IT-Sicherheit und Open-Source-Software geht. Die xz-Backdoor ist natürlich ein heißes Thema, weswegen es in der heute veröffentlichten Episode 45 genau darum geht.

Die knapp einstündige Podcastepisode ist für alle interessant, die nochmals einen technisch orientierten Überblick über die Geschehnisse suchen. Da die Thematik recht komplex ist und aus verschiedenen Blickwinkeln beobachtet werden kann, können weitere Podcastepisoden hierüber noch folgen. Ich möchte aber darauf eingehen, dass man diese Backdoor nicht nur auf den Code beschränken sollte. Es gibt es viele verschiedene Ebenen, die allesamt jeweils Beachtung finden sollten:

  • die technische "Exploit"-Ebene
  • die zwischenmenschliche Ebene
  • die Ökosystem-Ebene

Technisch ist der Exploit ausgeklügelt: Die Backdoor beschränkt sich nicht nur auf die bloße Möglichkeit einer Remote-Code-Execution, sondern verwendet darüber hinaus noch ein eigenes Protokoll, mit dem die Befehle signiert und verschlüsselt innerhalb des unscheinbaren N-Wertes im Zertifikat eines SSH-Handshakes übermittelt werden. Durch die Signatur können nur Befehle ausgeführt werden, die mit einem (wahrscheinlich nur dem Angreifer bekannten) ED448-Schlüssel signiert wurden. Die Verschlüsselung erfolgt zwar mit einem statischen Schlüssel, der aus dem ED448-PubKey abgeleitet wird, erfüllt jedoch trotzdem seinen Zweck: Obfuskierung. Mit anderen Worten: wäre die Lücke nie aufgefallen, hätte man sie in der freien Wildbahn nahezu unmöglich durch Traffic-Analysen finden können.

Das ist allerdings nur die erste von drei Ebenen: die Art und Weise, wie die Lücke hereingeschummelt wurde, weist Komponenten des Social Engineering auf. Die Mühe, über mehrere Jahre eine Identität in verschiedenen Projekten mit teils anfangs legitimen Beiträgen aufzubauen, zeugt auch von einem Plan und Ausdauer.

Schlussendlich sollte man auch nicht vergessen, dass hier eine besondere Konstellation im Ökosystem ausgenutzt wurde. Am einfachsten (und auffälligsten) wäre es, eine solche Lücke in OpenSSH unterzubringen. Es wurde aber auf eine deutlich unbeachtetere und einfacher zu infiltrierende Variante ausgewichen. Die xz-Bibliothek wurde zudem nicht zum Einfallstor, weil OpenSSH darauf zurückgreift (das tut es nämlich nicht), sondern weil einige Distros systemd-notify reinpatchen, was wiederum auf die xz-Lib zurückgreift. Außerdem rüttelt dieser Fall an einem Grundpfeiler der IT-Sicherheits-Praktiken: Updates. Diese Hintertür fand geradezu durch die (häufigen) Updates der Rolling-Release-Distros Einzug - die stabilen Versionen waren noch verschont geblieben. Ist also (zu) häufiges Updaten nun auch nicht mehr richtig? Bringen bald Updates mehr Lücken als sie schließen?

Das alles macht es vor allem noch schwieriger, solche Angriffe zuverlässig zu erkennen. Zudem ist davon auszugehen, dass die Angreifer sich die Verteidigungsstrategie jetzt ganz genau anschauen. Die zukünftige Diskussion sollte sich also darauf konzentrieren, wie man diese Art von Angriffen detektiert und frühzeitig eindämmt.

8. April 2024

Firefox besitzt eine Funktion für die vollständige Website-Übersetzung, welche im Gegensatz zu Cloud-Übersetzern wie Google Translate lokal arbeitet, die eingegebenen Texte also nicht an einen fremden Server sendet. Ab Firefox 126 wird es auch möglich sein, nur markierten Text zu übersetzen.

Firefox wird seit Version 118 standardmäßig mit einer lokalen Funktion zur maschinellen Übersetzung von Websites für den Browser ausgeliefert. Das bedeutet, dass die Übersetzung vollständig im Browser geschieht und keine zu übersetzenden Inhalte an einen Datenriesen wie Google oder Microsoft übermittelt werden müssen. Seit kurzem werden weitere Sprachen unterstützt.

Die nächste größere Verbesserung steht mit Firefox 126 an. Ab dann wird es nicht mehr nur möglich sein, Websites als Ganzes zu übersetzen, sondern nur markierte Textstellen.

Textauswahl-Übersetzung in Firefox 126

Ob die neue Funktion in der finalen Version von Firefox 126 standardmäßig aktiviert sein wird, ist zu diesem Zeitpunkt noch nicht bekannt. Zunächst wird die Funktion in Nightly- und frühen Beta-Versionen standardmäßig aktiviert werden. Eine manuelle Aktivierung ist über about:config möglich, indem der Schalter browser.translations.select.enable per Doppelklick auf true gesetzt wird. Anschließend steht nach dem Markieren von Text ein neuer Kontextmenüeintrag zum Übersetzen zur Verfügung.

Auch wenn der Schalter bereits in Firefox 124 existiert, funktioniert das Feature erst ab Firefox 126. Firefox 126 wird nach aktueller Planung am 14. Mai 2024 erscheinen. Nutzer einer Nightly-Version von Firefox können die Neuerung bereits jetzt testen.

Der Beitrag Firefox 126 kann markierten Text übersetzen erschien zuerst auf soeren-hentzschel.at.

Wie du UNIX V5 ganz einfach auf einem PDP-11 Emulator ausprobieren kannst. Eine kurze Führung durch UNIX V5.

Wenn du ein freies Betriebssystem wie GNU/Linux verwendest, hast du vermutlich schon mal von Unix gehört. GNU/Linux sowie viele andere Betriebssysteme stammen entweder von Unix ab (FreeBSD, OpenBSD, NetBSD) oder sind stark von Unix inspiriert (GNU/Linux, GNU/Hurd). In diesem Artikel möchte ich dir die Geschichte von UNIX V5 näherbringen und dir zeigen, wie du es heute auf deinem Computer ausprobieren kannst.

Die besondere Bedeutung von UNIX V5

Die ersten Computer haben nach dem Prinzip der Stapelverarbeitung (eng.: batch processing) funktioniert. Auf einem solchen Computer konnten Programme nur nacheinander und nicht gleichzeitig ausgeführt werden. Diese Computer waren extrem gross und teuer. Um Programme auszuführen, die zu diesem Zeitpunkt oft in der Form von tatsächlichen Stapeln mit Lochkarten kamen, benötigten diese Computer oft Stunden oder Tage.

Als Computer schneller und günstiger wurden, wurde es praktikabel mehrere Programme parallel auf einem Gerät laufen zu lassen. Dieses Konzept wurde unter dem Begriff Time-Sharing bekannt. In den 60er-Jahren arbeiteten Entwickler bei den Bell Labs, bei General Electric und dem MIT zusammen, um ein solches Time-Sharing System unter dem Namen Multics zu entwickeln. Multics selbst galt damals als ein äusserts komplexes System, bei dessen Entwicklung zahlreiche neue Ideen ausprobiert wurden.

Einige ehemalige Multics Entwickler, darunter Dennis Ritchie (links im Bild) und Ken Thompson (rechts im Bild), haben in den frühen 70ern bei Bell Labs die erste Version UNIX entwickelt. Dabei haben sie bewährte Konzepte von Multics, wie das hierarchische Filesystem, wiederverwendet.

UNIX Versionen 1 - 4 haben die Bell Labs zu ihrer Zeit nie verlassen. UNIX V5 war die erste Version, die an Bildungseinrichtungen herausgegeben wurde und so an die Öffentlichkeit gelangte.

UNIX V5 auf SimH ausprobieren

UNIX V5 wurde auf einer PDP-11 (im Bild) entwickelt. Eingaben wurden von einer Tastatur gelesen und Ausgaben auf eine Papierrolle gedruckt (im Bild). Das Betriebssystem selbst konnte man auf einer wechselbaren Festplatte mit etwa 2.5 MB Speicherplatz speichern.

Um UNIX V5 auszuprobieren, kannst du die Kopie einer solchen Festplatte im Internet herunterladen:

curl -LO http://simh.trailing-edge.com/kits/uv5swre.zip  
unzip uv5swre.zip

Dann benötigst du einen PDP-11 Emulator. Ich verwende dazu SimH. Das Package heist zumindest bei Debian, Arch Linux und NixOS/nixpkgs simh.

Um UNIX vom unix_v5_rk.dsk Disc Image zu starten, musst du SimH noch erklären, welche PDP-11 Version du verwenden möchtest und wie die Disc anzuhängen ist. Das Image ist von einer RK Disk und das UNIX darauf läuft auf einer PDP-11/45.

Du kannst die folgenden Zeilen im SimH pdp11 Prompt eingeben oder sie in ein File (z. B. unix_v5.ini) speichern, damit du sie nicht jedes Mal eingeben musst.

set cpu 11/45
attach rk0 unix_v5_rk.dsk
boot rk0

Dann kannst du den Emulator mit pdp11 unix_v5.ini starten. Manchmal heisst das Kommando auch simh-pdp11 (z.B. in Termux auf Android).

Falls alles geklappt hat, solltest du mit den folgenden Zeilen begrüsst werden:

PDP-11 simulator V3.11-1
Disabling XQ
@

SimH fragt dich hier, welchen Kernel du starten möchtest. Der UNIX Kernel auf dem Disk Image heisst passenderweise unix. Gib unix ein und drücke die Entertaste.

Unix startet sofort und begrüsst dich mit einer Log-in-Abfrage. Der Username ist root. Ein Passwort gibt es nicht.

Wenn du jetzt ein # siehst, hat alles funktioniert. Du bist jetzt in der UNIX V5 Shell (/bin/sh).

Wenn du dich über die spärlichen Ausgaben wunderst, denk daran, dass das gängige Ausgabegerät zu dieser Zeit ein Zeilendrucker war. Noch heute geben viele Kommandos keine Rückmeldung, wenn sie erfolgreich ausgeführt wurden.

Eine kurze Führung durch UNIX V5

Die UNIX V5 Shell fühlt sich vielleicht vertraut an. Sehr wahrscheinlich hast du noch heute einen fernen Nachkömmling davon auf deinem System. Viele bekannte Kommandos waren bereits auf diesem frühen Unix verfügbar.

Nach dem Log-in befindest du dich im Root Directory (/). Wenn du hier ls ausführst, siehst du das folgende:

# ls
bin
dev
etc
lib
mnt
tmp
unix
usr  

Das Unix File ist der Kernel, den wir vorhin gestartet haben.

Sieht alles ganz vertraut aus. Doch schnell stösst du auf erste Probleme:

# cd usr
cd: not found

Tatsächlich heisst das Kommando um das aktuelle Verzeichnis zu wechseln: chdir.

Der Zeileneditor

Mein Lieblingsverzeichnis ist /usr/source. Darin findest du den Source Code zu fast allen Programmen auf dem System. Ein Teil davon ist in PDP-11 Assembler und der Rest in einem uralten C Dialekt geschrieben. C wurde nämlich zusammen mit Unix entwickelt.

Um etwa den Code des ls Programms anzuschauen, könnten wir einen Befehl wie cat /usr/source/s1/ls.c verwenden. Da du aber sehr wahrscheinlich keine Papierrolle, sondern einen Bildschirm verwendest, wirst du vermutlich nur die letzten Zeilen der Datei sehen.

Für eine bessere Brauchbarkeit der Navigation im Source Code, würde ich das ed-Programm empfehlen. Dabei handelt es sich um einen zeilenbasierten Editor. Vielleicht hast du ed noch auf deinem System oder sonst zumindest sed. Mit dem ed /usr/source/s1/ls.c Befehl kannst du den ls Quellcode öffnen. Begrüsst wirst du mit einer Zahl: 7250. Das ist die Grösse von ls.c in Bytes.

Alle Kommandos in ed sind ein Buchstabe lang. Ein Kommando quittierst du, wie gewohnt, mit der Entertaste. Wenn du das = Kommando absetzt, siehst du wieder eine Zahl: 434. Das ist die Anzahl der Zeilen in der Datei.

Viele Kommandos können auf einer Zeile oder einem Bereich von Zeilen ausgeführt werden. Anfänglich befindet sich dein „Cursor“ auf der letzten Zeile. Mit 1 und der Entertaste holst du deinen Cursor auf die erste Zeile. Dann kannst du mit Enter Zeile für Zeile nach unten navigieren.

Mit /main/ kannst du nach der Signatur der Main-Funktion suchen und mit .,.+2p kannst du die aktuelle Zeile und die darauffolgenden zwei Zeilen ausgeben.

/main/
main(argc, argv)
.,.+2p
main(argc, argv)
char **argv;
{

Wie du siehst, ist das alles sehr Papier-schonend.

Wenn ed mit einer deinen Eingaben nichts anfangen kann, gibt er ein ? aus. Was genau du falsch gemacht hast, musst du dann selbst herausfinden.

Mit dem q-Kommando kannst du ed schliessen.

Ich empfehle folgendes kleines Programm zu schreiben (volle ed Sitzung):

# ed
a
main()
{
        printf("\033[2J\033[H");
}
.
w /usr/source/s1/clear.c
48
!cc /usr/source/s1/clear.c
!
!cp a.out /bin/clear
!
!rm a.out
q

Und hier nur die Eingaben ohne die Ausgaben von ed:

ed
a
main()
{
        printf("\033[2J\033[H");
}
.
w /usr/source/s1/clear.c
!cc /usr/source/s1/clear.c
!cp a.out /bin/clear
!rm a.out
q

Das Programm löscht den Bildschirminhalt. Du kannst es mit clear aufrufen.

Wenn du mehr über ed lernen möchtest, kannst du unter anderem die man-Page oder das Tutorial von Brian Kernighan lesen.

Spiele

UNIX V5 kommt auch mit einer kleinen Anzahl von Computerspielen. Diese findest du in /usr/games.

ttt : Ein rudimentäres Tic-Tac-Toe

wump : Ein Text-Adventure Spiel

Viel Spass beim Ausprobieren

Wenn du wissen möchtest, was es sonst noch für Programme gibt, kannst du mit ls /bin nachsehen, welche Programme auf dem System verfügbar sind. Ausserdem findest du eine Liste mit den Programmen und einer Beschreibung ihrer Funktion im UNIX PROGRAMMER'S MANUAL.

Ich wünsche dir viel Spass beim Ausprobieren und Entdecken.

Quellen:
Bild: https://www.bell-labs.com/usr/dmr/www/picture.html


GNU/Linux.ch ist ein Community-Projekt. Bei uns kannst du nicht nur mitlesen, sondern auch selbst aktiv werden. Wir freuen uns, wenn du mit uns über die Artikel in unseren Chat-Gruppen oder im Fediverse diskutierst. Auch du selbst kannst Autor werden. Reiche uns deinen Artikelvorschlag über das Formular auf unserer Webseite ein.

7. April 2024

Wer noch X11 nutzt, braucht nicht unbedingt weiterlesen, da es bei diesem Artikel um ein Tool geht, dass nur unter Wayland nutzbar ist.

Vor ein paar Monaten bin ich wegen OSC52 von Terminator auf Alacritty umgestiegen. Danach wurde das Update auf KDE Plasma 6 anboten, welches bei mir dazu geführt hat, meine Rechner mit grafischer Oberfläche komplett auf Wayland umzustellen.

Aus einer Laune heraus habe ich dann auch den Terminal Emulator foot installiert. Dieser ist, wie bereits eingangs angemerkt, nur unter Wayland nutzbar. Laut dem Entwickler, der ausgehend von dem Repository, scheinbar eine ziemlich nette Person ist, ist foot schnell, leichtgewichtig und bietet aber trotzdem einige Funktionen. Wie eben OSC52 (ja mir sind die möglichen Risiken bekannt).

Also leichtgewichtig ist foot auf jeden Fall. Der Terminal Emulator an sich benötigt gerade mal 670.3 KB an Speicherplatz. Alacritty benötigt mindestens 8.5 MB. Gut, in der heutigen Zeit ist das im Grunde recht egal. Aber da ich weiterhin Zellij und dessen Funktionen nutze, kann ein Terminal Emulator meinetwegen gerne wenig Speicherplatz und Funktionen bieten. Von OSC52 abgesehen.

Ich nutze foot nun schon einige Zeit und kann nichts Negatives berichten. Ist foot nun besser als beispielsweise Alacritty? Nein. Dieses “X ist besser als Y” nervt mich sowieso. Jeder sollte die Werkzeuge nutzen, die ihm am meisten zusagen. Aber meiner Meinung nach sollte man auch ab und zu mal über den eigenen Tellerrand schauen und andere Tools testen. Wie eben foot. Oder Helix.

Vor ein paar Tagen wurde übrigens die Version 1.17.0 von foot veröffentlicht.

Bei der Vollverschlüsselung fragen andere Betriebssysteme als Linux die Anwender automatisch, ob ein Wiederherstellungsschlüssel in der Cloud (schlechte Idee!) oder als Ausdruck generiert werden soll. Bei Linux muss der Anwender das selbst übernehmen. Systemd-cryptenroll unterstützt die Erstellung eines Reocvery Keys.

Recovery Keys sind eigentlich nur besonders starke Passwörter, um im Notfall den Passwortschutz zu umgehen. Man kann darauf verzichten, wenn man der Meinung ist, dass niemand außer einem selbst an die Geräte kommen soll. Das ist aber oft nicht der Fall, sondern die meisten Menschen machen sich zu wenig Gedanken darüber, was passiert, wenn sie selbst nach einem schweren Unfall ihre Geräte nicht mehr entsperren können oder im Todesfall Angehörige an Daten kommen möchten. Früher war alles analog in Form von Ausdrucken vorhanden, aber wer im digitalen Zeitalter schon einmal einen Todesfall in der Familie hatte, weiß, dass gängige Verschlüsselungslösungen eine von niemandem gewollte Hürde darstellen. Wiederherstellungsschlüssel an einem sicheren Ort wie einem Safe oder Bankschließfach können für Angehörige den Zugang zu wichtigen Dokumenten oder Erinnerungsstücken wie Fotos erleichtern.

Für LUKS-Volumes kann man dazu einfach ein besonders starkes alphanumerisches Kennwort erstellen. Das hatte ich hier schon mal beschrieben. Die systemd-Entwickler lösen zum Glück diese alten unhandlichen Tools ab und denken an solche Schritte. Ich bearbeite meine LUKS-Schlüssel deshalb schon seit längerem primär mit systemd-cryptenroll und nicht dem alten unhandlichen cryptsetup. Mit folgendem Befehl lässt sich ein zufällig generierter sicherer Schlüssel erstellen:

# systemd-cryptenroll /dev/nvme0n1p3 --recovery-key ##Laufwerk anpassen

Anschließend wird in einem freien Key-Slot ein Recovery Key mit 71 Zeichen erstellt. Dieser wird angezeigt und muss natürlich kopiert und gespeichert werden. Alternativ wird ein QR-Code angezeigt, mit dem der Recovery Key eingescannt werden kann.

Nichts, was nicht bisher mit anderen Tools auch erreicht werden konnte, aber eine sinnvolle Erleichterung.

Der Artikel Recovery Key mit systemd-cryptenroll erzeugen erschien zuerst auf Curius

Mozilla arbeitet aktuell an zwei neuen und von Nutzern häufig gewünschten Funktionen zur Verwaltung von Tabs in Firefox: Tab-Gruppen sowie vertikale Tabs. Auch mit KI-Funktionen in Zusammenhang mit Tabs experimentiert Mozilla.

Vertikale Tabs in Firefox

Unter vertikalen Tabs in einem Browser versteht man, die Tabs seitlich untereinander anzuzeigen statt in einer Leiste am oberen Fensterrand. Vorteile sind zum einen eine bessere Nutzung des vorhandenen Platzes sowie, dass mehr Tabs auf einmal angezeigt werden können.

In den letzten Wochen hat Mozilla in einem separaten Projektzweig mit einer experimentellen Implementierung vertikaler Tabs in Firefox experimentiert. Was dort zu sehen ist, ist eine Leiste am linken Fensterrand, welche entweder eingeklappt oder ausgeklappt genutzt werden kann und darin die geöffneten Tabs anzeigt. Nach Installation von Mozillas Erweiterung Side View lassen sich Tabs neben der aktuell geöffneten Website zusätzlich in einer Sidebar anzeigen. Ganz unten gibt es Verknüpfungen zum Öffnen der Sidebars für Chronik, Lesezeichen, Downloads sowie Tabs von anderen Geräten.

Vertikale Tabs in Firefox

Vertikale Tabs in Firefox

KI-Funktionen für Tabs in Firefox

Eine Schaltfläche in der Seitenleiste für die vertikalen Tabs zeigt eine ganze Reihe von KI-Funktionen (Künstliche Intelligenz). Dabei geht es unter anderem um Funktionen zur Zusammenfassung von Seiten, um verwandte geöffnete Tabs zu finden, verwandte Suchanfragen vorzuschlagen oder erwähnte Menschen, Orte und Themen aufzulisten – jeweils in lokaler Ausführung und ohne diesen Zusatz.

Vertikale Tabs in Firefox

Nicht alle Funktionen werden übernommen

Wie der zuständige Produktmanager auf Reddit klargestellt hat, haben nicht alle Ideen, die in diesem Prototyp zu sehen sind, diesen „überlebt“. Welche das sind, wurde nicht näher erläutert. Ein Teil dieser Funktionen soll es aber in Firefox schaffen.

Tab-Gruppen in Firefox

Mittels Tab-Gruppen lassen sich geöffnete Tabs organisieren. Davon profitieren vor allem Nutzer vieler Tabs. Firefox war vor vielen Jahren der erste Browser, der Tab-Gruppen implementiert hatte. Aufgrund einer schlechten Implementierungsqualität und damals nur weniger Nutzer wurde die Funktion mit Firefox 45 schließlich entfernt. Mittlerweile sind Tab-Gruppen ein beliebtes Feature in anderen Browsern und auch Firefox soll wieder Tab-Gruppen erhalten.

Wie Mozillas neue CEO, Laura Chambers, bereits im März im offiziellen Community-Forum von Mozilla kommuniziert hat, arbeitet Mozilla auch einer Implementierung von Tab-Gruppen für Firefox. Auch darauf wurde in der bereits verlinkten Reddit-Diskussion noch einmal eingegangen und gesagt, dass diese Arbeit erst einmal für die traditionelle Tableiste umgesetzt wird und parallel zur Arbeit an den vertikalen Tabs stattfindet.

Weitere Details hierzu oder gar erste Spuren einer Implementierung sind noch keine bekannt. Laura Chambers sprach sich in der Diskussion aber positiv über den Vorschlag von KI-Funktion zur optionalen automatischen Gruppierung sowie Benennung aus.

Häufig gewünschte Firefox-Funktionen

Sowohl bei den Tab-Gruppen als auch bei den vertikalen Tabs handelt es sich um Funktionen, welche sich häufig von Firefox-Nutzern gewünscht worden sind. Tatsächlich befinden die Tab-Gruppen sogar auf Platz 1 in der Liste der Nutzerwünsche auf Mozillas Ideen-Plattform Mozilla Connect, die vertikalen Tabs sind auf Platz 3 aller Ideen.

Der Beitrag Firefox soll Tab-Gruppen und vertikale Tabs bekommen erschien zuerst auf soeren-hentzschel.at.

6. April 2024

Mozilla Hubs ist eine Plattform, um virtuelle Treffpunkte zu erstellen. Bevor Mozilla seine Server mit dem 31. Mai abschalten wird, hat Mozilla nun ein Backup-Tool veröffentlicht, um die Daten zu sichern.

Was ist Mozilla Hubs?

Mit dem Start von Mozilla Hubs im April 2018 ging eine Online-Plattform an den Start, welche es Nutzern ermöglicht, sich in sogenannten Räumen virtuell zu treffen. Das Besondere an Hubs: es spielt sich komplett im Web ab – keine geschlossene Plattform, keine Installation einer Anwendung, keine Abhängigkeit von einem bestimmten Gerät. Einfach eine URL teilen und miteinander treffen. Hubs funktioniert in jedem Browser, am Smartphone – und auch mit der VR-Brille, wo Hubs als virtuelle Plattform sein volles Potenzial entfaltet. Mozilla Hubs ist quasi eine Miniatur-Ausgabe eines Web-basierten „Metaverse“, aber Open Source und mit Fokus auf Datenschutz.

Mitte Februar hatte Mozilla angekündigt, im Rahmen einer Umstrukturierung die Weiterentwicklung von Mozilla Hubs einzustellen. Am 31. Mai 2024 sollen schließlich die Server abgeschaltet werden.

Mozilla Hubs Backup-Tool

Mozilla hat nun eine erste Version des angekündigten Backup-Tools veröffentlicht. Dieses steht für Windows, macOS sowie Linux zur Verfügung und kann sowohl für Mozillas Demo-Server unter hubs.mozilla.org verwendet werden als auch für Managed Hubs-Abonnenten sowie Nutzer der Hubs Cloud oder der selbst gehosteten Hubs Community Edition. Ein offizieller Blog-Artikel liefert viele Details zu den Daten, welche in der aktuellen Version des Backup-Tools heruntergeladen werden können.

Der Beitrag Mozilla Hubs Backup-Tool veröffentlicht erschien zuerst auf soeren-hentzschel.at.

4. April 2024

Mozilla hat Version 2.21 seiner VPN-Clients für das Mozilla VPN veröffentlicht. Dieser Artikel beschreibt die Neuerungen vom Mozilla VPN 2.21.

Mit dem Mozilla VPN bietet Mozilla in Zusammenarbeit mit Mullvad sein eigenes Virtual Private Network an und verspricht neben einer sehr einfachen Bedienung eine durch das moderne und schlanke WireGuard-Protokoll schnelle Performance, Sicherheit sowie Privatsphäre: Weder werden Nutzungsdaten geloggt noch mit einer externen Analysefirma zusammengearbeitet, um Nutzungsprofile zu erstellen.

Jetzt Mozilla VPN nutzen

Die Neuerungen vom Mozilla VPN 2.21

Mit dem Update auf das Mozilla VPN 2.21 hat Mozilla ein neues Onboarding für neue Nutzer direkt nach der Anmeldung eingeführt, über welches sich grundlegende Einstellungen konfigurieren lassen.

Mozilla VPN 2.21

Der Bereich „Tipps und Tricks“ in den Einstellungen wurde entfernt. Dafür gibt es in den einzelnen Bereichen jetzt jeweils ein Hilfe-Symbol, über welches Erklärungen eingeblendet werden können.

Mozilla VPN 2.21

Ersatzlos entfernt wurde der Geschwindigkeitstest innerhalb der App. Die Checkboxen in den Einstellungen wurden durch sogenannte „Toggle“-Buttons ersetzt. Ansonsten bringt das Update wie immer auch Fehlerbehebungen sowie weitere Verbesserungen unter der Haube.

Der Beitrag Mozilla VPN 2.21 veröffentlicht erschien zuerst auf soeren-hentzschel.at.

2. April 2024

Mozilla hat Firefox 124.0.2 veröffentlicht und behebt damit mehrere Probleme der Vorgängerversion.

Download Mozilla Firefox 124.0.2

Mit dem Update auf Firefox 124.0.2 behebt Mozilla das Problem, dass Lesezeichen-Backups nicht wiederhergestellt werden konnten, wenn das Backup mehr als 32.766 Lesezeichen beinhaltet.

Ein möglicher Absturz des GPU-Prozesses wurde behoben, der verursachte, dass Firefox-Fenster leer erschienen, während Videos auf manchen Seiten wie zum Beispiel Netflix abgespielt wurden.

Eine Kompatibilitäts-Anpassung wurde vorgenommen, damit die geänderte AppArmor-Konfiguration im kommenden Ubuntu-Update auf Version 24.04 nicht verursacht, dass keine Websites mehr geladen werden können, wenn Firefox über Mozillas .tar-Archiv installiert worden ist. Außerdem wurde ein Absturz behoben, der aufgetreten ist, wenn Linux auf einem System mit AArch64-CPU genutzt wird.

Darüber hinaus wurden zwei weitere mögliche Absturzursachen behoben, es wurden Verbesserungen für die Yelp-Integration in den USA vorgenommen und es wurde eine fehlerhafte Entwickler-Warnung in der Konsole behoben.

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

31. März 2024

Mozilla hat über seinen Risikokapitalfonds Mozilla Ventures in Holistic AI investiert.

Mozilla Ventures ist ein Ende 2022 gestarteter und mit anfänglich 35 Millionen USD ausgestatteter Risikokapitalfonds, über welchen Mozilla in Startups investiert, welche das Internet und die Tech-Industrie in eine bessere Richtung bringen. Nach der Investition in das deutsche KI-Startup Flower Labs hat Mozilla Ventures nun seine zweite Investition dieses Jahres bekannt gegeben.

Mit Holistic AI hat Mozilla Ventures in den nach Angaben von Mozilla weltweit führenden Anbieter von verantwortungsvoller KI investiert, welcher Fortune-500-Konzerne, kleine und mittlere Unternehmen, Regierungen und Aufsichtsbehörden unterstützt. Demnach bietet Holistic AI End-to-End-Lösungen für KI-Governance an, einschließlich KI-Vertrauen, Risiko, Sicherheit und Compliance, die es Unternehmen ermöglichen, Künstliche Intelligenz in großem Umfang einzuführen.

Alle Investitionen und Akquisitionen von Mozilla

Der Beitrag Mozilla Ventures investiert in Holistic AI erschien zuerst auf soeren-hentzschel.at.

Mein Heimserver ist seit Jahren über eine dynamische-DNS-Adresse von spDYN per SSH erreichbar. Da ich einer der letzten glücklichen kleinen Lichter bin, die noch eine echte IP4-Adresse erhalten (und keine genattete), kann ich mich so immer von überall auf meine Kiste einloggen.

Bislang habe ich meine aktuellen IP-Adressen mittels Script geupdatet. Im Zuge notwendiger Aktualisierungen bin ich über ddclient gestolpert und nutze es seit dem ausschließlich - mein Script ist in Rente gegangen.

ddclient

ddclient ist ein Perl-Client, der dynamische DNS-Einträge für Konten vieler dynamischer DNS-Dienste aktualisieren kann. Auf der Github-Seite steht eine Liste der kompatiblen Dienste bereit, viele weitere Dienste funktionieren aber ebenfalls, da sie die selben Protokolle verwenden.

Ich nutze ddclient mit folgenden freien DynDNS-Anbietern:

Da ich einen echten Dual-Stack habe, sollen IPv4 und IPv6 gleichzeitig aktualisiert werden.

Installation

ddclient kann installiert werden mittels:

# Ubuntu
sudo apt-get install ddclient

# Arch, btw
pacman -S ddclient

Konfiguration

systemd

Ich bereite mir ein Systemd-Skellet vor, so dass ich alle .conf-Dateien im Verzeichnis /etc/ddclient/ steuern kann.

sudo nano /etc/systemd/system/ddclient@.service

[Unit]
Documentation=man:ddclient(8)
Description=Update dynamic domain name service entries
After=network-online.target
Wants=network-online.target

[Service]
Type=forking
Environment=daemon_interval=10m
EnvironmentFile=-/etc/default/ddclient
ExecStart=/sbin/ddclient -syslog -file /etc/ddclient/%I.conf -cache /var/cache/ddclient/%I.cache
Restart=on-failure

[Install]
WantedBy=multi-user.target

Jetzt müssen die Services neu geladen werden,…

sudo systemctl daemon-reload

…und schon kann es losgehen. Alle FOO.conf-Dateien im Verzeichnis /etc/ddclient lassen sich nun steuern mittels systemctl start ddclient@FOO (ohne .conf).

Dafür müssen wir aber diese Config-Dateien erstellen, und wir sollten wissen, wie wir unsere “echten” globalen IPv4 und IPv6-Adressen abrufen können.

IP-Adressen abrufen

ddclient kann die Adressen entweder über die Interfaceschnittstelle oder über das Web beziehen. Das führt bei mir allerdings zu Probleme:

  • über die Interface-Schnittstelle (z.B. eth0) finde ich nur meine lokal LAN-IP (weil ich hinter meiner FritzBox sitze)
  • über die web-Methode finde ich nur eine IPv6-Adresse, nicht aber meine IPv4.

Daher muss ich sicherstellen, dass für IPv4 wirklich die gültige IPv4 gefunden wird, und für IPv6 ebenso. Ich kann diese externen IP-Adressen mittels curl abrufen:

# externe IPv4
curl -s4 http://ifconfig.me/ip

# externe IPv6
curl -s6 http://ifconfig.me/ip

Dies mache ich mir in ddclient zu nutze, denn neben “Interface” und “Web” kann über den Parameter cmd=<PROGRAM> ein custom Script angegeben werden, welches die IP-Adressen ermittelt. Ich erzeuge mir diese Scripte jeweils für IPv4 und IPv6 direkt im Verzeichnis /etc/ddclient.

sudo nano /etc/ddclient/myipv4address.sh

curl -s4 http://ifconfig.me/ip

sudo nano /etc/ddclient/myipv6address.sh

curl -s6 http://ifconfig.me/ip

Die Scriptdateien müssen noch ausführbar gemacht werden: sudo chmod +x /etc/ddclient/myipv6address.sh /etc/ddclient/myipv4address.sh

ddclient für meinen Anbieter konfigurieren

Für jeden DynDNS-Dienst lege ich mir eine eigene Config-Datei an. So sieht z.B. meine Client-Config für DuckDNS aus:

sudo nano /etc/ddclient/duckdns.conf

daemon=300                       # check every 300 seconds
syslog=yes                       # log update msgs to syslog
pid=/var/run/ddclientduckdns.pid # record PID in file.
ssl=yes                          # use ssl-support.
debug=yes                        # write to journal log
verbose=yes                      # write to journal log
usev4=cmdv4, cmdv4=/etc/ddclient/myipv4address.sh # IPv4
usev6=cmdv6, cmdv6=/etc/ddclient/myipv6address.sh # IPv6

#### DUCKDNS.org ########
#------------------------
protocol=duckdns,    # Komma muss bleiben
password=9a5dc6a5-FUCK-AFD-bbaf-foobar # ersetze dein Token
YOURNAME.duckdns.org # deinen Namen ersetzen

Für Dynv6.com sieht diese so aus:

sudo nano /etc/ddclient/dynv6.conf

daemon=300                     # check every 300 seconds
syslog=yes                     # log update msgs to syslog
pid=/var/run/ddclientdynv6.pid # record PID in file.
ssl=yes                        # use ssl-support.
debug=yes                      # write to journal log
verbose=yes                    # write to journal log
usev4=cmdv4, cmdv4=/etc/ddclient/myipv4address.sh # für IPv4
usev6=cmdv6, cmdv6=/etc/ddclient/myipv6address.sh # für IPv6

#### DYNv6.com ##########
#------------------------
protocol=dyndns2
server=dynv6.com
password='sKx3hF_stPT_fuck_AfD_1rPmskxiTga' 
login=none
YOURNAME.dynv6.net

ddclient starten

Zunächst können die Einstellungen getestet werden, ohne Daten zum Server zu senden:

ddclient -daemon=0 -debug -verbose -noquiet -file /etc/ddclient/dynv6.conf

Sieht alles gut aus, können wir die Dienste wie folgt aktivieren:

# aktivieren und starten
sudo systemctl enable --now ddclient@duckdns
sudo systemctl enable --now ddclient@dynv6

# Logs ansehen
journalctl -u ddclient@duckdns -f
journalctl -u ddclient@dynv6 -f

Tolle Sache, funktioniert prima!

Weblinks


Diskussion per Matrix unter https://matrix.to/#/#produnis-blog:tchncs.de

 

30. März 2024

Als diese Meldung heute morgen über die Kanäle ging, musste ich mehrmals nachschauen, ob wir nicht den 1. April haben. Durch eine mutmaßlich bösartige Übernahme der Entwicklung wurde xz-utils gezielt kompromittiert. Betroffen sind die aktuellen Versionen 5.6.0 und 5.6.1 und wichtige Distributionen wie Debian, Fedora oder openSUSE.

Das Paket XZ-utils (früher als LZMA-Utils bekannt) ist eines dieser zentralen Hintergrundtools der freien Softwarewelt. Wer seine Paketverwaltung nicht genau im Blick hat, bemerkt diese kleinen zentralen Bausteine, auf denen die Distributionen fußen gar nicht mehr. Es handelt sich um einen Datenkompressionsalgorithmus (vergleichbar zu gzip). Diese Werkzeuge sind wichtig, aber chronisch wenig beachtet und damit ein ideales Einfallstor.

Die gute Nachricht vorweg: Da das Problem sehr schnell bekannt wurde, sind nur sehr aktuelle Distributionen betroffen, d.h. primär Rolling-Release-Distributionen und aktuelle Entwicklungszweige wie Fedora 40. In Ubuntu 24.04 konnte das Paket nicht erfolgreich platziert werden. Die gängigen Enterprise-Distributionen sind aufgrund der deutlich längeren Entwicklungszeit nicht betroffen. Hier erweisen sich stabile Distributionen mit langen Supportzeiträumen mal wieder als überlegen, weil neue Versionsstände dort erst nach mehreren Jahren Einzug halten. Das schützt nicht hundertprozentig vor solchen Fehlern, lässt aber mehr Zeit für die Entdeckung dieser Probleme. So wie das aktuell der Fall ist. Der Code ist gegenwärtig nicht öffentlich einsehbar, da das Quellcode-Repo auf GitHub nach Bekanntwerden des Problems durch Microsoft gesperrt wurde.

Die Schadsoftware öffnet eine Backdoor und lässt potenziell einen unbefugten Fernzugriff via SSH zu. Die Lücke ist kein Versehen, sondern wurde bewusst eingebaut und verschleiert. Der verantwortliche Entwickler hat offensiv versucht, die schadhafte Version in zentrale Distributionen zu bringen. Das zeigt der entsprechende Launchpad-Eintrag für Ubuntu. Um die Lücke auszunutzen ist eine Kette an Voraussetzen notwendig, wie z.B. eine x86-64 Architektur, die Verwendung von glibc und das Paketformat DEB oder RPM. Die Funktionsweise hat Viktor Garske in seinem Blog sehr anschaulich erklärt. Alles nicht besonders exotisch. Der aktuellen Informationsstand kann bei GitHub nachgelesen werden. Einige Fragen sind noch offen und müssen geklärt werden. Es ist gut möglich, dass noch andere Angriffsvektoren bekannt werden. Klar ist aber schon, dass das Bedrohungspotenzial immens ist.

Das Ziel der Angreifer war es vermutlich, unbemerkt einen zentralen Baustein der Linux-Distributionen anzugreifen. Die Fokussierung auf RPM- und DEB-basierte Distributionen legt den Schluss nahe, dass verbreitete Server-Distributionen das Ziel waren. Das ist keineswegs abwegig, denn wäre die Lücke nicht durch Performanceprobleme bei aktuellen Entwicklungsversionen aufgefallen, dann wäre sie mittelfristig in die Enterprise-Systeme eingeflossen. In wenigen Jahren wären diese Systeme dann angreifbar gewesen.

Der Angriff trifft die Open-Source-Entwicklung an einigen ihrer wunden Punkte. Viele Projekte werden von kleinen Teams oder sogar nur durch einzelne Entwickler gepflegt. Das liegt an der chronischen Unterfinanzierung der zentralen Projekte, an der mangelnden Attraktivität, sich in diesen Hintergrundprojekten zu engagieren und manchmal auch an den rauhbeinigen Maintainern, die nicht gerade zur Mitarbeit einladen. Hier scheint sich ein neuer Akteur über Jahre eine Reputation aufgebaut zu haben, den bis dahin zuständigen Maintainer mittels Druck an die Seite geschoben und erst dann den komplexen Schadcode eingebaut zu haben. Eine Überprüfung durch mehrere Augen scheint nicht stattgefunden zu haben. Der frühere Hauptentwickler ist derzeit nicht erreichbar, was aber wohl schon öfter vorgekommen ist. Ein weiteres Problem ist der Unterschied zwischen dem Code auf GitHub und den Release-Tarballs. Das passiert häufiger als man denkt. Der offen sichtbare Code hat dann keine Schwachstelle, der Code im Tarball aber schon. Reproduzierbarkeit ist deshalb seit vielen Jahren ein wichtiges Thema in der Linux-Gemeinschaft.

Das Problem darf nicht verharmlost werden und muss weiter aufgearbeitet werden. Die große Katastrophe blieb aus, weil der Schadcode nicht in die Enterprise-Versionen gelangte und schnell erkannt wurde. Der Vorfall legt aber einmal mehr den Finger in die offenen Wunden der Open-Source-Entwicklung. Prinzipiell lassen sich mit einem solchen Vorgehen viele Projekte mit recht hoher Erfolgswahrscheinlichkeit infiltrieren. Kleine Teams, wenig Kontrolle, unterschiedliche Code-Stände im Repostitorium und Release – alles bekannte Probleme. Durch seine große Bedeutung für die Infrastruktur ist Linux ein Hochwertziel, das solchen Aufwand für die Angreifer vermutlich rechtfertigt.

Der Artikel Kein Aprilscherz: XZ-utils gezielt kompromittiert erschien zuerst auf Curius

Die weitverbreiteten Datenkompressionswerkzeuge XZ Utils (früher LZMA Utils) enthalten in Version 5.6 eine Backdoor. Ziel der Backdoor ist nach aktuellem Kenntnisstand eine Kompromittierung von SSH-Servern. Dies wurde gestern auf der oss-security-Mailingliste von Andres Freund nebst einer umfangreichen Analyse des Sachverhalts bekannt gegeben. Durch den Einsatz der Werkzeuge in Linux-Distributionen haben wir hier einen Fall einer Supply-Chain-Attacke. Red Hat hat dem Vorfall die CVE-Nummer CVE-2024-3094 vergeben.

Vorab eine Liste mit weiteren Links:

Wirkungsweise

Dabei wird die Backdoor nur unter bestimmten Bedingungen ausgeführt, wie das FAQ beschreibt. Im Wesentlichen muss argv[0] auf /usr/sbin/sshd gesetzt sein und eine Reihe an Umgebungsvariablen entweder gesetzt oder nicht gesetzt sein. Normalerweise hängt OpenSSH nicht von liblzma ab. Einige Distributoren patchen OpenSSH allerdings so, dass systemd-Notifcations funktioniert, welches wiederum auf liblzma setzt und die Backdoor möglich macht. Technisch werden einige Checks durchgeführt und anschließend mittels IFUNC Bibliotheksaufrufe umgeleitet. Dies betrifft nach aktuellem Stand auch Aufrufe während der Kryptoroutinen bei der SSH-Authentifizierung.

Betroffenheit

Der Wirkungsweise der Payload ist noch nicht abschließend geklärt. Besonders auch aus diesem Grund wird ein unverzügliches Update angeraten. Im Folgenden einige unverbindliche Faktoren, die eine Verwundbarkeit wahrscheinlich machen. Auf diese Weise kann man priorisieren, welche Systeme zuerst aktualisiert werden sollten.

Versionierte Distros wie z. B. Debian oder RHEL sind nach aktuellem Kenntnisstand mit ihren stabilen Versionen nicht direkt betroffen, da die Versionen 5.6 noch keinen Einzug in das System gefunden haben. Die Testing-Versionen dieser Distros wie z. B. Debian Sid wurden allerdings aktualisiert und sind betroffen.

Rolling-Release-Distros sind naturgemäß auch betroffen, wenn sie schon Version 5.6 in ihre Pakete aufgenommen haben. Dies betrifft zum Beispiel Arch Linux oder Gentoo. Da allerdings einige Distributionen wie Arch Linux OpenSSH nicht gegen liblzma linken, wird die Bibliothek nicht direkt in die Ausführung der Komponenten eingebunden.

Nach aktuellem Stand wird eine Verwundbarkeit besonders kritisch, wenn auf dem betroffenen Host ein öffentlich erreichbarer SSH-Server läuft, da die oben beschriebenen Faktoren ein Laden der Payload auslösen können.

Wie kam es?

Aufgefallen ist die Backdoor nur durch Zufall durch das Debugging von Performanceproblemen, die durch die Backdoor verursacht wurden. Die Backdoor wurde obfuskiert im Rahmen von Buildskripten untergebracht, sodass aufgrund der Komplexität die Lücken noch nicht direkt aufgefallen sind.

Das Repository hinter xz kann als kompromittiert gesehen werden und ist auch auf GitHub schon gesperrt worden. Auffällig ist, dass die Backdoor in den Tarballs der Releases enthalten war, nicht jedoch im Repository-Dump selber. Auch personell gab es einige Auffälligkeiten, da es vor kurzem einen Maintainerwechsel beim Projekt gab und die Lücken vom neuen Maintainer, der seit 2 Jahren am Projekt mitarbeitet, zumindest begünstigt wurden. Die Art und Weise lässt auch auf ein koordiniertes, von langer Hand geplantes Vorgehen schließen.

Einfluss und Folgen

Das große Ganze ist ein Paradebeispiel von xkcd 2347 "Dependency". Wir sehen hier Live ein Beispiel einer Supply-Chain-Attacke. Ein kleines, scheinbar unbedeutendendes Projekt wird übernommen, nur um strategisch Commits zu platzieren, die automatisch "flussabwärts" ihren Weg in größere Distributionen finden, die allesamt auf das Projekt setzen. Alles passiert trotz Open Source. Besonders pikant: der Maintainer hat aktiv versucht, die Backdoor-begünstigenden Umgebungsfaktoren, konkret das Umbiegen von Bibliotheksaufrufen mittels ifunc, in Fuzzing-Projekten wie oss-fuzz, die aktiv nach sowas suchen, zu deaktivieren.

Software wird immer bedeutender und benötigt Vertrauen. Dabei ist jetzt schon klar, dass niemand selber solch komplexe Systeme von alleine bauen kann. Aber auch die Kontrolle der Quellen ist eine große Herausforderung. Neue Gesetzgebung wie der geplante Cyber Resilience Act in der EU versuchen in der Industrie Anreize zu schaffen, die Softwarequalität zu erhöhen.

Diese Attacke konnte einigermaßen abgewendet werden, sollte die umfassende Analyse der Payload keine belastenden Neuigkeiten hervorbringen. Eines ist aber auch klar: Die Angreifer studieren das Verhalten der Verteidiger und werden in Zukunft ihre Vorgehensweise dahingehend optimieren, nicht so einfach mehr gefunden zu werden. Es ist also möglich, Backdoors in so ein Ökosystem hineinzuschummeln. Umso besser müssen aber die Identifikations- und Abwehrmöglichkeiten werden, damit solche Angriffe wirksam verhindert werden können.

Ein wichtiger Unterschied zwischen Matomo und GoAccess ist, dass Matomo ein JavaScript-Tracking-Code erfordert, der in den Header der überwachten Website eingefügt werden muss. Dies wird dazu führen, dass Matomo-Daten durch Ad-Blocker oder ähnliche Tools blockiert werden, was die Genauigkeit der Analysen je nach Art der Webseite extrem beeinträchtigen kann. Ein Beispiel ist meine Site zockertown.de. Hier haben viele Besucher einen Informatik-, Linux Sachverstand und man kann annnehmen, dass hier nahezu Jeder einen Adblocker nutzt, oder javascript  blockt.

Im Gegensatz dazu analysiert GoAccess nur die Webserver-Logdateien direkt, ohne dass zusätzlicher Code in die Website eingefügt werden muss. Dies bedeutet, dass GoAccess nicht von Ad-Blockern oder ähnlichen Tools behindert wird und möglicherweise eine zuverlässigere Datenerfassung ermöglicht.

Ein konkretes Beispiel dazu.

Dieser Unterschied ist enorm. wenn man zwischen Matomo und GoAccess wählt. Wenn die Genauigkeit der Daten wichtig ist und man bereit ist, den zusätzlichen Aufwand für die Implementierung des JavaScript-Tracking-Codes in Kauf zu nehmen, könnte Matomo die bessere Wahl sein. Wenn man jedoch eine einfachere, unkomplizierte Lösung bevorzugt, die nicht von Ad-Blockern beeinflusst wird, könnte GoAccess für Ihre Anforderungen geeigneter sein.

Ein wichtiger Aspekt bei der Auswahl eines Analysetools sind Datenschutzbedenken.

Matomo, als selbstgehostete Lösung, ermöglicht  den Nutzer, die volle Kontrolle über die Daten zu behalten. Da Matomo auf eigenen Servern läuft, hat man die Möglichkeit, die Datenschutzrichtlinien und Sicherheitsmaßnahmen nach seienem eigenen Standards anzupassen.

Auf der anderen Seite analysiert GoAccess die Webserver-Logdateien direkt, ohne dass Daten an Dritte gesendet werden. Da keine Daten an externe Server übertragen werden, kann dies als datenschutzfreundlichere Option angesehen werden. Zusätzlich werden bei mir die Log sowieso anonymisiert, damit komme ich gar nicht in die Verlegenheit über DSGVO Konformität nachzudenken.

Wer Matomo verwendet, sollte den Besucher deutlich darauf hinweisen, dass hier ein Tracking erfolgt und auch ohne Cookies funktioniert. Wenn der Nutzer das Script aber blockiert, wird gar nichts aufgezeichnet, noch nicht einaml der Besuch sebst, es ist, wie in den Screenshots deutlich zu sehen, als wäre der Besucher gar nicht da gewesen. Das kann ja auch keine Lösung sein.

Aus meiner Sicht geht es gar nicht schlimmer. Matomo kann zwar auch das Webserver Logfile auswerten, aber das habe ich jetzt nicht mehr ausprobiert.

Die Datenschutzrichtlinien und -funktionen beider Tools sollte man sorgfältig zu prüfen, um sicherzustellen, das sie den geltenden Datenschutzbestimmungen entsprechen.

Matomo mag seine Berechtigung bei kommerziellen Websites haben, die Möglichkeiten sind beeindruckend, gegen die tracking Aspekte gibt es auch noch die Bilder Tracking Methode u.a.,

aber für mich kommt es gar nicht in Frage.

Ausserdem fiel mir auf, dass der Zugriff mit javascipt tracking erheblich länger dauerte.

Im hohen einstelligen Sekundenbereich

Also GoAccess!

29. März 2024

Mit Common Voice stellt Mozilla den weltweit größten öffentlichen Datensatz menschlicher Stimmen bereit – kostenlos und für jeden nutzbar. Mozilla hat Version 17.0 seines Datensatzes veröffentlicht.

Der Markt für Spracherkennung wird von den ganz großen Namen kommerzieller Anbieter dominiert: Amazon, Apple, Google, Microsoft. Darum hat Mozilla im Jahr 2017 das Projekt Common Voice gestartet. Mit Common Voice bietet Mozilla eine kostenlose Alternative an, zu der jeder beitragen kann und die jedem zur Verfügung steht. Damit möchte Mozilla Innovation und Wettbewerb in der Sprachtechnologie auf Basis von Maschinenlernen fördern.

Mit dem vor kurzem veröffentlichten Common Voice Corpus 17.0 wächst der deutschsprachige Datensatz von 1.403 auf 1.424 Stunden an. Wer bereits den Common Voice Corpus 16.1 besitzt, kann wie immer auch nur ein sogenanntes Delta Segment mit den Unterschieden zur Vorversion herunterladen. Für Deutsch würde das den Download von 33,4 GB auf 625 MB reduzieren.

Insgesamt deckt Mozilla Common Voice mit der neuen Version jetzt 124 Sprachen mit insgesamt 31.176 aufgenommenen Stunden ab, was Mozilla Common Voice zum vielfältigsten mehrsprachigen Sprachkorpus der Welt macht.

Zum Download der Mozilla Common Voice Datensätze

Der Beitrag Mozilla veröffentlicht Common Voice Corpus 17.0 erschien zuerst auf soeren-hentzschel.at.

27. März 2024

Erst im Februar hatte Mozilla in Zusammenarbeit mit Onerep Mozilla Monitor Plus in den USA gestartet. Diese Zusammenarbeit kommt nun zu einem unerwarteten Ende.

Das ist Mozilla Monitor (Plus)

Mozillas kostenfreier Dienst Mozilla Monitor zeigt nach Eingabe einer E-Mail-Adresse an, ob diese Teil eines bekannten Datendiebstahls in der Vergangenheit war. Neben dem Zeitpunkt des Diebstahls und dem Zeitpunkt des Bekanntwerdens wird auch angegeben, welche Daten gestohlen worden sind, zum Beispiel E-Mail-Adressen, Benutzernamen oder Passwörter. Darüber hinaus nennt Mozilla Monitor allgemeine Tipps, welche man in Betracht ziehen sollte, wenn man von einem Datendiebstahl betroffen ist.

Anfang Februar dieses Jahres ist Mozilla Monitor Plus gestartet, bisher nur in den USA. Damit können persönliche Informationen von über 190 Personen-Suchmaschinen entfernt werden – einer laut Mozilla 240 Milliarden Dollar schweren Industrie, welche mit der Bildung von Profilen und dem Verkauf dieser Daten Profit generiert. Hierfür arbeitet Mozilla mit dem Dienstleister Onerep zusammen.

Ende der Zusammenarbeit mit Onerep

Nach einem Bericht von Brian Krebs, Journalist und Betreiber des Sicherheits-Blogs Krebs on Security, hat der Gründer und CEO von Onerep, Dimitiri Shelest, seit 2010 selbst zahlreiche solcher Personen-Suchmaschinen ins Leben gerufen. In diese ist er größtenteils nicht mehr involviert, ist mit Nuwber allerdings nach wie vor an einer beteiligt.

Auch wenn für Nutzer von Mozilla Monitor Plus durch die Verbindung keine direkte Problematik entstand, hat Mozilla das Thema damit kommentiert, dass die finanziellen Interessen und Aktivitäten des CEOs von Onerep nicht den Werten von Mozilla entsprechen. Mozilla Monitor Plus wird es weiterhin geben, aber Mozilla soll an einem „Übergangsplan“ arbeiten, welcher „den Kunden eine nahtlose Erfahrung bietet und ihre Interessen weiterhin an die erste Stelle setzt“. Weitere Details wurden keine genannt. Denkbar wäre, dass Mozilla die gleiche Dienstleistung in Zukunft über einen anderen Anbieter abwickeln wird.

Der Beitrag Mozilla Monitor Plus: Mozilla beendet Zusammenarbeit mit Onerep erschien zuerst auf soeren-hentzschel.at.

26. März 2024

Unter Linux kommt es immer öfter vor, dass bestimmte Spiele, wie zum Beispiel CS:GO 2, Star Citizen oder The Finals abstürzen. Die Fehlermeldung könnte wie folgt aussehen.

1err:virtual:try_map_free_area mmap() error cannot allocate memory, range 0xf4f60000-0x8ad0000, unix_prot 0x3

Meist liegt es daran, dass vm.max_map_count einen zu niedrigen Wert hat.

Der Standardwert, welches fest im Kernel eingetragen ist, ist derzeit 65530. Was heutzutage für viele Spiele, aber auch für andere Anwendungen wie Elasticsearch oft zu wenig ist.

Valve hat auf dem Steam Deck den Wert bereits auf 2147483642 erhöht. Einige Distributionen wie Fedora oder Ubuntu haben den Wert ebenfalls erhöht. Allerdings hat man sich für einen deutlich geringeren Wert von 1048576 entschieden. Dieser sollte aber aktuell ausreichend sein.

Arch Linux ist aktuell noch eine der Distributionen die den Standardwert nutzen, sodass es zu besagten Abstürzen kommen kann. Die Entwickler von Arch besprechen aber aktuell eine Erhöhung. Eine manuelle Anpassung (nicht nur unter Arch Linux) ist aber auch kein Problem.

Hierfür erstellt man die Datei /etc/sysctl.d/10-map-count.conf. Wie man die Datei nennt, ist im Grunde egal, solange die mit 10 beginnt und mit .conf endet. Die 10 ist wichtig, da umso niedriger die Zahl ist umso früher werden die Konfigurationsdateien vom Betriebssystem berücksichtigt.

In dieser Datei trägt man nun zum Beispiel vm.max_map_count=1048576 ein und speichert die Datei. Nach einem Neustart oder nach dem Ausführen von sysctl -p sollte der neue Wert gültig sein. Prüfen kann man dies mit dem Befehl sysctl vm.max_map_count. Betroffene Spiele bzw. Programme sollten sich nun normal starten und nutzen lassen.

Aufgrund der aktuellen Diskussion wegen vm.max_map_count unter Arch Linux wurde den Kernel-Entwicklern vorgeschlagen den Wert offiziell zu erhöhen (https://lore.kernel.org/lkml/566168554.272637693.1710968734203.JavaMail.root@zimbra54-e10.priv.proxad.net/T/#u). Ob diese zustimmen steht derzeit noch nicht fest.

25. März 2024

Wer Projekte per git auf dem aktuellen Stand halten will, aber sonst nicht viel mit git macht, braucht immer mal wieder dieselben Befehle, um die notwendigen Aktualisierungen durchzuführen. Da sind dann immer wieder diese Leute, die dann ein paar Befehle rüber werfen, aber nicht wirklich zwei klärende Worte zum Zusammenhang hinzufügen. Das Problem ist zwar damit vielleicht aus der Welt, aber es ist nichts damit gewonnen. Konfuzius rotierte im Grabe!

Gib einem Mensch einen Fisch und du ernährst ihn für einen Tag. Lehre einen Menschen zu fischen und du ernährst ihn für sein Leben.

Konfuzius

Wenn die Mehrzahl der EmpfehlerInnen nach dieser Maxime handeln würden, wäre das Frustrationspotential auf Myriaden von Webseiten und Foren nicht so hoch. Das musste ich mal los werden.

Ich gehe am praktischen Beispiel des Fediverse Servers Friendica vor. Den geübten Umgang mit z.B. Linux und der Konsole bzw der Shell Bash setze ich voraus. Ebenso ein installiertes git .

Git und das Repo

Das Software Repository, oft auch nur Repository oder Repo genannt, von Friendica liegt z.B. auf https://github.com/friendica/friendica . Das ist der Speicherort, auf dem die Software liegt und von Entwicklern gepflegt, programmiert und aktualisiert wird. Git ist eine Software, die gleichzeitig verschiedene Versionen von Dateien verwalten kann und für die Softwareentwicklung entwickelt wurde. Kurz gesagt ermöglicht sie es sehr einfach recht komplexe Version- Upgrades oder Downgrades absolut korrekt durchzuführen, so dass als Ergebnis immer eine saubere und lauffähige Version der Software bzw des Quellcodes herauskommt.
Mehr zum Thema git

Schritt 1: Die Software installieren – Das Repo clonen

Ich nehme mal an, du willst Friendica auf deinem Server installieren und hast das Webverzeichnis für deine Domain www.MeineDomain.de eingerichtet, das sich z.B. unter /var/web/MeineDomain/htdocs befindet. Und genau hier willst du Friendica installieren, daher wechselst du in dieses Verzeichnis. Das Verzeichnis muss komplett leer sein, sonst weigert sich git die Dateien hier abzulegen.

Der Befehl der dafür vorgeschlagen wird, ist oft

git clone https://github.com/friendica/friendica

ABER! Dieser würde dir in deinem /var/web/MeineDomain/htdocs/ Verzeichnis ein Unterverzeichnis friendica /var/web/MeineDomain/htdocs/friendica/anlegen und dort alle Dateien und Verzeichnisse ablegen. Und dein Server wäre dann nur unter www.MeineDomain.de/friendica/ erreichbar. Aber du möchtest, dass der Friendica Server unter www.MeineDomain.de erreichbar ist.

Daher musst du dem vorgeschlagenen Befehl noch ein Leerzeichen (Trenner) und einen Punkt (repräsentiert immer das aktuelle Verzeichnis) mitgeben, mit dem du angibst, dass die Dateien im aktuellen Verzeichnis abgelegt werden. Und dann sieht das so aus:

git clone https://github.com/friendica/friendica .

Damit liegt nun die Software, genauer gesagt die stable (früher master) Version, auf deinem Server und du kannst mit der Konfiguration und Einrichtung beginnen. Die Dokumentation dazu findest du unter https://wiki.friendi.ca/ .

Da die Addons für Friendica ein einem extra Repo https://github.com/friendica/friendica-addons liegen, müssen diese natürlich mit den gleichen Schritten eingerichtet und später dann auch aktualisiert werden.

Schritt 2: Aktualisierungen

In so einem Software Repo wird in den meisten Fällen nicht nur eine Software Version gepflegt, sondern meist mehrere. Eigentlich sind immer stable und develop bzw origin/stable und origin/develop verfügbar. Wie oben schon erwähnt hieß stable früher standardmäßig master, aber in modernen Repos gibt es nur noch den Namen stable oder öfter main. Hintergründe Bei Friendica heisst die aktuelle stabile Version stable.

Info: Für Friendica ist ein wenig mehr erforderlich. Die kompletten Befehle führe ich weiter unten auf. Aus Gründen der Verständlichkeit vereinfache ich die Vorgehensweise hier.

Ganz allgemein: Um deine Software zu aktualisieren wechselst du zukünftig in dein Verzeichnis /var/web/MeineDomain/htdocs/ und gibst den Befehl ein

git pull

und dein Friendica wird auf den neusten Stand gebracht. (Addons nicht vergessen)

Schritt 3: Versionen und branches

Nun gibt es wie oben schon geschrieben meist mindestens 2 Versionen. Die stable und die development Version. Die Versionen in git werden branches genannt. Welche branches du hast, kannst du ganz einfach herausfinden mit den Befehlen

Welche Branches liegen (remote) auf dem Software Repo
git branch -r

ergibt z.B. so eine Ausgabe

 origin/2022.09-rc
 origin/2022.12-rc
 origin/2023.03-rc
 origin/2023.05-rc
 origin/2023.09-rc
 origin/2024.03-rc
 origin/HEAD -> origin/develop
 origin/develop
 origin/stable

Welche Branches liegen (lokal) deinem Server
git branch -a

Um zu einem anderen branch bzw Version zu wechseln, gibst du einfach z.B. ein

git checkout develop um auf die Entwicklerversion zu wechseln
git checkout stable um auf die stabile Hauptversion zu wechseln.

Allerdings sollte so ein Wechsel immer gut durchdacht sein, denn oftmals kann das weitere Abhängigkeiten haben, wie zum Beispiel bei Friendica irgendwelche Updates von Datenstrukturen in der Datenbank. Älter Versionen kennen neuere Datenbankstrukturen nicht und das wird dann vermutlich zu Fehlern führen. Prüfe stehts!

Schritt 4: Updates und Versionen – development, stable & RC

Es gibt also die development Version, die immer die neusten Funktionen und Features hat, die aktiv entwickelt werden und daher mit einer hohen Wahrscheinlichkeit Fehler enthalten, die noch korrigiert (gefixt) werden müssen. Und die stabile stable Version, die zum produktiven Einsatz freigegeben wurde.

Dann gibt es oft noch RC (Release Candiates) Versionen. Zum Beispiel eine 2024.04-RC . Das ist eine aktuelle development Version, zu der keine neuen Features dazu kommen (Feature Freeze) und die zur nächsten stabilen Version werden soll. Diese Version ist mit einer öffentlichen Beta Version vergleichbar, die zur Verfügung gestellt wird, damit sie von vielen getestet und eventuelle Fehler behoben werden können. Wenn dann alle Fehler behoben sind, dann wird diese 2024.04-RC Version in die stable Version überführt.

Das heißt, wenn die Aktualisierung des eigenen Friendica Servers immer auf das branch stable eingestellt ist, dann wird beim nächsten git pull der Server automatisch auf die neuste Version aktualisiert. Wurde zuvor auf z.B. auf das RC 2024.04-RC branch gewechselt, muss natürlich dann aktiv auf das stable branch wieder zurück gewechselt werden. git checkout stable & git pull

Friendica per Git aktualisieren

Bei Friendica gibt es wie beschrieben noch das addon Verzeichnis und zusätzlich noch den Composer, der Abhängigkeiten von bestimmten Softwarebibliotheken verwaltet und sicherstellt, dass die richtigen Versionen auf deinem Server liegen. Daher müssen bei einer Aktualisierung mindestens folgende Befehle eingegeben werden.

Ausgehend dass du dich in deinem deinem Verzeichnis /var/web/MeineDomain/htdocs befindest:

git pull https://github.com/friendica/friendica.git
bin/composer.phar install --no-dev 
cd addon 
git pull https://github.com/friendica/friendica-addons.git 

weitere nützliche Git Befehle

git fetch – Die Liste der Branches vom Repo holen
git checkout <branch name> – Den Branch wechseln
git stash – Local commits „verwerfen“
git checkout -b <NAME> – Lokal einen neuen Branch <NAME> erstellen
git branch -D <NAME> – Lokalen Branch <NAME> löschen
git push origin --delete <NAME> – Den remote Branch <NAME> löschen
git branch -r – Remote Branches anzeigen lassen
git branch -a – Lokale Branches anzeigen lassen
git remote prune origin – Löscht alle lokalen Branches, die auch nicht mehr auf dem remote Repo sind
git gc --auto – Garbage Collection. führt Aufräumarbeiten durch (komprimiert Revisionen, entfernt lose/unzugängliche Objekte). Mit der Option –auto wird zunächst festgestellt, ob Maßnahmen erforderlich sind, und wenn dies nicht der Fall ist, wird das Programm beendet, ohne etwas zu tun.

Falls es zu Fehlermeldungen und größeren Problemen kommt, dann sind folgende Befehle hilfreich. ABER bitte vorher das Handbuch dazu lesen !!! Nicht einfach per Copy n Paste von hier benutzen! Sonst selber schuld!
git reset --hard
git clean -df -x

The post Git Leitfaden für Beginner first appeared on Dem hoergen Blog.

Dies ist mein Erfahrungsbericht der Chemnitzer Linux-Tage 2024. Es war mal wieder eine sehr schöne Veranstaltung.

Die Anreise

Im vergangenen Jahr hatte mich die Deutsche Bahn in Chemnitz sitzengelassen und ich musste mit einem kurzfristig angemieteten Leihwagen heimfahren.

Da die Deutsche Bahn und die Gewerkschaft Deutscher Lokomotivführer sich noch immer nicht auf einen neuen Tarifvertrag einigen können und ich mich nicht erneut über eine schlechte Verbindung ärgern wollte, bin ich dieses Jahr mit dem eigenen Pkw gefahren.

Am Freitag um 13:30 Uhr ging die Reise los. Mit viel Verkehr, Baustellen und Stau waren ich etwa 4,5 Stunden später im Hotel, wo ich direkt über Stoeps gestolpert bin.

Wir spazierten vom Residenz Hotel Chemnitz zum Veranstaltungsgebäude, um uns anzumelden und unsere Badges zu empfangen. Damit ersparten wir uns das Warten in der Schlange am Samstagmorgen.

Am Hörsaalgebäude traf ich schon erste vertraute Gesichter, wie z.B. Andreas, welcher fleißig beim Aufbau geholfen hat. Hier haben wir uns auch mit Michael von der Aspicon GmbH getroffen, mit dem ich für Sonntag einen Vortrag geplant hatte. Wir sind gemeinsam in die Stadt gegangen, um uns bei Speis und Trank kennenzulernen und den Abend zu verplaudern.

Der Samstag

Um 07:00 Uhr begann ich den Tag mit dem Frühstück. So war der erste Hunger bereits gestillt, als der Frühstücksraum sich zu füllen begann. Bekannte Gesichter und nerdige T-Shirts verrieten, dass es sich bei sehr vielen der Gäste um Besucher der Chemnitzer Linux-Tage handelte.

Die 20 Minuten zum Veranstaltungsort wurden auch diesmal wieder zu Fuß zurückgelegt. Und der erste Konferenztag konnte beginnen.

Um 10:00 Uhr war ich an der Reihe und durfte in einem rappelvollen Raum V6 meinen „::1“-Vortrag halten. An dieser Stelle euch allen nochmal vielen Dank für eure Teilnahme. Ich hoffe, ihr hattet so viel Spaß wie ich und konntet ein paar neue Eindrücke gewinnen.

Es hat mich gefreut, auch nach dem Vortrag noch einige Fragen beantworten zu können und über IPv6 zu fachsimpeln. Ganz nebenbei konnte ich auch noch die Frage eines Red Hat-Kunden beantworten. Darüber freute sich dieser sehr, bleibt ihm der Support eine zufriedenstellende Antwort doch seit langer Zeit schuldig. Es ist halt stets eine gute Erfahrung, einen TAM zu treffen.

Die Chemnitzer Linux-Tage gibt es übrigens schon seit 25 Jahren. Da eine Veranstaltung aufgrund der Pandemie ausfallen musste, findet die 25. Veranstaltung allerdings erst im nächsten Jahr am 22. und 23. März statt.

20-jähriges Jubiläum feiert in diesem Jahr Ubuntu, weshalb der Community-Stand dieses Jahr besonders schön geschmückt war und toddy mehrfach mit Luftschlangen gefesselt wurde.

Ich genieße die Zeit unter gleichgesinnten Nerds oder wie Stoeps es ausdrückte: „Endlich wieder unter normalen Menschen“. Mich hat es dieses Jahr sehr gefreut, auch viele jüngere Gesichter zu sehen. So sehr ich mich freue, auch die gleichen alten Nasen immer wiederzutreffen ist es doch schön, dass die Gemeinschaft nicht einfach alt wird, sondern auch junge Menschen mit Interesse, Motivation und Freude an Open Source nachwachsen.

Da die Hörsäle hier bei den Vorträgen meist aus allen Nähten platzen, hatte ich mich im Vorfeld als Sessionleitung für die drei Vorträge

  1. Never ever break userspace – was das in der Praxis bedeutet von Wolfram Sang
  2. DIY Verified Boot in 2024 von Marco Felsch und
  3. VirtualBox Meets KVM von Julian Stecklina

gemeldet. So war mir ein guter Platz im Raum sicher. Ich danke den drei Referenten für ihre interessanten Vorträge.

Am Abend waren alle Aussteller, Helfer und Referenten zum gemütlichen Beisammensein in die Mensa eingeladen, welche schräg gegenüber dem Veranstaltungsgebäude liegt. Hier gab es ein reichhaltiges Angebot an warmem und kaltem Essen sowie eine Auswahl verschiedenster Getränke. Vielleicht ist es in der Zukunft möglich, die Getränke zu kühlen. Dann wird das Bier nicht so schnell warm und schmeckt länger gut.

Ich schätze es sehr, mich auf Konferenzen mit alten und neuen Bekannten auszutauschen, zu fachsimpeln und ganz allgemein angeregte Gespräche zu führen. Das musikalische Rahmenprogramm traf auch in diesem Jahr nicht meinen Geschmack. Ich würde mir etwas Hintergrundberieselung wünschen, um sich gut unterhalten zu können. Doch sind Geschmäcker verschieden und ich erkenne durchaus an, was das Organisations-Team der Chemnitzer Linux-Tage hier Jahr für Jahr auf die Beine stellt. Euch allen vielen Dank für euren unermüdlichen Einsatz.

Der Sonntag

Nach einem frühen Frühstück und Check-out ging es heute mit dem Auto zum Veranstaltungsgelände. Noch vor dem zweiten Kaffee wurden hier die Folien für den nächsten Vortrag nochmal geprüft. Um 10:00 Uhr war es wieder soweit. Diesmal durfte ich zusammen mit Michael den Vortrag „Mit Ansible Collections & Workflows gegen das Playbook-Chaos“ halten.

@Michael: „Es hat mir gut gefallen, mit dir einen Vortrag zu halten. Das können wir gerne wiederholen.“

Beim Mittagessen habe ich dann auch noch Christian getroffen. Für ihn waren es die ersten Chemnitzer Linux-Tage und auch ihm haben sie sehr gut gefallen.

Und wie immer war die Zeit auch viel zu schnell wieder vorbei. So habe ich Henning zwar kurz gesehen, doch für mehr als ein kurzes „Hi und Tschüss, bis zum nächsten Mal“ reichte es diesmal leider nicht.

Die Heimreise

Auch die schönsten Chemnitzer Linux-Tage gehen vorbei. Doch im Auto sitzend freute ich mich auch schon darauf, meine Familie wiederzusehen. Die Straße war frei und nach nur 3 Stunden 20 Minuten war ich wieder daheim. Zum Vergleich, mit der Bahn wäre ich je nach Verbindung erst nach 5,5-6,5 Stunden daheim gewesen, wenn alles nach Plan fährt.

So konnte ich mehr Zeit vor Ort verbringen und war rechtzeitig daheim, um noch etwas Zeit mit meinem Sohn zu verbringen, bevor dieser ins Bett ging.

Fazit

Es war schön. Ich hoffe, ihr seid alle wieder gut heimgekommen und behaltet auch diese Chemnitzer Linux-Tage in guter Erinnerung.

Weitere Berichte über die CLT 2024

24. März 2024

Anfang März wurde eine neue Postfix Version 3.9 veröffentlicht. Nach fast einem Jahr Entwicklungszeit löst diese Version gleichzeitig den alten stabilen Zweig 3.5 ab, welcher aus dem Jahr 2020 stammt.

Postfix

Abschaltungen

Mit dieser neuen Major Version wurden alte Zöpfe abgeschnitten und alte, wirklich alte, MySQL Versionen < 4.0. MySQL werden nicht mehr unterstützt.

Auch Features wie "permit_naked_ip_address", "check_relay_domains" und "reject_maps_rbl" wurden entfernt. Die Funktionen "disable_dns_lookups" und "permit_mx_backup" wurden als überholt markiert und werden entfernt.

Änderungen

Daneben wurden die angekündigten Sicherheitsfeatures implementiert, um unter anderem gegen SMTP Smuggling vorzugehen.
So müssen SMTP Clients nun <CR><LF>.<CR><LF> senden, um das Ende eines Datenstroms zu signalisieren.
Die Funktion "smtpd_forbid_unauth_pipelining" trennt ab sofort SMTP-Clients, die gegen RFC 2920 (oder 5321) Befehlspipelining-Beschränkungen verstoßen.
Zusätzlich gab es Formatierungsänderungen im Mailheader. Postfix verwendet jetzt zweistellige Tagesformate. Heißt, einstelligen Nummern wird eine Null vorgestellt.

Neuerungen

Natürlich gab es auch einige Neuerungen in Postfix 3.9, die dich sicher interessieren werden.

  1. MongoDB: Postfix spricht MongoDB, was es dir erlaubt, Daten wie aliases oder canonical dort abzulegen
  2. ID Weiterleitung: IDs können nun via ENVID (Envelope ID) weitergeleitet werden
  3. MySQL and PostgreSQL Verbesserungen: Solltest du MySQL oder PSQL einsetzen, werden die Parameter "idle_interval" und "retry_interval" ab sofort unterstützt. Das erleichtert dir das Verbindungsmanagement
  4. Raw Public Key Support: Erlaubt dir die Verwendung eines selbst signierten Zertifikats anstatt eines x509.
  5. OpenSSL Konfiguration: Postfix unterstützt jetzt eigene OpenSSL Konfigurationsdateien "tls_config_file" und "tls_config_name"

Security

Auf Seiten der Sicherheit gab es ebenfalls Neuerungen.
Das weiter oben bereits erwähnte "smtpd_forbid_unauth_pipelining = yes" gegen Blind Angriffe (SSRF Angriffe) und das ebenfalls genannte Signaling zum Ende des Datenstroms (SMTP Smuggling) zählen hier mit rein. Letzteres hat mit "smtpd_forbid_bare_newline = normalize" eine weitere Sicherheitsfunktion erhalten. Gleiches gilt für das neue "cleanup_replace_stray_cr_lf = yes"
Als Maßnahme gegen Amplification Angriffe wurden die Abfragen des DNS Clients auf 100 reduziert, gewissermaßen ein Rate Limiter am oberen Ende.

Vollständige Release Notes

23. März 2024

Bei KDE wurde kürzlich eine Sicherheitslücke bekannt, die wohl erstmal offen bleiben wird. Komponenten aus dem KDE-Store, der sich an verschiedenen Stellen hinter der Schaltfläche “Neue holen…” in verschiedenen KDE-Komponenten verbirgt, können Schadcode enthalten und in den Benutzerdaten wüten.

Im konkreten Fall handelte es sich nicht um einen absichtlichen Angriff. Es handelte sich lediglich um einen Fehler. Die Ursache liegt in einer KDE-Funktionalität. Benutzer von Plasma können über den KDE-Store Themes, Widgets und Miniprogramme beziehen. Diese werden zwar nur mit Benutzerrechten installiert, können aber funktionsbedingt ziemlich uneingeschränkt Skripte etc. im jeweiligen Home-Verzeichnis ausführen. KDE benötigt dies, da nicht alle Themes und Miniprogramme über die Distributionen paketiert werden können.

Der Vorfall zeigt einmal mehr, dass Linux auf dem Desktop ein ziemlicher Ponyhof ist. Wenn man es schonungslos auf den Punkt bringt, sieht es so aus: Die KDE-Entwickler bauen eine Sideload-Option für bösartigen Code ein, es fällt jahrelang niemandem auf und nachdem es dann doch auffällt, ist die erste Reaktion im Tenor: “Da kann man nichts machen, ohne die Funktionalität einzuschränken”. Die Nutzer müssen einfach aufpassen und vielleicht kann es eine Warnung geben. Eine Kuratierung wäre wünschenswert, ist aber nicht so schnell umsetzbar und bindet Ressourcen.

Die Nachlässigkeit bei KDE ist die eine Seite der Medaille. Sie ist vermutlich auch deshalb nicht so schlimm, weil diese KDE-Funktion nie besonders exzessiv genutzt wurde und die meisten Anwender mit dem arbeiten, was standardmäßig mitgeleifert wird, weil das bei KDE schon sehr viel ist. Kombiniert wird diese Nachlässigkeit bei KDE mit der immer noch völlig unterschätzten Gefahr fehlender Rechtebeschränkungen innerhalb des Benutzerverzeichnisses. Immer noch geben sich zu viele Linux-Anwender der Illusion hin, dass Schadcode nur dann gefährlich ist, wenn er mit Administratorrechten ausgeführt wird. Ein massiver Datenverlust im Home-Verzeichnis reicht bei nachlässigen Backups aus (und die meisten Anwender sind nachlässig bei Backups). Programme werden unter Linux traditionell kaum eingehegt, sondern können im Home-Verzeichnis nach Belieben schalten und walten.

Machen wir uns nichts vor. Im Falle eines größeren Malware-Drucks wären solche Funktionen fatal und würden massiv ausgenutzt.

Der Artikel Kommentar: Sicherheitsprobleme bei KDE erschien zuerst auf Curius

22. März 2024

In den letzten Blogposts habe ich gezeigt, wie ich mein privates VPN mit openVPN aufsetze. In diesem Post wiederhole ich das - nur eben mit Wireguard.

OpenVPN und Wireguard können auch problemlos nebeneinander laufen, wenn sie verschiedene Netzmasken benutzen. So hat man jeweils ein Fall-Back-Netz, mit dem man die Clients noch erreichen kann.

Auf dem Handy verbraucht openVPN mehr Strom, weil die Kryptosachen stärker sind. Wireguard ist da schlanker bei ausreichender Verschlüsselung.

VPN

Mein Wireguard-VPN soll unter den Netzen 10.3.3.0/24 und fd04:bab0:3::/64 laufen. Alle Clients sollen sich gegenseitig sehen und anpingen können. Auf Wunsch soll der gesamte Traffic über das VPN geroutet werden.

Installation

Unter Ubuntu lässt sich Wireguard auf Server und Clients wie folgt installieren:

#Ubuntu
apt install wireguard
 
#Arch, btw
pacman -S wireguard-tools

Schlüssel erzeugen

Auf meiner Zertifikationsinstanz (oder auf jedem anderen Rechner) erstelle ich mir einen neuen Ordner und erzeuge für den Server sowie für jeden Client ein Paar aus privatem und öffentlichem Schlüssel.

sudo bash
umask 077 && wg genkey | tee server-private.key | wg pubkey > server-public.key
umask 077 && wg genkey | tee client1-private.key | wg pubkey > client1-public.key
umask 077 && wg genkey | tee client2-private.key | wg pubkey > client2-public.key
umask 077 && wg genkey | tee client3-private.key | wg pubkey > client3-public.key

Die Inhalte der Schlüsseldateien werden gleich plaintext in die Configdateien geschrieben.

Server aufsetzen

Nach der Installation existiert das Verzeichnis /etc/wireguard. In diesem Verzeichnis liegen die .conf-Dateien der VPNs, egal ob Server oder Client. Der Name der .conf-Datei entscheidet über den Namen der Interfaceschnittstelle. Benenne ich die Datei foobar.conf, so wird ein Tunneldevice mit dem Namen foobar erzeugt. Die Datei tun0.conf erzeugt ein Interface mit dem Namen tun0. Standardmäßig (also in den Manuals im Netz) werden für Wireguard wg0-Interfaces erzeugt.

Wir erzeugen also die Datei wg0.conf und geben ihr folgenden Inhalt:

# ---------- Server Config ----------
[Interface]
## welche IP4-Adresse hat der Server im Tunnel?
Address = 10.3.3.1/24

## welche IPv6-Adresse hat der Server im Tunnel?
Address = fd04:bab0:3::1/64 

# Wenn ihr iptables nutzt, dann wird hier das NAT zum Internet klargemacht
# Mein Device heisst eth0, eures auch? ansonsten ändern!
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -s 10.3.3.0/24 -o eth0 -j MASQUERADE; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -A POSTROUTING -s fd04:bab0:3::/64 -o eth0 -j MASQUERADE 
# Sobald der VPN beendet wird, werden die iptables Regeln rückgängig gemacht
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -s 10.3.3.0/24 -o eth0 -j MASQUERADE; ip6tables -D FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -D POSTROUTING -s fd04:bab0:3::/64 -o eth0 -j MASQUERADE

# Hier kommt der private Key des Servers hin, in Plaintext
PrivateKey = OHUJätschibätschifasfdeg92wz4CvFqlWWUW74dfgM5+zPfuEU=
# Auf welchem Port soll der Server lauschen?
# Diesen Port in der Firewall freigeben!
ListenPort = 45881 

## Für jeden Client kommt hier eine eigene Identifikation
[Peer] # Client1
# Schreibe hier den öffentlichen Schlüssel des Client1 hinein
PublicKey = AfuckAfDfejoqfooobaaarmHILbtoxReB6ZjzNuMtyYNxlM= 
# Mit welchen IP4 und IPv6-Adressen soll sich der Client verbinden?
# Hier müssen ein /32  und /128 verwendet werden (= genau 1 IP-Adresse erlaubt)
AllowedIPs = 10.3.3.2/32, fd04:bab0:3::2/128 


# Hier wiederholt sich das Ganze für Client2
[Peer] # CLient2
# Client public key
PublicKey = 1xejE9Z2OnkqkuckuckFcOsoLA623M1yRr+7/v7SmAtP36UmG8=  
# IPs client can connect as (IPv4 /32  and IPv6 /128)
AllowedIPs = 10.3.3.3/32, fd04:bab0:3::3/128 

[Peer] # Client3
# Client public key
PublicKey = sCid523sdfXwQHoErOyXyIk8UNEz36aff7+R9MIU8Xm4wc=  
# IPs client can connect as (IPv4 /32  and IPv6 /128)
AllowedIPs = 10.3.3.4/32, fd04:bab0:3::4/128 
  • Der Server lauscht unter IP4 und IPv6 auf Port 45881. Ihr könnt auch irgendeinen anderen Port auswählen.
  • Der Server wird unter den Adressen 10.3.3.1/24 und fd04:bab0:3::1/64 über den Tunnel ereichbar sein. Ebenso haben derzeit 3 Clients Zugriff, wobei jeder Client eine fixe IP4 und IPv6 im Tunnelnetz erhält.
  • Bei den AllowedIPs ist euch sicherlich aufgefallen, dass bei IP4 ein /32 und bei IPv6 ein /128 hinter die Adresse geschrieben werden muss.
    • Auf dem Server fungiert AllowedIPs ähnlich wie ein Router und gibt an, wohin der Datenverkehr geroutet werden soll. Daher genügt die Angabe von /32 oder eben /128 (genau eine IP-Adresse).
    • In der gleich folgenden Client-Config fungiert AllowedIPs wie eine Access-Controll-List. Daher muss in der Client-Config ein /24 bzw. /64 definiert werden, um alles von 10.3.3.* bzw. fd04:bab0:3:: zu akzeptieren.
  • Soll ein weiterer Client hinzugefügt werden, muss in der Server-Config ein neuer [Peer]-Block mit dem puplic key des neuen Clients hinzugefügt werden.

Server starten

Ähnlich wie bei openVPN liest systemd das Verzeichnis /etc/wireguard aus und macht alle dort befindlichen MY-VPN.conf-Dateien verfügbar über den Service wg-quick@MY-VPN.service.

Wir können unseren wg0-Server starten mittels:

# Starten
systemctl start wg-quick@wg0.service
# Logs ansehen
journalctl -u wg-quick@wg0.service -f

Firewall anpassen

Falls ihr eine Firewall benutzt (und ich hoffe doch sehr, dass dies der Fall ist), muss diese für Wireguard angepasst werden. Einerseits muss der Server-Port freigegeben werden (ich habe da ja 45881), anderseits müssen wir intern NAT einrichten, wenn der Internetverkehr über den Tunnel geroutet werden soll.

iptables

Die iptables-Firewall muss auf dem Server und auf den Clients angepasst werden, damit openVPN funktioniert:

## Akzeptiere Pakete von den wg+ Interfaces
iptables -A INPUT -i wg+ -j ACCEPT
iptables -A FORWARD -i wg+ -j ACCEPT

## auf dem Server muss Port 45881 tcp/udp geöffnet werden
iptables -A INPUT -i eth0 -p tcp --dport 45881 -j ACCEPT
iptables -A INPUT -i eth0 -p udp --dport 45881 -j ACCEPT

Wenn euer Device nicht eth0 heisst, müsst ihr den Befehl entsprechend anpassen.

ufw

Die ufw-Firewall muss auf dem Server angepasst werden, damit Wireguard funktioniert. Zunächst muss der Serverport freigegeben werden:

sudo ufw allow 45881

Anschließend müssen drei weitere Dateien editiert werden, damit das Netz funktioniert.

  1. /etc/default/ufw
nano /etc/default/ufw 

DEFAULT_FORWARD_POLICY="ACCEPT"

2a. /etc/ufw/before.rules, füge die folgenden Zeilen vor der *filter-Sektion ein, um das NAT für IPv4 zu aktivieren:

nano /etc/ufw/before.rules

# NAT-Tabelle hinzufügen
*nat
:POSTROUTING ACCEPT [0:0]
# OpenVPN-Regeln hinzufügen
-A POSTROUTING -s 10.3.3.0/24 -o eth0 -j MASQUERADE
COMMIT

2b. /etc/ufw/before6.rules, füge die folgenden Zeilen vor der *filter-Sektion ein, um das NAT für IPv6 zu aktivieren:

nano /etc/ufw/before6.rules

# NAT-Tabelle hinzufügen
*nat
:POSTROUTING ACCEPT [0:0]
# OpenVPN-Regeln hinzufügen
-A POSTROUTING -s fd04:bab0:3::/64 -o eth0 -j MASQUERADE
COMMIT

Wenn euer Device nicht eth0 heisst, müsst ihr den Befehl entsprechend anpassen. Und falls ihr diese Einstellung gerade getroffen habt, könnt ihr in der wg0.conf des Servers die Parameter PostUp und PostUp wieder auskommentieren.

  1. /etc/ufw/sysctl.conf
nano /etc/ufw/sysctl.conf

net/ipv4/ip_forward=1
net/ipv6/conf/default/forwarding=1
net/ipv6/conf/all/forwarding=1

Client einrichten

Auf den Clients erzeugen wir ebenfalls die Datei /etc/wireguard/wg0.conf und geben ihr diesen Inhalt:

# -------- Client Config ------------------
[Interface]
# IP4 Adresse des Clients, so wie in der Server-Config angegeben (/32!)
# Dieser Client bekommt 10.3.3.2
Address = 10.3.3.2/32 
# IPv6 Adresse des Clients (use /128!)
# Dieser Client bekommt fd04:bab0:3::2
Address = fd04:bab0:3::2/128 
# Der Private Key von Client1 im Plaintext
PrivateKey = GNJJAJT0MQnxRHga8Rzp/hLGoCtsefljhelahDks6EMD8Vw= 


[Peer]
# Wie ist der Server erreichbar? Adresse und Port
#Endpoint = [2a02:08:15:4500:fckafd:4]:45881
#Endpoint = 192.168.0.1:45881
Endpoint = vpn.myserver.org:45881

# Der öffentliche Schlüssel des Servers im Plaintext
PublicKey = emV/wFCKAFD4WIyakB/JEi7jp9wH7zBCi81W+qjuMkWc= 

# Sende alle x Sekunden einen Ping an das Netz 
# um den Tunnel aufrecht zu erhalten. 
# Sollte NIE auf dem Server gesetzt werden, 
# sondern nur dort, wo auch "Endpoint" definiert ist. 
# Also hier im Client...
PersistentKeepalive = 5

# Was soll durch den Tunnel geroutet werden?
## Option 1: nur Tunnelkrams durch den Tunnel routen
AllowedIPs = 10.3.3.0/24, fd04:3::/64 
## Option 2: ALLES durch den Tunnel routen
#AllowedIPs = 0.0.0.0/0, ::/0 
  • Diese Datei muss ich nun bei jedem Client nach dem selben Muster anlegen.
  • Der Client erhält seine fest IP4 und IPv6 über den Tunnel
  • Dieses Mal müssen unter Address jeweils ein /32 bzw /128 vergeben werden (= 1 IP Adresse).
    • Der Parameter AllowedIPs fungiert im Clientmodus wie eine Access-Controll-List. Daher wird an dieser Stelle wieder ein /24 bzw. /64 definiert, um alles von 10.3.3.* bzw. fd04:bab0:3:: über den Tunnel zu routen.
  • Soll der gesamte Datenverkehr über den VPN-Tunnel geroutet werden, muss die zweite AllowedIPs-Zeile aktiviert (und die darüberstehende auskommentiert) werden.

Android

Für mein Handy erstelle mich mir wie oben beschrieben ein Schlüsselpaar und generiere mir eine Clientconfig wie oben, wobei ich die zweite AllowedIPs-Option wähle (alles übers VPN routen). Diese wg0.conf übertrage ich per KDE Connect auf mein Handy.

Als App installiere ich mittels F-Droid WG Tunnel von Zane Schepke, da die Original-Wireguard-App Ende 2023 aus dem F-Droid-Repository geflogen ist (weil sie einen integrierten Aktualisierer bekommen hat, der standardmäßig aktiviert ist und nicht transparent angibt, von wo aus er Aktualisierungen herunterlädt; noch fragt er um Zustimmung).

Jetzt kann ich einfach die übertragene wg0.conf-Datei in der App importieren, und alles funktioniert bestens. Ok, in den App-Einstellungen musste ich noch “Tunnel on untrusted wifi” und “Tunnel on mobile data” aktivieren, dann hat es aber sofort funktioniert.

“Tunnel on untrusted wifi” und “Tunnel on mobile data” aktivieren

Weblinks


Diskussion per Matrix unter https://matrix.to/#/#produnis-blog:tchncs.de

 

Mozilla hat Firefox 124.0.1 veröffentlicht und behebt damit zwei kritische Sicherheitslücken, welche im Rahmen des Hacking-Wettbewerbs Pwn2Own demonstriert worden sind.

Download Mozilla Firefox 124.0.1

Wieder einmal fand ein Pwn2Own-Wettbewerb im Rahmen der CanSecWest Sicherheitskonferenz in Vancouver statt. Und wie bereits im Vorfeld erwartet, hat Mozilla in Form eines schnellen Updates (weniger als 24 Stunden) auf die Firefox betreffenden Ergebnisse reagiert. Firefox 124.0.1 behebt zwei Sicherheitslücken, welche Mozilla beide als kritisch einstuft. Ebenfalls in diesem Zusammenhang veröffentlicht wurde Firefox ESR 115.9.1.

Der Beitrag Sicherheits-Update Firefox 124.0.1 veröffentlicht erschien zuerst auf soeren-hentzschel.at.

20. März 2024

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

Offene Tabs in Firefox View sortieren

Die mit Firefox 106 eingeführte und mit Firefox 119 stark verbesserte Funktion Firefox View hatte mit Firefox 123 eine Suchfunktion sowie verbesserte Performance erhalten. Firefox 124 bringt eine weitere Verbesserung: Im Reiter der offenen Tabs ist es ab sofort möglich, diese wahlweise nach der neuesten Aktivität oder nach der Tab-Reihenfolge zu sortieren.

Plattform-Verbesserungen auf Apple macOS

Firefox auf macOS nutzt nun endlich auch die native Vollbild-Schnittstelle des Apple-Betriebssystems, womit sich Firefox in bestimmten Aspekten mehr so verhält, wie man es unter macOS erwartet.

Seit macOS 14 zeigt das Apple-Betriebssystem ein Kamera-Symbol in der Menüleiste an, wenn der Kamera-Zugriff für eine Website aktiviert ist. Firefox selbst zeigt ebenfalls ein Kamera-Symbol in der Menüleiste an. Über die neue Option privacy.webrtc.showIndicatorsOnMacos14AndAbove in about:config auf false kann der Indikator, der von Firefox kommt, auf macOS 14 und höher deaktiviert werden.

Die Schriftgröße in Dialogen auf macOS war bisher sehr klein. Hier verwendet Firefox ab sofort eine etwas größere Schrift.

Sonstige Endnutzer-Neuerungen von Firefox 124

Die Textcursor-Steuerung, welche durch Drücken der Taste F7 aktiviert werden kann, funktioniert jetzt auch in PDF-Dateien.

Die Suchmaschine Qwant steht nicht mehr nur bei Verwendung der französischen Sprache, sondern ab sofort auch für Nutzer anderer Sprachen in Frankreich sowie für Nutzer in der Schweiz, Belgien, Italien, den Niederlanden sowie Spanien standardmäßig zur Verfügung.

Für Nutzer, welche die separate Suchleiste aktiviert, aber seit mindestens 120 Tagen nicht genutzt haben, wird diese automatisch aus der Oberfläche entfernt.

Firefox geht jetzt besser mit Änderungen der Netzverbindung um, zum Beispiel bei Aktivierung respektive Deaktivierung eines VPNs oder DNS-over-HTTPS, sodass Firefox bei einem Wechsel nicht mehr erst einmal eine Zeit lang benötigt, um wieder erfolgreich Verbindungen zu Websites aufbauen zu können.

Die Jump List in der Taskleiste von Windows wird nun effizienter befüllt, was die Performance verbessern sollte.

Für Nutzer in den USA gibt es, sofern gesponserte Vorschläge in der Adressleiste aktiviert sind, jetzt auch Suchvorschläge von Yelp.

Mehr Sicherheit für Firefox-Nutzer

Auch in Firefox 124 wurden wieder mehrere Sicherheitslücken geschlossen. Alleine aus Gründen der Sicherheit ist ein Update auf Firefox 124 daher für alle Nutzer dringend empfohlen.

Verbesserungen der Entwicklerwerkzeuge

Mit Firefox 122 hatte Mozilla die Tastatur-Steuerung des Regeln-Panels im Inspektor-Werkzeug überarbeitet. Diese Änderung wurde in Firefox 122.0.1 aufgrund von Nutzer-Feedback standardmäßig wieder rückgängig gemacht und eine Option in about:config implementiert, über welche man das gewünschte Verhalten steuern kann. Firefox 124 ergänzt eine sichtbare Option in den Einstellungen der Entwicklerwerkzeuge.

Das Netzwerkanalyse-Werkzeug zeigt jetzt auch Ressourcen an, welche über das file://-Protokoll geladen werden.

Performance-Verbesserungen gab es für das Regeln-Panel des Inspektors bei vielen zutreffenden CSS-Regeln sowie für die Darstellung von Objekten in der Konsole.

Verbesserungen der Webplattform

Auf CSS-Seite neu ist die Unterstützung von text-wrap: wrap und text-wrap: nowrap. Die Pseudo-Elemente ::first-letter und ::first-line können außerdem jetzt auch für das <text>-Element in SVG-Grafiken verwendet werden.

Firefox unterstützt jetzt AbortSignal.any. Außerdem können jetzt HTTP(S) sowie relative URLs für die Erstellung von WebSockets genutzt werden.

Für Entwickler von Firefox-Erweiterungen wurde ein neues WebExtension-Event hinzugefügt, worüber Erweiterungen Informationen erhalten können, wenn eine Performance-Warnung ausgegeben wird.

Weitere Neuerungen für Entwickler von Websites lassen sich in den MDN Web Docs nachlesen.

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

19. März 2024

Die MZLA Technologies Corporation hat mit Thunderbird 115.9 ein planmäßiges Update für seinen Open Source E-Mail-Client veröffentlicht.

Neuerungen von Thunderbird 115.9

Mit dem Update auf Thunderbird 115.9 hat die MZLA Technologies Corporation ein planmäßiges Update für seinen Open Source E-Mail-Client veröffentlicht. Das Update bringt diverse Fehlerbehebungen und Verbesserungen unter der Haube, welche sich in den Release Notes (engl.) nachlesen lassen. Auch wurden diverse Sicherheitslücken geschlossen.

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