Ubuntu-Server-Update von 24.04 auf 26.04
Über Ubuntu 26.04 habe ich hier schon berichtet. Heute habe ich meinen ersten Ubuntu-Server von Version 24.04 auf 26.04 aktualisiert. Es ist eigentlich recht gut gegangen. Dieser Beitrag fasst die wichtigsten Erkenntnisse zusammen.
- MySQL-Passwörter
- Dovecot-Konfiguration (Update 2.3 -> 2.4)
- SSH-Server-Konfiguration
- Externe und obsolete Pakete aufräumen
Grundsätzliche Vorgehensweise
Logischerweise sollten Sie zuerst ein Backup machen. Mein System ist eine virtuelle Maschine (KVM), ich habe also ein Backup des Images gemacht (LVM-Snapshot im laufenden Betrieb). Wäre irgendetwas total schief gegangen, hätte ich den ganzen Server blitzschnell in den alten Zustand zurückversetzen können.
Wichtig: Falls Sie Nextcloud verwenden, aktualisieren Sie die Nextcloud-Version zuerst und führen Sie das Ubuntu-Update erst danach durch. Andernfalls kann es Ihnen passieren, dass Nextcloud danach nicht mehr startet (Fehlermeldung: This version of Nextcloud is not compatible with PHP>=8.5. You are currently running 8.5.4). Es ist ziemlich mühsam, aus dieser Falle wieder herauszukommen, weil die üblichen Update-Mechanismen PHP voraussetzen!
Am Zielsystem habe ich dann ein letztes Update durchgeführt und dann do-release-upgrade gestartet. Der erste Lauf scheiterte an alten MySQL-Passwörtern. Nachdem ich diese umgestellt hatte (Details folgen gleich), lief do-release-upgrade ziemlich problemlos durch.
Bei sämtlichen Rückfragen, ob ich meine geänderten Konfigurationsdateien behalten oder lieber die neuen Konfigurationsdateien verwenden möchte, habe ich mich für meine alten Konfigurationsdateien entschieden. (Die Entscheidung ist nicht ganz einfach: Die neuen Konfigurationsdateien enthalten in der Regel bessere/neuere Einstellungen, die vorzuziehen wären. Umgekehrt will ich aber auch nicht die in der Vergangenheit vorgenommenen Änderungen verlieren.)
Danach ein Reboot, nach 30 Sekunden war ein neuer SSH-Login möglich. Sehr gut!
Jetzt begannen die Aufräumarbeiten. Es gab zwei Hauptprobleme:
- Dovecot funktionierte nicht mehr (das war zu erwarten).
- PHP auch nicht (das kam überraschend).
Vor dem Ubuntu-Update: MySQL-Passwörter
Mit Ubuntu 26.04 kommt MySQL 8.4. Diese Version des Datenbank-Servers unterstützt standardmäßig keine mysql_native_password-Passwörter mehr. Das ist an sich vernünftig, die Passwörter werden nach einem unsicheren Verfahren verschlüsselt. Es gibt zwei Lösungen: Eine besteht darin, das nicht mehr empfohlene Plugin mysql_native_password doch wieder zu aktivieren. (In Version 9 wird das aber nicht mehr gehen.) Die andere besteht darin, für alle betroffenen Benutzer ein neues Passwort mit dem Verfahren caching_sha2_password einzurichten, im Wesentlichen so:
ALTER USER name@localhost IDENTIFIED WITH caching_sha2_password BY 'topsecret';
Ich habe mich für diese Variante entschieden, zumal es ohnedies nur wenige betroffene Accounts gab. Zwei bereiteten mir allerdings Kopfzerbrechen. Welche Passwörter sollte ich für die (in der Vergangenheit) automatisch eingerichteten Accounts 'debian-sys-maint'@localhost und mysql.session@localhost verwenden? Eine kurze Recherche ergab, dass sich das Passwort für ersteren Account (eine Debian/Ubuntu-Spezialität) in /etc/mysql/debian.cnf befindet. Der zweite Account ist MySQL-intern. Es muss existieren, ist aber nicht für einen Login gedacht. Jedes zufällige Passwort ist OK.
Das eigentliche Update habe ich NACH den MySQL-Änderungen gestartet.
Nach dem Ubuntu-Update: PHP
Nach dem Update liefen Apache und der MySQL-Server auf Anhieb, nur PHP wollte nicht. Die Fehlermeldung im Apache-Log lautete:
(2)No such file or directory: AH02454: FCGI: attempt to connect to Unix domain socket /run/php/php8.3-fpm.sock (localhost:8000) failed
Der Fehler war leicht zu finden: Ich verwende PHP mit dem FastCGI Process Manager (FPM). Die PHP-Version wurde auf 8.5 aktualisiert, aber die Konfiguration verwies weiter auf die FPM-8.3-Version. Abhilfe:
apt install php-fpm
systemctl enable --now php8.5-fpm
a2disconf php8.3-fpm
a2enconf php8.5-fpm
systemctl restart apache2
Warum der Upgrade-Prozess sich um diese Details nicht gekümmert hat, kann ich nicht sagen. Möglicherweise hatte ich unter Ubuntu 24.04 irgendeine Abweichung von der Default-Konfiguration durchgeführt und die Konfigurationsdateien wurden deswegen nicht aktualisiert.
Ein letzter Hinweis zu PHP: Mit PHP 8.5 werden neue Konfigurationsdateien nach /etc/php/8.5 installiert. In meinem Fall (FPM) ist die Datei /etc/php/8.5/fpm/php.ini relevant. Änderungen, die in der Vergangenheit in der 8.3er-Version von php.ini vorgenommen wurden, müssen jetzt in der 8.5er-Version wiederholt werden. (In meinem Fall war vor allem memory_limit = 512M wichtig, damit Nextcloud ordentlich läuft. Der Defaultwert 128M ist zu klein.)
Dovecot
Dovecot (ein IMAP-Server) macht mit Ubuntu 26.04 einen Versionssprung von 2.3 auf 2.4. Das klingt unspektakulär, aber tatsächlich hat Dovecot mit der neuen Version die Syntax der Konfigurationsdateien grundlegend geändert. Solange die Dateien nicht angepasst werden und insbesondere die Anweisungen dovecot_config_version = 2.4.0 sowie dovecot_storage_version = 2.4.0 an den Beginn von /etc/dovecot.conf eingebaut werden, startet der Dienst nicht.
Upgrading Dovecot CE from 2.3 to 2.4 enthält eine umfassende Migrationsanleitung. Die simple Übernahme der neuen Konfigurationsdateien ist (in meinem Fall) unmöglich, weil ich diverse eigene Anpassungen vorgenommen habe. Schon vor dem Ubuntu-Update habe ich deswegen sicherheitshalber ein Backup des alten Konfigurationsverzeichnisses /etc/dovecot durchgeführt.
Die manuelle Migration erschien mir recht mühsam. Also habe ich Claude Code SSH-Zugriff auf meinen Server gegeben (für einen normalen Account, nicht für root) und habe den folgenden Prompt formuliert:
you can ssh to example.com (no root); go to /etc/dovecot and look at the config files; these are partially from 2.3 and must be updated to 2.4 (see also https://doc.dovecot.org/main/installation/upgrade/2.3-to-2.4.html); explain me what to change, don’t try to do it yourself; summarize your findings locally (not on example.com) into
dovecot-migration-plan.md
Diesen Plan habe ich anschließend manuell umgesetzt. Anbei eine Kurzfassung:
Dovecot 2.3 -> 2.4: config changes
dovecot.conf
Add these as the very first settings:
dovecot_config_version = 2.4.0
dovecot_storage_version = 2.4.0
Remove the empty "dict { }" block.
conf.d/10-auth.conf
Old: auth_username_format = %Ln
New: auth_username_format = %{user | username | lower}
conf.d/auth-system.conf.ext
passdb and userdb blocks need a name:
passdb pam {
}
userdb passwd {
}
conf.d/10-mail.conf
mail_location is gone:
mail_driver = maildir
mail_path = ~/Maildir
conf.d/10-master.conf
Old: user = $default_internal_user
New: user = $SET:default_internal_user
conf.d/10-ssl.conf
New setting names, no more "<" before file names:
ssl = yes
ssl_server_cert_file = /etc/letsencrypt/live/
example.com/fullchain.pem
ssl_server_key_file = /etc/letsencrypt/live/
example.com/privkey.pem
ssl_server_dh_file = /etc/dovecot/dh.pem
ssl_server_prefer_ciphers = server
(Each path belongs on one line; it is split here only
for readability.)
ssl_server_prefer_ciphers accepts "client" or "server";
"yes" is a fatal error. The DH file is only needed for
non-ECC key exchange and can be omitted.
conf.d/20-lmtp.conf
"mail_plugins = $mail_plugins sieve" no longer works:
protocol lmtp {
postmaster_address = postmaster@example.com
mail_plugins {
sieve = yes
}
}
conf.d/90-sieve.conf
The plugin { } block is gone. Use named script blocks:
sieve_script personal {
driver = file
path = ~/sieve
active_path = ~/.dovecot.sieve
}
sieve_script after {
type = after
driver = file
path = /etc/dovecot/sieve-after
}
Recompile global sieve scripts (as root):
sievec /etc/dovecot/sieve-after/spam-to-folder.sieve
Users' own scripts are recompiled automatically.
Protocols
2.4 enables no protocols by default. On Debian they come
from /usr/share/dovecot/protocols.d, i.e. one file per
installed package (imapd, lmtpd, managesieved, ...).
Testing
doveconf -n # must run without errors
systemctl restart dovecot
journalctl -u dovecot -n 50
Then check IMAP login, LMTP delivery from Postfix, SMTP
auth via the Postfix SASL socket and sieve filtering.
Eine halbe Stunde später konnte ich in Thunderbird meine Mails wieder abrufen.
Update Configuration File (UCF)
Eine Debian/Ubuntu-Pakete verwenden das Verfahren Update Configuration File (UCF). Bei diesen Paketen wird parallel zur unverändert belassenen Konfigurationsdateien die neue Version der Konfigurationsdatei mit der Kennung *.ucf-dist angelegt. Das ist praktisch, weil Sie unkompliziert danach suchen können:
find /etc -name '*.ucf-dist'
Leider wird UCF nur von ausgewählten Paketen verwendet (auf jeden Fall: apt, dovecot und ssh).
SSH-Server
Der SSH-Server (openssh-server 10.2) läuft zwar auf Anhieb (alles andere wäre ja eine Katastrophe), aber journalctl -u ssh liefert diverse Warnungen:
sshd: rexec line 16: Deprecated option UsePrivilegeSeparation
sshd: rexec line 19: Deprecated option KeyRegenerationInterval
sshd: rexec line 20: Deprecated option ServerKeyBits
sshd: rexec line 31: Deprecated option RSAAuthentication
sshd: rexec line 38: Deprecated option RhostsRSAAuthentication
Also habe ich auch diese Datei etwas aufgeräumt, wobei Claude Code einige weitere Verbesserungsvorschläge gemacht hat (ChallengeResponseAuthentication -> KbdInteractiveAuthentication, PermitRootLogin without-password -> PermitRootLogin prohibit-password, HostKey /etc/ssh/ssh_host_dsa_key entfernen).
Docker
In Ubuntu 24.04 hatte ich Docker-Pakete direkt aus dem Docker-Repo installiert. Die alten Pakete wurden unverändert belassen, Docker funktionierte weiter. Allerdings wurde im Rahmen des Updates die Docker-Paketquelle deaktiviert (siehe /etc/apt/sources.list.d/*.disabled), d.h. ich würde keine Updates mehr erhalten. Ich habe daher die folgende Datei docker.sources neu eingerichtet:
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: resolute
Components: stable
Architectures: amd64
Signed-By: /etc/apt/keyrings/docker.asc
apt update und apt list --upgradable zeigt jetzt zu Ubuntu 26.04 passende Docker-Pakete an, die ich mit apt dist-upgrade installierte. Ein kurzer Test mit docker ps zeigt, dass alle Docker-Container wie geplant laufen.
Obsolete Pakete entfernen
Das Kommando
apt list '?obsolete'
liefert eine Liste von Paketen, die aus früheren Ubuntu-Versionen stammen (zu meiner Schande bis zurück nach 14.04) und zu denen es keine aktive Paketquellen mehr gibt (z.T. uralte Kernel-Versionen). Höchste Zeit, auch hier aufzuräumen. Ich habe Claude Code um eine Analyse gebeten.
find obsolete packages and access which can be safely removed
In der Folge habe ich die meisten betreffenden Pakete mit apt purge entfernt.
Quellen/Links
- https://documentation.ubuntu.com/release-notes/26.04/
- https://documentation.ubuntu.com/release-notes/26.04/summary-for-lts-users/#mysql
- https://doc.dovecot.org/main/installation/upgrade/2.3-to-2.4.html
- https://manpages.debian.org/trixie/ucf/ucf.1.en.html
- https://www.debian.org/doc/debian-policy/ch-files.html#configuration-files
- https://kofler.info/ubuntu-26-04


Microsoft stellt Azure Linux 4.0 erstmals als frei installierbares System bereit. Die Distribution war lange nur für Azure gedacht, soll nun aber auch auf eigenen Servern laufen. Azure Linux basiert auf Fedora und nutzt dessen Paketwelt. Microsoft passt die Komponenten für Azure an und liefert ein gehärtetes Kernel‑Setup. Die ISO‑Images stehen öffentlich via GitHub bereit […]
Mecklenburg‑Vorpommern stärkt seine digitale Unabhängigkeit und führt eine landesweite Kollaborationsplattform auf Basis von Nextcloud ein. Das Projekt soll langfristig zehntausende Beschäftigte erreichen und die Kontrolle über zentrale IT‑Strukturen sichern. Die neue Lösung wird vollständig durch die DVZ M‑V GmbH betrieben. Das Land nutzt eigene Server und behält damit die Hoheit über Daten und Abläufe. Die […]
Nextcloud bringt mit Hub 26 Spring eine große Aktualisierung, die ein neues Office, ein aufgeräumtes Design und ein Governance‑Werkzeug einführt. Die Veröffentlichung erfolgte am 9. Juni und markiert einen wichtigen Schritt für die Plattform. Nextcloud feiert in diesem Jahr sein zehnjähriges Bestehen und nutzt den Moment für deutliche Verbesserungen. Die neue Version bietet eine modernisierte […]
Microsoft musste zahlreiche Open Source Projekte auf Github deaktivieren. Hacker hatten Code manipuliert und eine Schadsoftware eingeschleust, die Zugangsdaten von Entwicklern stehlen sollte. Die Angreifer griffen mehr als 70 Repositories an. Viele davon gehörten zu Azure Projekten oder zu KI Werkzeugen wie Claude Code oder VS Code Beispielen. Die Malware trug den Namen Miasma und […]
Euro Office erreicht seine erste stabile Version und tritt als neue europäische Office Suite an. Die Veröffentlichung bringt frische Funktionen und zugleich einen Streit über Lizenzfragen. Die Suite basiert auf einem Fork von OnlyOffice und richtet sich an Nutzer, die eine offene Alternative zu bekannten Büroplattformen wie Microsoft Office suchen. Sie läuft als Webanwendung und […]
Mehrere npm Pakete aus Red Hats Cloud Umfeld wurden manipuliert. Die Attacke schleuste heimlich Malware ein und gefährdete sensible Zugangsdaten. Laut Sicherheitsfirma Aikido tauchten die betroffenen Pakete Anfang Juni auf. Insgesamt waren viele Versionen verschiedener Bibliotheken kompromittiert. Die Schadsoftware befand sich in einem versteckten Installationsskript. Dieses lief automatisch beim Installieren der Pakete. Die Malware trägt […]
Bayern startet ein neues Projekt für mehr digitale Unabhängigkeit. Das Digitalministerium entwickelt einen souveränen Arbeitsplatz, der langfristig proprietäre Lösungen ersetzen soll. Die Initiative folgt dem Beschluss der Ministerpräsidentenkonferenz, die bis 2027 sichere Alternativen fordert. Digitalminister Fabian Mehring betont die Bedeutung digitaler Souveränität für Staat und Verwaltung. Er sieht die öffentliche IT als kritische Infrastruktur, die […]
Die EU Kommission versucht erneut, eine eigene Cloudlandschaft zu formen. Nach einem Bericht von Security Insider soll ein neues Programm nun zeigen, dass Europa mehr kann als große Worte. Vier frisch vergebene Verträge markieren den Beginn eines Projekts, das echte digitale Unabhängigkeit schaffen soll. Im Zentrum steht ein europäischer Standard für Datensouveränität. Die meisten beteiligten […]
Wero möchte Europas Antwort auf große US-Bezahldienste sein. Der Dienst startete 2024 und verspricht schnelle Zahlungen zwischen Nutzern. Hinter dem Projekt stehen zahlreiche Banken aus mehreren Ländern. Die Plattform präsentiert sich als unabhängige Lösung für digitales Bezahlen. Doch ein Blick hinter die Kulissen zeigt ein anderes Bild. Die Betreiber European Payments Initiative (EPI) bestätigen den […]