Die Überschrift sagt eigentlich schon alles: Ich habe seit sechs Wochen keine Updates mehr für meine CentOS-8-Systeme erhalten. (Ich beziehe mich dabei auf die zwei wichtigsten Paketquellen, Base und AppStream, jeweils für die Architektur x86_64.) Sicherheitstechnisch ist das sub-optimal, gelinde formuliert.
Ubuntu Pro
Ubuntu Pro ist ein neues Angebot von Canonical und Amazon. Dabei handelt es sich um eine für die Amazon-Cloud (genaugenommen für Amazon EC2) optimierte Variante von Ubuntu LTS. Es gibt drei wesentliche Unterschiede zwischen Ubuntu LTS und Ubuntu Pro:
- Ubuntu Pro steht aktuell ausschließlich für Amazon EC2 zur Verfügung. Es kann also nicht auf einen eigenen Rechner oder in einem anderen Cloud-System installiert werden.
- Das Kernel-Live-Patching ist standardmäßig inkludiert.
- Der Wartungszeitraum beträgt statt fünf Jahren beachtliche zehn Jahre (Version 18.04, 20.04 etc.) bzw. immerhin noch acht Jahre für ältere LTS-Versionen.
Raspberry-Pi-Handbuch, sechster Streich
Die sechste Auflage unseres Buchs ist erschienen!
Highlights der Neuauflage
- aktualisiert im Hinblick auf das neue Modell 4B
- berücksichtigt durchgängig das aktuelle Raspbian »Buster«
- neue Projekte: Smartlight-Systeme (Ikea Trådfri und Philips Hue), NAS (openmediavault), USB-Stick-Checker (CircLean)
Umfang: 1062 Seiten
Ausstattung: Farbdruck, Hard-Cover, Fadenbindung
ISBN: 978-3-8362-6933-9
Preis: Euro 44,90 (in D inkl. MWSt.)
Koautoren: Christoph Scherbeck und Charly Kühnast
E-Book: Nur auf der Rheinwerk-Webseite können Sie wahlweise nur das E-Book (EUR 39,90) oder die Kombination aus Buch und E-Book bestellen (EUR 49,90).
Docker unter CentOS 8 und Fedora 31 installieren
Seit Red Hat auf seine eigene Docker-Lösung Podman setzt, ist die Verwendung von Docker unter CentOS und Fedora zunehmend mühsamer geworden. Man könnte fast den Eindruck gewinnen, Red Hat will Docker das Leben so schwer wie möglich machen …
Wie dem auch sei: Hier finden Sie eine Anleitung, wie Sie die originalen Docker-Pakete unter Fedora 31 bzw. CentOS 8 installieren und einrichten.
Docker unter Fedora 31 installieren
Wie unter Fedora 31 erläutert, verwendet Fedora 31 als erste »große« Distribution standardmäßig cgroups2. An sich ist das eine gute Sache, allerdings sind die meisten marktüblichen Container-Systeme noch nicht cgroups2 kompatibel. Sie müssen also cgroups1 reaktivieren. (Diese und alle weiteren Kommandos sind mit root
-Rechten auszuführen.)
grub2-editenv - set "$(grub2-editenv - list | grep kernelopts) systemd.unified_cgroup_hierarchy=0"
reboot
Falls Sie die Moby-Engine installiert haben, müssen Sie diese entfernen:
dnf remove moby-engine
Anschließend richten Sie die Docker-Paketquelle für Fedora ein und installieren mit docker-ce
auch die abhängigen Pakete docker-ce-cli
und containerd.io
.
dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo
dnf install docker-ce
systemctl enable --now docker # Docker-Dämon starten
Das Kommando docker
verrät, dass die Version 19.03 installiert ist:
docker version
Client: Docker Engine - Community
Version: 19.03.4
Server: Docker Engine - Community
Engine:
Version: 19.03.4
...
Docker unter CentOS 8 installieren
RHEL 8 und CentOS 8 verwenden (noch?) das cgroups1-Framework; diesbezüglich sind also keine Änderungen erforderlich. Sie können also gleich damit beginnen, die Docker-Paketquelle einzurichten:
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
Der Versuch, nun wie unter Fedora einfach docker-ce
zu installieren, scheitert aber mit einer Fehlermeldung. docker-ce
setzt eine aktuelle Version des Pakets containerd.io
voraus. Dieses Paket existiert in den Paketquellen, aber yum
weigert sich aus unerfindlichen Gründen, es zu verwenden.
Die Installation gelingt über Umwege aber doch. Dazu werfen Sie zuerst einen Blick in die Paketquelle:
https://download.docker.com/linux/centos/7/x86_64/stable/Packages
Dort suchen Sie nach der aktuellsten verfügbaren Version des containerd.io
-Pakets. Im November 2019 war das die Version 1.2.10. Diese Version installieren Sie nun, indem an yum
explizit die Adresse des Pakets in der Paketquelle übergeben.
yum -y install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.10-3.2.el7.x86_64.rpm
In der Folge klappt nun die Installation der restlichen Pakete und die Aktivierung des Docker-Dämons:
yum install docker-ce
systemctl enable --now docker
Damit steht dieselbe Docker-Version wie unter Fedora zur Verfügung:
docker version
Client: Docker Engine - Community
Version: 19.03.4
Server: Docker Engine - Community
Engine:
Version: 19.03.4
...
Benutzer zur docker-Gruppe hinzufügen (gilt für CentOS + Fedora)
Das Kommando docker
erfordert normalerweise root
-Rechte. Um das ständige Voranstellen von sudo
zu vermeiden, sollten Sie Ihren gewöhnlichen Arbeits-Account zur docker
-Gruppe hinzufügen. (Alle Mitglieder der docker
-Gruppe können das Kommando docker
auch ohne sudo
ausführen.)
usermod -aG docker <accountname>
Die Änderung wird erst nach einem neuerlichen Login wirksam.
Beachten Sie, dass diese scheinbar harmlose Gruppenzuordnung zwar viel Arbeitskomfort gibt und entsprechend beliebt ist, aber gleichzeitig auch ein großes Sicherheitsrisiko darstellen kann. Indirekt geben Sie dem betroffenen Account damit Root-Rechte! Warum das so ist, erläutert die Docker-Dokumentation. Auf einem Entwicklungsrechner, auf dem Sie ohnedies sudo
-Rechte haben, ist die Einstellung OK. Auf einem Produktivsystem ist das usermod
-Kommando eher nicht zu empfehlen.
Firewall-Probleme (gilt für CentOS + Fedora)
Grundsätzlich können Sie Docker jetzt verwenden — aber es besteht noch ein großes Problem: In den Docker-Containern funktioniert der Internet-Zugang nicht. Genaugenommen ist nur der Nameserver-Zugriff blockiert, aber das ist schlimm genug. Im Web finden Sie diverse Lösungswege zur Behebung des Problems, von der kompletten Deaktivierung von firewalld bis hin zu Ausnahmeregeln für die vom Docker-Dämon verwendete Netzwerkschnittstelle docker0
(siehe auch die Links am Ende des Artikels). Sicherheitstechnisch am vernünftigsten erscheint es, für das aktive Firewall-Profil (unter Fedora normalerweise FedoraWorkstation
, unter CentOS normalerweise public
nur das Masquerading zu aktivieren. Dazu finden Sie zuerst den Profilnamen heraus, wobei Sie anstelle von enp1s0
den Namen Ihrer Netzwerkschnittstelle zum Internet angeben.
firewall-cmd --get-zone-of-interface=enp1s0
FedoraWorkstation
firewall-cmd --zone=FedoraWorkstation --add-masquerade --permanent
firewall-cmd --reload
Um den Docker-Netzwerkzugang zu testen, richten Sie einen Container von Alpine Linux ein und führen darin ping
mit irgendeiner bekannten Adresse aus:
docker run --rm -it alpine:latest /bin/sh
/ # ping google.de
PING google.de (172.217.22.67): 56 data bytes
64 bytes from 172.217.22.67: seq=0 ttl=53 time=25.920 ms
64 bytes from 172.217.22.67: seq=1 ttl=53 time=26.283 ms
^C
--- google.de ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 25.920/26.101/26.283 ms
/ # exit
Leider ist das nicht das einzige Firewall-Problem. Jeder Docker-Container kann in einer an sich
geschlossenen Firewall den Schutz für einzelne Ports »aufreißen« (siehe dieses github-Issue). Das liegt daran, dass das Firewall-Systeme von Fedora/CentOS/RHEL nicht mit Docker koordiniert ist. Ähnliche Probleme können auch bei anderen Linux-Distributionen auftreten, die eine Firewall aktivieren. Eine unmittelbare Lösung dafür gibt es nicht.
Quellen
- https://www.redhat.com/sysadmin/fedora-31-control-group-v2
- https://forums.docker.com/t/docker-ce-on-centos-8/81648
- https://www.reddit.com/r/docker/comments/d8j8jj/bad_news_for_those_wanting_to_use_docker_in
Zur Firewall-Problematik:
Fedora 31
Fedora 31 wurde heute untypisch pünktlich fertiggestellt. Rein optisch hat sich wenig geändert, aber hinter den Kulissen finden sich doch ein paar Veränderungen abseits der üblichen Versionsnummersprünge.
Updates 12.11.2019: Link auf redhat-Blog mit vielen cg2-Grundlagen, auch Snap ist cg2-inkompatibel

25 Jahre Linux-Buch
Soeben ist die neueste Auflage meines Linux-Buchs erschienen — und auf die Eckdaten bin ich ein wenig stolz ;-)
- 16 Auflagen
- 25 Jahre (genaugenommen sind es erst 24,7 Jahre …)
- 1467 Seiten
- Gesamtauflage > 250.000
Ubuntu 19.10
Die meist-diskutierte Neuerung in Ubuntu 19.10 »Eoan Ermine« besteht darin, dass während der Installation ein ZFS-Dateisystem eingerichtet werden kann. Dieses noch experimentelle Feature richtet sich eher an Linux-Freaks. Ansonsten ist Ubuntu 19.10 eine Distribution mit vielen Software-Updates, die vor allem dann interessant sind, wenn Ubuntu auf ein neues Notebook installiert werden soll. (Egal, ob Sie sich heute für das stabile Ubuntu 18.04 oder für die aktuelle Version 19.10 entscheiden — in einem halben Jahr ist so oder anders ein Update auf Version 20.04 fällig.)

Erfahrungsbericht Monitor Lenovo T27p
Es ist sonst nicht meine Art, Produkte zu testen und darüber zu berichten. Aber da es zu meinem neuen Monitor, einem Lenovo T27p-10, momentan kaum Testberichte gibt, mache ich hier eine Ausnahme. Für Ungeduldige die Kurzfassung: Die Bildqualität ist gut, aber die USB-C-Funktionen sind enttäuschend.
Zugriff auf Netzwerkverzeichnisse mit Nautilus
»Immer Ärger mit Nautilus« wäre eigentlich eine treffendere Überschrift. In diesem Text geht es darum, wie Sie mit dem Gnome-Dateimanager auf Windows- oder Samba-Netzwerkverzeichnisse zugreifen. Dieses Programm hieß ursprünglich Nautilus (der Paketname lautet weiterhin so), später bekam es den nichtssagenden Namen Dateien bzw. im Englischen Files. Ich bleibe hier bei Nautilus, wobei der Name ja noch das geringste Problem ist …
Swift 5.1
Vorige Woche wurde Swift 5.1 ist veröffentlicht. Es zeichnet sich durch vollständige Kompatibilität zu Swift 5.0 und einige neue Features aus. Dass nur ein Bruchteil davon für typische App-Entwickler relevant ist, kann wohl als Zeichen dafür gesehen werden, dass Swift allmählich wirklich ausgereift ist.
Apple verspricht außerdem, dass Swift Module Compatibility bietet. Das bedeutet, dass unter Swift 5.1 erzeugte und kompilierte Bibliotheken ohne Änderungen (und ohne Neukompilieren) mit zukünftigen Swift-Versionen kooperieren.
In diesem Beitrag fasse ich ganz kurz die wichtigsten neuen Features zusammen. (Ein eigener Artikel über die neue Bibliothek SwiftUI ist geplant, aber ich kann noch nicht sagen, wann ich dazu komme.)