Fedora 33: der Wechsel zu systemd-resolved schaltet DNSSEC aus

Wow, was für eine Hammermeldung. Damit hatte vermutlich niemand gerechnet, daß der Wechsel zu systemd-resolved als DNS Resolver des Systems einfach mal die einzige Sicherheitsmaßnahme im DNS aushebelt, die überhaupt spürbar Sicherheit gebracht hat 🙂

Fedora 33: der Wechsel zu systemd-resolved schaltet DNSSEC aus

„Seit heute morgen 6:44 Uhr wird zurück geschossen“ :  Paul Wouters, bekannt aus dem Bereich Transparenz und Sicherheit der IETF, updatete seinen Server auf Fedora 33, was er quasi sofort bereut hat. Mit dem Wechsel kam die Umstellung auf systemd-resolved, über den wir vor Monaten in der Fedora Mailingliste gesprochen hatten und ich eigentlich der Meinung war, daß die Umstellung der /etc/resolv.conf hin zu systemd-resolved in der Form gar nicht kommt.

Man merkt, daß Paul bei seinem Posting an die Fedora-Devel-Mailingliste auf Krawall gebürstet war, und das vollkommen zu Recht. Seine ganzen Serverdienste benutzen DNSSEC um die Verbindungen zu Mailserver, VPN usw. abzusichern, so daß niemand für seine Dienste eine MITM-Attacke fahren kann und dann kann der eingesetzte DNS-Resolver plötzlich kein DNSSEC mehr:

„It is my opinion as a long time DNS RFC author and package maintainer that systemd-resolved is not a suitable DNS resolver. Downgrading DNSSEC allowing local DNS to bypass DNSSEC is bad enough, but I read on:

https://fedoraproject.org/wiki/Changes/systemd-resolved

that DNSSEC is now completely disabled. Again, this is completely unacceptable. DNSSEC is part of the core of DNS protocols.“ (Paul Wouters)

Ich hätte nicht gedacht, daß jemand wirklich so verrückt wäre, Millionen von PCs mit einem DNS-Resolver aus der Steinzeit zuversehen, wo das Update doch eine Verbesserung und kein Rückschritt sein sollte. Seinen weiteren Ausführungen kann man sich nur anschliessen:

„This change is harmful to network security, impacts existing installations depending on DNSSEC security, and leaks private queries for VPN/internal
domains to the open internet, and prefers faster non-dnssec answers over dnssec validated answers. It fails various types of queries,
misimplements part of the DNS protocol. Not only according to me, but to 20years+ developers of the bind software as well.

The first mandatory step is to not disable DNSSEC. If I put on my security hat, I would actually have to look into filing a CVE for Fedora 33.“ (Paul Wouters)

Und der Mann weiß was er da schreibt, er hat 20 Jahre an Bind mitgeschraubt. Zum Glück für uns ist nichts in Stein gemeiselt, daher jetzt die Befehle, um nach dem Upgrade für Ordnung zu sorgen:

sudo rm -f /etc/resolv.conf
sudo ln -sf /run/NetworkManager/resolv.conf /etc/resolv.conf
sudo systemctl disable –now systemd-resolved.service
sudo systemctl mask systemd-resolved.service
sudo systemctl reboot

Damit haben wieder die DNS Einstellungen das sagen, die der User beim Anlegen der Netzwerkverbindung getroffen hat. Ich finde ja schon lange, daß der Systemd sich deutlich zu weit aus dem Fenster hängt. Das ist ein Bootsystem und kein eigenes Betriebssystem Leonard! Aber stellt sich doch glatt raus, daß der resolved vom systed das könnte, wenn man es nur einschalten würde, was es per default nicht ist :facepalm:

 

Das Update ist der Anfang vom Ende

Noch letzte Woche habe ich einer Linux-Usergroup Sitzung die Material-Shell Erweiterung für Gnome gezeigt und für sinnvoll erklärt. Zum Glück bin ich kein Politiker.

Das Update ist der Anfang vom Ende

Das keine 5 Tage später mein vorsichtiges Empfehlen dieser Erweiterung zu einem rüden Stop kommen würde, konnte da noch keiner ahnen. Leider kann ich Euch nicht zeigen, wie die Material-Shell funktioniert, da sie sich sehr erfolgreich durch ein Gnome-Extensions-Update selbst zerbröselt hat.

Trotz diverser Versuche, inkl. Neustarts von Gnome, war ich nicht in der Lage die Erweiterung auf diesem Benutzeraccount wieder zum Laufen zu bekommen. Da darf man gespannt sein und vermutlich alles, was mit der Erweiterung zu tun hat wie „Config“,“Cache“,“Erweiterung selbst“ aus den Verzeichnissen löschen und dann von vorn anfangen. Ohne diese Maßnahme kommt es zur sinnlosesten Fehlermeldung ever: „Error“

Damit kann man als Gnome-Benutzer natürlich nichts anfangen, außer die Erkenntnis gewonnen zu haben, daß es sich da jemand sehr einfach gemacht hat. Zum Glück kann man mit der Looking-Glass Konsole von Gnome doch etwas erfahren, aber halt nur als Eingeweihter in die Tücken der Gnome-Erweiterungen. Diese sind z.Z. in Javascript geschrieben und können daher tatsächlich von Webentwicklern geändert werden, die JS verstehen. Das hilft zwar nicht immer, weil es kein Browser-JS ist, aber kleinere Fehler kann man beheben.

Eine Debugkonsole von Gnome mit InhaltWir haben also den Fehler „TypeError: GObject.registerClass() used with invalid base class ( is Source )“

Scheint also ein Programmierfehler zu sein in der neuen Version. Das hätte ja eigentlich beim Testen mal auffallen müssen. Mit einem Trick kann man das ganze „Retten“:

Mit Firefox ladet Ihr jetzt die V4 der Gnome-Erweiterung für die passende Shellversion (34) runtern:

Die gespeicherte Version ist ein ZIP File, das packt Ihr einfach aus und wechselt in das erstellte Verzeichnis.

Ihr macht nun einen zweiten Dateibrowser auf und navigiert nach: „./local/share/gnome-shell/extensions/material-shell@papyelgringo“ . Alles was Ihr findet wird gelöscht, der Ordner bleibt.

Dann kopiert Ihr den Inhalt des frisch ausgepakten ZIP Files in das leere Verzeichnis:

Zwei Dateibrowser mit Inhalt einer Gnome-Erweiterung beim kopieren von Dateien

Drückt „ALT+F2“ und gebt „r“ ein. Das startet Gnome neu und siehe, die Material-Shell geht wieder. Problem gelöst, aber Updates gibt es erstmal keine mehr 🙂