Inhaltsverzeichnis

Buster Upgrade

Aktueller Stand der Hosts: https://fachschaften.rwth-aachen.de/etherpad/p/buster-upgrade

Clients werden einfach wieder neuaufgesetzt. Beim Rest sollte ein Update möglich sein, wenn wir nicht eh den entsprechenden Host obsoletieren wollen.

Wichtige Änderungen

Beschränkungen im Security Support

Go-basierte Pakete

Go based packages won't be covered by regular security support until the infrastructure is improved to deal with them maintainably. If updates are warranted, they can only come via regular point releases, which may be slow in arriving.

Betrifft acmetool, was wir wegen ACMEv2 aber eh ersetzen wollen.

Webbrowser

Browsers built upon e.g. the webkit and khtml engines are included in buster, but not covered by security support. These browsers should not be used against untrusted websites. The webkit2gtk source package is covered by security support. For general web browser use we recommend Firefox or Chromium. They will be kept up-to-date by rebuilding the current ESR releases for stable. The same strategy will be applied for Thunderbird.

Anleitung

Vor dem Update

Backup und Restore

Vor dem Update sicherstellen, dass es ein aktuelles und funktionierendes und wiederherstellbares Backup gibt.

eth-named Interfaces

Die alte Methode das „eth0“-Naming zu erhalten wurde durch eine neue Methode abgelöst. Um die bisherigen Namen zu erhalten, entweder Kernel-Cmdline net.ifnames=0 oder ein entsprechendes systemd.link file nutzen.

Für die PCI-basierte Benennung, folgendes tun:

rm /etc/udev/rules.d/70-persistent-net.rules
rm /etc/systemd/network/99-default.link
rm /etc/systemd/network/50-virtio-kernel-names.link
rgrep -w eth0 /etc
# jegliches relevantes Auftreten fixen
# bei networkd: einfach in den Wildcard `en*` ändern, ansible trägt später die richtige Zahl ein.
update-initramfs -u

systemd kaputtiert bonding

Wenn das Bonding mit Ansible konfiguriert wird, einfach vorher nochmal drüber rollen und fertig.

systemd bringt jetzt folgende Konfigurationsdatei /lib/modprobe.d/systemd.conf mit:

options bonding max_bonds=0
options dummy numdummies=0
Admins who were depending on different values will need to ensure they are set in the correct way to take precedence. A file in /etc/modprobe.d will override one with the same name under /lib/modprobe.d, but the names are processed in alphabetical order, so /lib/modprobe.d/systemd.conf follows and overrides (for instance) /etc/modprobe.d/dummy.conf. Make sure that any local configuration file has a name that sorts after systemd.conf, such as /etc/modprobe.d/zz-local.conf.

Das Update

Unnötige Pakete entfernen

ein apt autoremove --purge auf folgende Pakete ausführen:

aptitude search '~i(!~ODebian)'
aptitude search '~o'

Die Pakete tivsm-*, gskssl, gskcrypto, systemd-journal-persistent, sssd bitte konfiguriert auf dem System belassen.

Pinning entfernen

Pinnings unter /etc/apt/preferences oder /etc/apt/preferences.d entfernen. Außer apache2 auf nginx Systemen; das soll weiterhin wegbleiben.

dpkg fragen was los ist

dpkg --audit ausführen, wenn es nichts ausgibt, dann ist alles gut.

Sources vorbereiten

Alles was nicht offizielle Sourcen sind (halifax-ftp debian main/contrib/non-free; security.debian.org) (temporär) rausschmeißen. Die verbleibenden Sourcen auf buster abändern. Das Update externer Sourcen auf nach dem offiziellen Update vermerken.

Update

Bei Postgres-Hosts beachten, dass der Cluster geupgradet werden muss. Dafür ist die alte Version notwendig. Zum Upgrade des Clusters siehe weiter unten den Abschnitt zu Postgres.

apt update
apt upgrade
apt dist-upgrade

Zwischendurch auf Enter hauen. Alles, was wir bisher an Rückfragen gesehen haben, war mit dem Default zu beantworten, insbesondere geänderte Dateien behalten.

Reboot

Nach dem Update

Aufräumen

Purgen von removed packages:

# auflisten
dpkg -l | awk '/^rc/ { print $2 }'
# löschen
apt purge $(dpkg -l | awk '/^rc/ { print $2 }')

Obsolete packages:

aptitude search '~o'

(Siehe auch oben, hier bitte nochmal schauen, ob es was zu entfernen gibt.)

Generelles aufräumen:

apt clean
apt autoremove --purge

Postgres

Direkt nach Upgrade vor weiterer Nutzung einer Postgres Datenbank, re-index-en mit:

sudo -u postgres reindexdb --all

Upgrade eines 9.6 (stretch) Clusters zu Version 11 (buster): https://ideatrash.net/2019/07/mastodon-and-upgrading-debian-to-buster-postgresql-and-libprotobuf10.html

pg_dropcluster 11 main --stop
pg_upgradecluster 9.6 main
pg_dropcluster 9.6 main
apt purge postgresql-9.6 postgresql-client-9.6 postgresql-contrib-9.6

Externe Quellen wieder einbinden

Externe Quellen wieder einbinden und mit dem üblichen Prozedere updaten und upgraden.

SysV

Reste loswerden mit:

apt purge initscripts sysv-rc insserv startpar

System hängt beim Reboot/braucht länger

Mit ping nachhelfen. Es ringt nach Entropie. Eigentlich wöllten wir virtio_rng für VMs haben.

Geänderte OpenSSL defaults

Prüfen, ob wir hier aktiv werden müssen. Ob Dinge kaputt sind, ob wir irgendwo alte Einstellungen haben die jetzt sicherer sein könnten, etc. Details zur Konfiguration unter: https://www.debian.org/releases/buster/amd64/release-notes/ch-information.en.html#openssl-defaults Auch neu: https://ssl-config.mozilla.org/

Ansible

Ansible auf dem Host vollständig laufen lassen.

Längerfristige Umstellungen