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
- UEFI Secure Boot besser unterstützt, sollte einfach so funktionieren
- AppArmor enabled by default, einfach im Hinterkopf haben, falls Dinge komisch sind
- apt sandbox
- nftables ist default und iptables nimmt das jetzt auch als Backend
- cryptsetup default ist jetzt LUKS2
- su has changed semantics in buster and no longer preserves the user environment variables DISPLAY and XAUTHORITY.
- sshd: neue Semantik für PubkeyAcceptedKeyTypes, benutzen wir afaik aber nicht
- OpenSSL defaults wurden relevant erhöht, mindestens TLSv1.2, 2048bit RSA und SHA-2 sind gefordert.
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 aftersystemd.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
- Deprecated packages ersetzen:
python2
,mailman2
phpmyadmin
ist nicht mehr in der Distribution, also eigene Rolle entwickeln